SeaMonkey:Release Process:2.0
Contents
Build Harness
Bugs
Tracking bug filed as bug 523167
Build Engineer
Robert Kaiser
Notes
Once we know we are good to go, need to convert 2.0rc2 to the final release, similarly to how this was done for FF 3.5 (just without a major update, as this is the first stable release with update support).
Stage and Rename files
# seabld@stage mkdir 2.0 cd 2.0 rsync -av --exclude='*partial.mar' --exclude=source --exclude=*SUMS /pub/mozilla.org/seamonkey/releases/2.0rc2/ . find contrib langpack linux-i686 update win32 -type f | perl -nle '$nf = $_; if ( $nf =~ s/rc2// ) { system("mv","-v",$_,$nf)}' find mac win32 -type f | perl -nle '$nf = $_; if ( $nf =~ s/\ RC\ 2// ) { system("mv","-v",$_,$nf)};' wget -O../sm-2.0-shipped-locales http://hg.mozilla.org/comm-central/raw-file/8c3a7a74702c/suite/locales/shipped-locales ~cltbld/bin/verify-locales.pl -m ~/sm-2.0-shipped-locales -l bz2 ~cltbld/bin/checksum-files . chown -R seabld:seamonkey linux-i686 mac update win32 chmod 644 *SUMS
Content verification
find /pub/mozilla.org/seamonkey/releases/2.0rc2/ -type f | perl -nle '$a = substr($_,43); $a =~ s/rc2//; $a =~ s/\ RC\ 2//; system("diff","-q",$_,$a);' # Output: diff: source/seamonkey-2.0.source.tar.bz2: No such file or directory diff: update/linux-i686/be/seamonkey-2.0rc1-2.0.partial.mar: No such file or directory diff: update/linux-i686/ca/seamonkey-2.0rc1-2.0.partial.mar: No such file or directory [...] diff: update/win32/sk/seamonkey-2.0rc1-2.0.partial.mar: No such file or directory diff: update/win32/tr/seamonkey-2.0rc1-2.0.partial.mar: No such file or directory Files /pub/mozilla.org/seamonkey/releases/2.0rc2/MD5SUMS and MD5SUMS differ Files /pub/mozilla.org/seamonkey/releases/2.0rc2/README and README differ Files /pub/mozilla.org/seamonkey/releases/2.0rc2/SHA1SUMS and SHA1SUMS differ
Everything above is expected: We don't want the partial, we regenerated *SUMS because of filename changes, and we haven't yet regenerated source packages
Ownership/permission verification
find . ! -user seabld find . ! -group seamonkey find . -type f ! -perm 644 find . -type d -mindepth 1 ! -perm 755 ! -name 'contrib*' find . -type d -maxdepth 1 ! -perm 2775 -name 'contrib*'
Tag and Source package regeneration
Because we have so many repositories to deal with it will be best to do this with the automation. We need to patch both release_config.py and factory.py. This changeset was used on the config side, the last hunk of this patch (though with a self.* prefix on the vars now) for the buildbotcustom side (as a note, bug 500473 is filed on doing final release tagging right in the future).
We have to call it build2 due to the way relbranchoverride works (fixed in theory, but not sure if our configs are up to date enough). Touching the old* vars is not really needed since Tag and Source don't use them, but you can if you want. The Source packages will be pushed to 2.0-candidates/build2. Those files should be quickly moved to ~seabld and disposed of or moved.
Once we were ready to actually do it (2 days before release), manually kicked off the tag factory from the web interface. Once that completed, kicked off source. Once that completed, ran the following to grab and then wipe out the files:
#seabld@stage rsync -av /home/ftp/pub/seamonkey/nightly/2.0-candidates/ ~/2.0-candidates/ && rm -rf /home/ftp/pub/seamonkey/nightly/2.0-candidates
Then, to the staging directory:
cd ~/2.0 rsync -av ~/2.0-candidates/build2/source/ source/
Then, regenerate SUMS files:
rm *SUMS ~cltbld/bin/checksum-files .
Push to Mirrors
#seabld@stage mv 2.0 /pub/mozilla.org/seamonkey/releases/
Wall Clock Time
- Staging and renaming files done at Fri Oct 23 10:44:47 PDT 2009
- Content verification finished at Fri Oct 23 10:57:05 PDT 2009
- Ownership/permission verification done at Fri Oct 23 11:03:13 PDT 2009
- Tagging preparation done at Fri Oct 23 12:35:47 PDT 2009
- tag:
- Start: Sun Oct 25 06:35:58 2009
- End: Sun Oct 25 06:49:12 2009
- Elapsed: 13 mins, 13 secs
- source:
- Start: Sun Oct 25 07:27:24 2009
- End: Sun Oct 25 07:37:31 2009
- Elapsed: 10 mins, 7 secs
- Source tarball staging done at Sun Oct 25 07:46:38 PDT 2009
- Files pushed to mirrors about Tue Oct 27 00:30 PDT 2009
- Website files pushed at Tue Oct 27 03:11 PDT 2009