#5279 HIGH Update.: Build process

Zarro Boogs per Child bugtracker at laptop.org
Mon Dec 3 10:21:44 EST 2007


#5279: Build process
------------------------+---------------------------------------------------
 Reporter:  cscott      |       Owner:  cscott                           
     Type:  defect      |      Status:  new                              
 Priority:  high        |   Milestone:  Update.1                         
Component:  distro      |     Version:  Development build as of this date
 Keywords:  test-suite  |    Verified:  0                                
------------------------+---------------------------------------------------
 OLPC builds should have the following stages:

 1) Repository collection.
 Both koji and joyride-related repositories should be collected into a git
 archive.  By building from git instead of directly from koji, we both
 speed up our builds (by hosting the files locally) and insulate ourselves
 from koji/connectivity failures which would otherwise interrupt our
 builds.  We also ensure that the full set of bits (source and binary)
 which make up our builds are archived locally and permanently accessible.
 The separate collection step also allows us to side-step koji in the rare
 cases where it is necessary, and to provide better repository commit
 messages in the run-up to a stable release.

 1b) Joyride collection should include rebuilding SRPMs in an appropriate
 mock chroot, to ensure that our binaries match our sources and that binary
 incompatibilies don't sneak in.

 2) Package composition (aka "the build", aka "pilgrim").
 Composition takes place with yum targetted at the collected repositories.

 3) Automated build testing. (aka, "tinderbox")
 After each build, an automated test suite is run which (a) protects
 against regressions, (b) ensures that the build was "correct" (ie, pilgrim
 didn't fail), and (c) to the greatest extent possible, ensures that all
 released builds, even development builds, are at least dogfood quality.

 3b) Reversion/promotion.
 At some future point, automated reverts of the package collection might
 occur if new builds fail the automated test suite.  Alternatively, we can
 automatically graduate packages from 'development' to 'testing' if a
 certain period has passed without a blocking bug filed against the
 package.  (This latter plan requires greater integration of our build
 system and bug database.)

 4) Installation.
 Builds which pass the automated tests are installed to the appropriate
 directory on downloads.laptop.org (see trac #5038 and #1813).  Builds
 which don't pass automated tests might be made available in some
 appropriate "unofficial" spot to aid correction of the failures, but this
 spot should not be visible to the general public.  Installation may also
 involve updating the updates.laptop.org database so that (for example) the
 'joyride' stream always points to the latest joyride build.

 This trac item will be a meta bug for:

 a) discussion of this process,
 b) creating appropriate wiki pages documenting the process in detail,
 c) referencing specific trac items for the various work required to fully
 implement this system, and reporting on progress.

-- 
Ticket URL: <http://dev.laptop.org/ticket/5279>
One Laptop Per Child <http://dev.laptop.org>
OLPC bug tracking system



More information about the Bugs mailing list