Diff for "BuildBranchToArchiveUI"

Not logged in - Log In / Register

Differences between revisions 9 and 10
Revision 9 as of 2010-01-28 09:01:50
Size: 5153
Editor: jml
Comment:
Revision 10 as of 2010-01-28 09:47:26
Size: 5215
Editor: jml
Comment:
Deletions are marked like this. Additions are marked like this.
Line 68: Line 68:
   * ~owner/distro/distroseries/sourcepackagename/recipename

The UI issue: unnecessary complexity

Although it is possible for Launchpad users to build a source package from a branch and publish it in their PPA using the bzr-builder plugin, we can radically reduce the complexity of this process and remove the need to transfer data in and out of Launchpad unnecessarily, as nearly all the data is already there on Launchpad (everything except the recipe specifying which branches/revisions to use for the source package).

Goals

[draft] Users with upload rights to any PPA can, when viewing a branch page:

  • build the branch-tip within 3 clicks of the branch page (or a specific revision).
  • setup a daily build for the branch by customising the recipe (ie. just a checkbox)

When viewing a source package recipe build with their PPA, users can:

  • easily identify the current status of the build (and log etc.)
  • view (and edit) the recipe (ie. disabling daily builds)
  • ...

(other ui points, such as available recipes for a branch etc.)

Target user audiences

(draft)

  • Current users of bzr-builder for daily builds...
  • Opportunistic programmers who...
  • QA-leads for large projects...
  • Power users of existing projects who want to run trunk (jml)

Use-cases

Please feel free to expand, correct or add further use-cases.

Manual build of the latest branch revision

Guilherme has his own branch of the Toggle project and would like to build and publish the resulting package in his PPA, using the available packaging branch from the distroseries.

While viewing his branch page, Guilherme:

  1. clicks on the "Build now" button,
  2. An overlay appears displaying the a default packaging branch (or a default recipe?) that will be used (with the option to choose from other available options, or customise a new recipe on a separate page), as well as a PPA selector. After selecting the appropriate PPA and clicking 'OK',
  3. The branch page is updated with a "Recent builds" portlet listing the new build and its status, linking to (somewhere appropriate within) the PPA.

Questions:

  1. Currently Recipes are *base-branch*-specific (SPRD.base_branch) rather than packaging-branch-specific? This means that a new recipe is required for each branch of a project, even though they may all use the same packaging branch. If it was the other way around, it would be possible to re-use the recipe for different branches... rather than having to duplicate most of the info into a new recipe? (move SPRData.base_branch to SPRecipe?)
    • Right. A new Recipe is required, but the packaging branch can be re-used. Perhaps we should detect already-used packaging branches and suggest them to a user?

Manual build of a specific branch revision

Yong-sik works on the ereader project and has a number of PPAs including 'ereader_daily' and 'ereader_beta'. He would like to build a specific revision of ereader and publish the result in his personal PPA. If all goes well after installing the resulting package, he'll copy this source and resulting binaries into the ereader_beta PPA.

Yong-Sik opens the Launchpad page for his devel branch and then:

  1. clicks on the "Build now" button,
  2. ...

Daily builds

Yong-sik works on the ereader project and has a number of PPAs including 'ereader_daily' and 'ereader_beta'. He now wants to automate his daily builds.

Yong-sik opens the Launchpad page for his devel branch and then

  1. clicks on the "Build now" button,
  2. ...

Initial design proposal

TODO: (the following is just a preservation of data, not an indication of design).

  • List required/affected traversals
    • ~owner/distro/distroseries/sourcepackagename/recipename
  • The source package branch page needs a PPA/distro picker and a build button to start a build. Obviously the pickers will be sensitive to upload permissions. [Check - the wording here implies setting a default ppa for subsequent builds, rather than selecting the PPA when clicking on 'Build now'? -- michael.nelson 2010-01-25 15:37:34]

  • The destination target needs a progress indicator. For PPAs, the detail packages page should show the source package in the construction (builddeb) phase, which conceptually is before anything it shows right now.
  • It would be nice if, when displaying the result in the PPA, something like "There is a newer revision available for this source package branch [build now].

Unresolved questions

Notes

  • May need to handle malformed recipes
  • Need to handle case where no PPA yet exists
  • Not just build from branch, recipes can be multi-branch

  • Probably need to link out to actual documentation on recipes :(

  • Potentially long-running process, how are users notified of failure
  • If there's already a recipe for a branch, maybe we should guide someone to look at that?
    • if it's the base branch of a recipe
    • if it's just mentioned in the recipe

BuildBranchToArchiveUI (last edited 2010-03-24 08:24:30 by michael.nelson)