SeaMonkey:Release Process:2.0

From MozillaWiki
Jump to: navigation, search

Build Harness

SeaMonkey:Release Automation


Tracking bug filed as bug 523167

Build Engineer

Robert Kaiser


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/ .
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
~cltbld/bin/ -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/ -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/ and MD5SUMS differ
Files /pub/ and README differ
Files /pub/ 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 and 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:

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

mv 2.0 /pub/

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