Releases/Firefox 2.0.0.20 MU 2/BuildNotes

Release Engineers

Nick Thomas

Bugs

bug 487521 - tracking bug
bug ??? - nulls for partners

DONE TO HERE

Generate Major Update Snippets

These are for the "vanilla" builds we're going to update.

Update these config files

  • CVS:mozilla/tools/patcher-configs/moz18-branch-major-update-patcher2.cfg
  • HG: build/tools/release/updates/moz18-firefox-{linux,mac,win32}-major.cfg

with review as usual.

Then generate the snippets

# ssh cltbld@prometheus-vm.build.mozilla.org
mkdir -p /builds/2.0.0.20-major-update-2/snippets
cd /builds/2.0.0.20-major-update-2/snippets
cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R7 -d patcher mozilla/tools/patcher
cd patcher
cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R7 -d MozBuild mozilla/tools/release/MozBuild
cd ../
cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -d patcher-configs mozilla/tools/patcher-configs

cd patcher
export CVSROOT=:ext:ffxbld@cvs.mozilla.org:/cvsroot

# build tools
./patcher2.pl --build-tools --app=firefox --tools-rev=UPDATE_PACKAGING_R7 --config=../patcher-configs/moz18-branch-major-update-patcher2.cfg 2>&1 | tee ../firefox_build-tools.log

# download mars
./patcher2.pl --download --app=firefox --config=../patcher-configs/moz18-branch-major-update-patcher2.cfg 2>&1 | tee ../firefox_download.log

# FIXME - patcher needs to see that the MARs that it thinks are partials
#             are there or else it will not attempt to generate patchinfo
cd temp/firefox
ln -s 3.0.9 2.0.0.20-3.0.9
cd ../..

# Create partial patches and snippets
./patcher2.pl --create-patches --app=firefox --config=../patcher-configs/moz18-branch-major-update-patcher2.cfg 2>&1 | tee ../firefox-create-patches.log

Separate out beta snippets

cd temp/firefox/2.0.0.20-3.0.9
rsync -a aus2/ aus2.beta/
find aus2.beta/ -type d -name "release" -exec rm -rfv {} \;
find aus2/ -type d -name "beta" -exec rm -rfv {} \; 

Quick verify

Check the snippets are identical for all four channels

# betatest == releasetest
find aus2.test -type d -iregex '.*betatest.*' | perl -nle '$a = $_; $a =~ s/betatest/releasetest/; system("diff -r -u $_ $a");'
# test the opposite direction to catch anything that only exists for releasetest
find aus2.test -type d -iregex '.*releasetest.*' | perl -nle '$a = $_; $a =~ s/releasetest/betatest/; system("diff -r -u $_ $a");'

# betatest == beta
find aus2.test -type d -iregex '.*betatest.*' | perl -nle '$a = $_; $a =~ s/betatest/beta/; $a =~ s/aus2\.test/aus2.beta/; system("diff -r -u $_ $a");'
find aus2.beta -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/betatest/; $a =~ s/aus2\.beta/aus2.test/; system("diff -r -u $_ $a");'

# betatest == release
find aus2.test -type d -iregex '.*betatest.*' | perl -nle '$a = $_; $a =~ s/betatest/release/; $a =~ s/aus2\.test/aus2/; system("diff -r -u $_ $a");'
find aus2 -type d -iregex '.*/release$' | perl -nle '$a = $_; $a =~ s/release$/betatest/; $a =~ s/aus2/aus2.test/; system("diff -r -u $_ $a");'

XXX RESULTS GO HERE

Push to AUS

cd /builds/2.0.0.20-major-update-2/snippets/patcher/temp/firefox/2.0.0.20-3.0.9
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/200904XX-Firefox-2.0.0.20-3.0.9-MU
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2.beta/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/200904XX-Firefox-2.0.0.20-3.0.9-MU-beta
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/200904XX-Firefox-2.0.0.20-3.0.9-MU-test

Enable test snippets

Safe to do this without doing null snippets because we're only talking about betatest and releasetest, where no end-users of partner builds will be falling back to (metrics website confirms).

~/bin/backupsnip 200904XX-Firefox-2.0.0.20-3.0.9-MU-test
~/bin/pushsnip 200904XX-Firefox-2.0.0.20-3.0.9-MU-test

Update verify

Ran update verify on fx-{linux,mac,win32}-1.9-slave2 as follows:

mkdir -p /builds/verify/firefox-20020-309-real-major/
cd /builds/verify/firefox-20020-309-real-major/
hg clone http://hg.mozilla.org/build/tools/

# get patch to trawl "Only in" directories
cd tools/release/common
# on mac & linux
curl -sL https://bugzilla.mozilla.org/attachment.cgi?id=367544 | patch -p0
# on win32
wget --no-check-certificate -L -O patch https://bugzilla.mozilla.org/attachment.cgi?id=367544
patch -p0 < patch

# everyone ...
platform=linux   # or mac or win32
cd ../updates
./verify.sh -c moz18-firefox-$platform-major.cfg 2>&1 | tee $platform.log

XXX RESULTS GO HERE

Enable beta snippets

Generate Null Partner Snippets

Create snippets

Push live

Verify nulls

Enable release snippets

For the vanilla builds.