Releases/Firefox 2.0.0.16-3.0.1 MU:BuildNotes
< Releases
Release Engineers
Nick Thomas (major update test)
Ben Hearsum (real snippet generation, null partner updates)
Bugs
bug 442105 - tracking bug
bug 450863 - null partner updates
Generate Major Update Snippets
# ssh cltbld@prometheus-vm.build.mozilla.org cd /builds/2.0.0.16-major-update/snippets cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -d patcher mozilla/tools/patcher cd patcher cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -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_R4 --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.1 2.0.0.16-3.0.1
# 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
Generate Null Partner Snippets
Create Partner Channel List
Starting with https://bugzilla.mozilla.org/attachment.cgi?id=334332
# Removed any channels that don't start with 'release-' from the list # Now, we only have a list of the real release channels for partner builds # we need to add beta and test channels to the list: for i in `cat partner-update-channels`; do basechan=`echo $i | sed -e 's/release-//'` && echo "beta-$basechan" >> partner-update-channels && echo "betatest-$basechan" >> partner-update-channels && echo "releasetest-$basechan" >> partner-update-channels; done # now, we have all the channels we need except for the 4 listed at the start # because the real release channels aren't prepended with 'release' we will do this different: for i in [list of channels that don't start with release-]; do echo $i >> partner-update-channels && echo "beta-$i" >> partner-update-channels && echo "betatest-$i" >> partner-update-channels && echo "releasetest-$i" >> partner-update-channels; done # now we have a complete list of partner channels to generate snippets for cd temp/firefox/3.0.1 bash ../../../one-offs/null_partners.sh ../../../partner-update-channels
Generate null snippets
updated null_partners.sh with 2.0.0.16 buildids, and enabled it to read a list of partner channels from an external file - rev 1.3
# ssh cltbld@prometheus-vm.build.mozilla.org cd /builds/2.0.0.16-major-update/snippets/patcher/temp/firefox/2.0.0.16-3.0.1 bash ../../../one-offs/null_partners.sh ../../../partner-update-channels
Create beta snippet dir
rsync -a aus2/ aus2.beta/
Trim snippets from release, beta, test dirs
Our 'aus2.test' directory should only contain 'releasetest-*' and 'betatest-*' snippets. Similarly, 'aus2.beta' should only contain 'beta-*' snippets and 'aus2' should only have 'release-*'
# beta find aus2.beta/ -type d -name "release*" -exec rm -rfv {} \; 2>&1 | tee -a beta_remove.log find aus2.beta/ -type d -name "releasetest*" -exec rm -rfv {} \; 2>&1 | tee -a beta_remove.log find aus2.beta/ -type d -name "betatest*" -exec rm -rfv {} \; 2>&1 | tee -a beta_remove.log # these ones get rid of those funny channels find aus2.beta/ -type d -name "default*" -exec rm -rfv {} \; 2>&1 | tee -a beta_remove.log find aus2.beta/ -type d -name "nightly*" -exec rm -rfv {} \; 2>&1 | tee -a beta_remove.log find aus2.beta/ -type d -name "Windows*" -exec rm -rfv {} \; 2>&1 | tee -a beta_remove.log # release find aus2/ -type d -name "beta*" -exec rm -rfv {} \; 2>&1 | tee -a release_remove.log find aus2/ -type d -name "releasetest*" -exec rm -rfv {} \; 2>&1 | tee -a release_remove.log find aus2/ -type d -name "betatest*" -exce rm -rfv {} \; 2>&1 | tee -a release_remove.log # test find aus2.test/ -type d -name "release-*" -exec rm -rfv {} \; 2>&1 | tee -a test_remove.log find aus2.test/ -type d -name "beta-*" -exec rm -rfv {} \; 2>&1 | tee -a test_remove.log # these ones get rid of those funny channels find aus2.test/ -type d -name "default*" -exec rm -rfv {} \; 2>&1 | tee -a test_remove.log find aus2.test/ -type d -name "nightly*" -exec rm -rfv {} \; 2>&1 | tee -a test_remove.log find aus2.test/ -type d -name "Windows*" -exec rm -rfv {} \; 2>&1 | tee -a test_remove.log
Verify correct snippets are in correct directories
Make sure that only betatest/releasetest snippets are in aus2.test, beta snippets in aus2.beta, and release snippets in aus2 # aus2.test find aus2.test -type d -mindepth 6 -maxdepth 6 | cut -d / -f 7 | egrep -v '^(beta|release)test-*' # no output # beta find aus2.beta -type d -mindepth 6 -maxdepth 6 | cut -d / -f 7 | egrep -v '^beta-*' # no output # release find aus2 -type d -mindepth 6 -maxdepth 6 | cut -d / -f 7 | egrep -v '^(release$|release-*)' # only output is those 'release' channels that don't contain 'release' in their name