Build:Releases:Firefox:2-3 MajorUpdateTest

From MozillaWiki
Revision as of 18:19, 11 January 2008 by NThomas (talk | contribs) (Initial cut)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Build Engineers

nthomas (cf)

bug 394046

Repack mar

A few packaging problems were discovered in applying the stock 3.b2 complete mars to en-US 2.0.0.11 installs. To fix this for b3, removed-files.in and the package-static files were adjusted. To let the current test continue asap, the 3.0b2 mars were repacked. Full details are in the bug, with the scripts and logs in this tgz. The repack was done on fx-linux-1.9-slave2 in ~cltbld/cf/

Generate updates

# ssh cltbld@fx-linux-1.9-slave2.mozilla.org (prod 1.9 box)
mkdir /builds/updates/firefox-20011-3b2-fake-major/
cd /builds/updates/firefox-20011-3b2-fake-major/
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d patcher mozilla/tools/patcher
# check out MozBuild
cd patcher
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d MozBuild mozilla/tools/release/MozBuild
cd ..
# config now lives in public repo
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d config mozilla/tools/patcher-configs/moz18-branch-major-update-patcher2.cfg

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

# build tools, NB no --tools-rev as tip of patcher was busted against
# the traditional MOZILLA_1_9a2_RELEASE tag
./patcher2.pl --build-tools --app=firefox \
--config=../config/moz18-branch-major-update-patcher2.cfg 2>&1 | tee firefox_build-tools.log

# download complete MARs
# FIXME - we only really need to "to" mars, not the "from" mars, but there must be "from"
#             mars present for patcher to build the patchinfo
./patcher2.pl --download --app=firefox \
 --config=../config/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.0b2 2.0.0.11-3.0b2
cd ../..

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

Push these to the aus staging box as 20080111-Fx2-3MUTest.

Everything below here is from the Fx1.5.0.12 to 2.0.0.6 major update, and will be edited towards sanity as we go

Generate null partner updates

Needed to block partners "falling back".

Repack CJKT locales

Bug 385281 has some influence here too ?

Create beta snippet dir

cd /builds/updates/1.5.0.12-major-updates/patcher/temp/firefox/1.5.0.12-2.0.0.4
rsync -a aus2/ aus2.beta/
find aus2.beta/ -type d -name "release" | xargs rm -rfv 2>&1 | tee -a beta_remove.log

Snippets were then pushed to aus as 20070904-Fx-1.5.0.12-major{,-beta,-test}

Files on FTP are in the same location as the release, but the repacked CJKT MARs have "-mu" after the version number in the filename.

Text files were put in for en-US, so bouncer would work: http://stage.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.6/update/win32/en-US/firefox-2.0.0.6-mu.complete.mar

Final testing

Snippets comparison

Compared known-good betatest channel snippets to proposed releasetest snippets. Only found expected changes ("url" in CJKT locales, stage->bouncer)

cd /opt/aus2/snippets/staging/20070626-Fx-1.5.0.12-major-test
find -type d -iregex '.*release.*' | perl -nle '$a = $_; $a =~ s/releasetest/betatest/; system("diff -r -u $_ $a");'

Compared known-good beta channel snippets to proposed releasetest snippets. Only found expected changes (url, hashValue, size in CJKT locales)

cd /opt/aus2/snippets/staging/20070626-Fx-1.5.0.12-major-test
find -type d -iregex '.*release.*' | perl -nle '$a = $_; $a =~ s/releasetest/betatest/; system("diff -r -u $_ $a");'

Compared known-good releasetest channel snippets to proposed release snippets:

cd /opt/aus2/snippets/staging/20070626-Fx-1.5.0.12-major
find -type d -iregex '.*release.*' | perl -nle '$a = $_; $a =~ s/release/releasetest/; system("diff -r -u $_ ../20070626-Fx-1.5.0.12-major-test/$a");' 2>&1 | grep -v test-cck

Partner specific

Partners needed 2.0.0.6 MARs repacked to remove existing 1.5.0.12 appdir extensions, and add the 2.0.0.6 version. This was done using the repack_partners.py in CVS:/mofo/release/one-offs/repack_partners.py Also, contents.zip in the same location contains add/remove instructions for the manifest as well as the extensions to insert into the 2.0.0.6 MARs

Patcher had a bug with test URLs that have more than one dash in them; workaround was to copy aus2 to aus2.test and remove the "release" and "beta" channels from aus2.test

Partners were deployed one-at-a-time by splitting their snippets into different directories:

20070806-Fx-1.5.0.12-major-partners-portal20
20070806-Fx-1.5.0.12-major-partners-seznam
20070827-Fx-1.5.0.12-major-partners-yahoo-cjkt
20070827-Fx-1.5.0.12-major-partners-realnetworks
20070827-Fx-1.5.0.12-major-partners-packardbell
20070827-Fx-1.5.0.12-major-partners-fujitsu-siemens
20070827-Fx-1.5.0.12-major-partners-google
20070912-Fx-1.5.0.12-major-partners-yahoo-japan

Tested each against known-good releasetest snippets:

find -type d -iregex '.*release-.*' | perl -nle '$a = $_; $a =~ s/release/releasetest/; system("diff -r -u $_ ../20070806-Fx-1.5.0.12-major-partners-test/$a");'