Release:Release Automation on Mercurial:Details
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 |