Release:Release Automation on Mercurial:Details

From MozillaWiki
Jump to: navigation, search

Release Automation on Mercurial: Documentation | Plan | Details

This page is no longer relevant to new release automation development and is being kept only for historical purposes

This page contains a break-down of all of the tasks involved in implementing an automated release system in our Brave New World of Mercurial.

Overall notes: There are many references in this document to Buildbot BuildFactorys. Specifically, this is referring to a subclass of buildbot.process.factory.BuildFactory, such as the one found here: http://mxr.mozilla.org/mozilla/source/tools/buildbotcustom/process/factory.py#5. For reference, here is a link to Buildbot's documentation on them: http://buildbot.net/repos/release/docs/buildbot.html#Build-Factories.


The over-all tracking bug for this automation is bug 433930.

Unfinished 2009Q1 Goals

Step Task Assignee Priority Bug(s) Deadline
Misc. Properly support appVersion/version differences bhearsum P1 bug 464014 Will land post beta 3

Long-term Improvements

Step Task Assignee Priority Bug(s) References
Signing Decide on and implement a secure system for automating signing. P1
Signing Support signing OS X binaries P2 bug 400296

Completed Items

Step Task Assignee Priority Bug(s) References
Signing Write a wrapper script that performs all the manual steps for signing bhearsum P1 bug 409479 Combined Signing Instructions

waiting on review

Signing BuildFactory for signing, sits and waits for the win32 log to appear lsblakk P1 bug 473415
N/A Write a Makefile target that is capable of uploading files to a remote server. ted P1 bug 454594
N/A Write a companion script for the Makefile upload target which lives on the remote server and knows how to organize builds. bhearsum P1 bug 455578 Work left: approx. 3-5 days
Tagging/Branching Extract Bootstrap's version bumping logic into an external script bhearsum P1 bug 449208 Bump.pm
Tagging/Branching Write a BuildFactory containing all necessary steps to tag and branch a revision for a release bhearsum P1 bug 449209
Source/Bundle Write a BuildFactory containing all necessary steps to create and upload a source tarball and hg bundle for a release bhearsum P1 bug 452472 Firefox 3.1a1 Build Notes
Build Add support to MercurialBuildFactory for creating packaging so that final filenames are used bhearsum P1 bug 471427 see examples in build system bug for the vars to be set

Work left: approx. 1/4 day (once bug 455578 is done)

Build Upload packages and *_info.txt files from MercurialBuildFactory (dependent on bug 454594) bhearsum P1 bug 471427 Work left: approx. 1/2 day (once bug 455578 is done)
Build Move the existing dep/nightly build logic into a BuildFactory (which encompasses building, creating complete mars, uploading packages, and building and uploading symbols) bhearsum P1 bug 429670 mozilla-central Buildbot master.cfg
Build Add support to the build system for generating filenames in their final format (eg, Firefox Setup 3.0.2.exe) KaiRo P1 bug 453840 done work doesn't affect source tarballs or partial MARs
Repacks Support reading locales from a tagged version of shipped-locales armenzg P1 bug 464161
Repacks l10n automation for releases bhearsum P1 bug 464154 Work left: approx. 1/2-1 day
Signing Ensure sign-release.pl can support the releases/ directory structure nthomas P1 bug 408958
Signing sign-release.pl, maybe other scripts, need to support pulling stub files from HG and CVS. bhearsum P1 bug 447667
l10n verification Write a BuildFactory containing all the necessary steps to perform l10n verification. coop P1 bug 451398
l10n verification Update l10n verification scripts to support both long filenames, and the releases/ directory structure. coop P1 bug 451394
Updates Ensure partial update MARs can be uploaded without permissions issues bhearsum P1 bug 467000 3.1b3 (January 15th)
Updates+Snippet generation Move PatcherConfig from Bootstrap into an external script. bhearsum P1 bug 456400
Updates+Snippet generation Add Mercurial and long filename support to Patcher bhearsum P1 bug 454261
Updates+Snippet generation Write a BuildFactory containing all the necessary steps to update the patcher configuration, generate partial mars, and generate update snippets for all past releases. bhearsum P1 bug 460788
Update verification Move BumpVerifyConfig from Bootstrap into an external script. bhearsum P1 bug 462143
l10n verification/update verify Move testing/release/common, testing/release/l10n, and testing/release/updates to hg.mozilla.org/build/tools (and update Bootstrap to pull them from there) coop P1 bug 451392 build/tools/release
Update verification Write a BuildFactory containing all the necessary steps to run our "update verification" tests. bhearsum P1 bug 462145
Pre-release Write a BuildFactory containing all the necessary steps to do a test of bouncer links and compare the releasetest and release channel update snippets. bhearsum P2 bug 462043 Final Verification
N/A Write a Buildbot master.cfg that is capable of running the above described automation to generate a release from one or more Mercurial repositories. P1 bug 454205 bug 457721 Bootstrap-based release automation
Misc. Add buildSpace arguments to release factories bhearsum bug 472884
Misc. Remove hardcoded magic strings from release_master.py bhearsum P1 bug 470966