||<>|| = Typical daily build use-cases = '''Note''': the following mockups do not try to fit the current implementation of bzr builder recipes or the corresponding current LP models. == Build my branch daily - existing recipe == Guilherme works on the toggle project and has a number of PPAs including 'toggle_daily' and 'toggle_beta'. He now wants to automate his daily builds. While viewing his branch, Guilherme: 1. Clicks on the "Build this branch" link, (MOCKUP REQUIRED) 1. A "Build this branch to a PPA" overlay appears displaying a selection for his target PPA and a recipe. Guilherme selects his target PPA where he wants the package to be published. By default, the recipe selector is displaying "toggle_std_pkging by Toggle Dev Team" and the displayed recipe description states "This is the default recipe for building Toggle. It merges the official packaging branch only." The description also informs him that the recipe targets Lucid and 9.10. Guilherme realises that it's exactly what he wants and simply clicks "Build daily". [[http://people.canonical.com/~michaeln/bfb/build_now_overlay_v2.png|{{http://people.canonical.com/~michaeln/bfb/build_now_overlay_v2.png|Build now overlay}}]] 1.#3 The overlay disappears and the branch page is updated with a "Recent builds" portlet listing the new build and its status (MOCKUP REQUIRED), linking to (somewhere appropriate within) the PPA. == Build my branch daily - new recipe == Please refer to the [[BuildBranchToArchiveUI/UseCaseManualBuild|manual build use-cases]], as the only difference is clicking 'Build daily' rather than 'Build now'. == Editing the daily build == This needs more thought once the primary interaction of creating builds/dailybuilds is settled, but a few ideas: * The ppa/+builds traversal could, in addition to the normal build history, also clearly identify/edit scheduled builds. * Similarly, when I look at person/+recipes or branch/+recipes, the scheduled builds associated with each recipe are identified/editable. = Notes for graceful degradation - non-js version = = See also = * [[BuildBranchToArchiveUI/UseCaseManualBuild]] * [[BuildBranchToArchiveUI/UseCaseComplexRecipe]] * [[BuildBranchToArchiveUI/UseCasePackagingBranch]] = Unresolved questions = * What actually happens when I click 'Build daily'? Obviously it'll be scheduled to run daily, but will the first build happen straight away? How do I know? * Would we want to ensure that users can actually choose the daily build time for a daily build? (ie. it may be desired that the build happens at 3am local time for a group so the next morning they all get the update?). * Initially we may not even want the 'Build daily' option to be available to general users (due to resources), instead enabling daily builds via a separate interface? * ''We could ensure on this interface that it is only present/valid for certain groups etc. too?'' * Should the scheduling info in the UI be associated with the recipe or the build? * ''Currently when creating a new build, it is a separate button so that it is *not* associated with either the recipe or the build. I'm assuming the scheduling info would not be on the recipe itself (so the recipe can be re-used) or the build, but would rather be associated with the initial build. We'd then create a new build based on the initial one each day etc.