BuildBranchToArchive

Not logged in - Log In / Register

Revision 2 as of 2009-08-10 13:08:35

Clear message

Why

Ubuntu is beginning to manage its source packages as Bazaar branches, as part of the DistributedDevelopment project.

One incredibly important activity for source packages is building them into binary packages that can be downloaded and installed. This spec explains how Launchpad can make this a wonderful experience. In particular, this is important for the DailyBuilds project.

What

A single button that takes a branch and builds it into a binary package in an archive of the user's choice.

Implementation

  1. Given an IBranch and an IArchive by the user, we create a branch job.

  2. The branch job has the following information:
    • branch

    • requester

    • archive

    • rev_id -- this is either provided by the user or is the rev_id of the branch's tip at the time of request.

For any given build-to-archive branch job, we:

  1. Extract the suite and source package name from the Changelog in the branch. XXX - What if this fails? -- JonathanLange <<Date(2009-08-07T16:19:43Z)>>

  2. Based on this information, we fire off a builder, providing it with
    • A branch URL
    • A chroot URL
    • The requester
    • The rev_id
  3. The builder then
    1. Pulls the given rev_id of the branch
    2. Grabs the chroot, unpacks it, etc.
    3. Does magic to build the source package (based on bzr builddeb)
    4. Produces:
      • The changes file
      • The dsc file
      • The tar.gz
      • The diff
      • Some information including the requster, branch_url & rev_id waves hands.

  4. The dispatcher then pulls this data down & dismantles the builder

  5. The dispatcher uploads that information to the relevant archive
  6. Done! Soyuz takes care of the rest.

Steps

Notes