Build:Releases:Firefox:2-3 MajorUpdateTest: Difference between revisions

(Initial cut)
 
 
(14 intermediate revisions by the same user not shown)
Line 4: Line 4:
[https://bugzilla.mozilla.org/show_bug.cgi?id=394046 bug 394046]
[https://bugzilla.mozilla.org/show_bug.cgi?id=394046 bug 394046]


==Repack mar==
==From 2.0.0.11 to 3.0b2==
 
The first iteration.
 
===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 [https://bugzilla.mozilla.org/attachment.cgi?id=296544 this tgz]. The repack was done on fx-linux-1.9-slave2 in <tt>~cltbld/cf/</tt>
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 [https://bugzilla.mozilla.org/attachment.cgi?id=296544 this tgz]. The repack was done on fx-linux-1.9-slave2 in <tt>~cltbld/cf/</tt>


==Generate updates==
===Generate updates===


  # ssh cltbld@fx-linux-1.9-slave2.mozilla.org (prod 1.9 box)
  # ssh cltbld@fx-linux-1.9-slave2.mozilla.org (prod 1.9 box)
Line 47: Line 51:
Push these to the aus staging box as 20080111-Fx2-3MUTest.
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'''
===Verify updates===
 
On fx-win32-1.9-slave2, fx-mac-1.9-slave2, fx-linux-1.9-slave2, do
 
mkdir -p /builds/verify/firefox-20011-3b2-fake-major/
cd /builds/verify/firefox-20011-3b2-fake-major/
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d updates mozilla/testing/release/updates/
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d common mozilla/testing/release/common/
cd updates
./verify.sh -c moz18-firefox-$platform-major.cfg 2>&1 | tee $platform.log
 
Hand off to QA for testing. Further snippets testing and partner specific steps were done for [https://intranet.mozilla.org/Release:_Firefox_1.5.0.12_to_2.0.0.6_Major_Update Fx1.5.0.12 --> 2.0.0.6 update].
 
==From 2.0.0.12 to 3.0b3==
 
The second iteration, to test what other packaging fixes we need ahead of b4.
 
===Generate updates===
 
# ssh cltbld@fx-linux-1.9-slave2 (prod 1.9 box)
mkdir /builds/updates/firefox-20012-3b3-fake-major/
cd /builds/updates/firefox-20012-3b3-fake-major/
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d patcher -r UPDATE_PACKAGING_R1 mozilla/tools/patcher
# check out MozBuild
cd patcher
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d MozBuild -r UPDATE_PACKAGING_R1 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
# apply patch waiting for review
cd config
curl -s https://bugzilla.mozilla.org/attachment.cgi?id=304201 | patch -p0
cd ..
cd patcher
export CVSROOT=cltbld@cvs.mozilla.org:/cvsroot
 
# build tools
./patcher2.pl --build-tools --app=firefox --tools-rev=UPDATE_PACKAGING_R1 \
--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.0b3 2.0.0.12-3.0b3
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 aus2.test to the AUS staging box as 20080219-Fx20012-3b3-MU-test, do manual snippet verifications, and push live.
 
===Verify updates===
 
On fx-win32-1.9-slave2, fx-mac-1.9-slave2, fx-linux-1.9-slave2, do
 
mkdir -p /builds/verify/firefox-20012-3b3-fake-major/
cd /builds/verify/firefox-20012-3b3-fake-major/
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d updates mozilla/testing/release/updates/
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d common mozilla/testing/release/common/
cd updates
# apply patch awaiting review
curl -s https://bugzilla.mozilla.org/attachment.cgi?id=304202 | patch -p0
./verify.sh -c moz18-firefox-$platform-major.cfg 2>&1 | tee $platform.log
 
==From 2.0.0.12 to 3.0b4==
 
The third iteration, to test what other packaging fixes we need ahead of b5.
 
===Generate updates===
 
# ssh cltbld@fx-linux-1.9-slave2 (prod 1.9 box)
mkdir /builds/updates/firefox-20012-3b4-fake-major/
cd /builds/updates/firefox-20012-3b4-fake-major/
# 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
# get patcher
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d patcher -r UPDATE_PACKAGING_R2 mozilla/tools/patcher
# check out MozBuild
cd patcher
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d MozBuild -r UPDATE_PACKAGING_R2 mozilla/tools/release/MozBuild
export CVSROOT=cltbld@cvs.mozilla.org:/cvsroot
 
# build tools
./patcher2.pl --build-tools --app=firefox --tools-rev=UPDATE_PACKAGING_R2 \
--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.0b4 2.0.0.12-3.0b4
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 aus2.test to the AUS staging box as 20080317-Fx20012-3b4-MU-test, do manual snippet verifications, and push live.
 
===Verify updates===


==Generate null partner updates==
On fx-win32-1.9-slave2, fx-mac-1.9-slave2, fx-linux-1.9-slave2, do
Needed to block partners "falling back".


==Repack CJKT locales==
mkdir -p /builds/verify/firefox-20012-3b4-fake-major/
[https://bugzilla.mozilla.org/show_bug.cgi?id=385281 Bug 385281] has some influence here too ?
cd /builds/verify/firefox-20012-3b4-fake-major/
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d updates mozilla/testing/release/updates/
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d common mozilla/testing/release/common/
# get patch to trawl "Only in" directories
cd common
# on mac & linux
curl -s https://bugzilla.mozilla.org/attachment.cgi?id=304252 | patch -p0
# on win32
wget --no-check-certificate -O patch https://bugzilla.mozilla.org/attachment.cgi?id=304252
patch -p0 < patch
cd ../updates
./verify.sh -c moz18-firefox-$platform-major.cfg 2>&1 | tee $platform.log
 
==From 2.0.0.14 to 3.0==
 
The fourth iteration, to test what other packaging fixes we need ahead of 3.0.1
 
===Generate updates===
 
# ssh cltbld@fx-linux-1.9-slave2 (prod 1.9 box)
mkdir /builds/updates/firefox-20014-3-fake-major/
cd /builds/updates/firefox-20014-3-fake-major/
# 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
# get patcher
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d patcher -r UPDATE_PACKAGING_R4 mozilla/tools/patcher
# check out MozBuild
cd patcher
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d MozBuild -r UPDATE_PACKAGING_R4 mozilla/tools/release/MozBuild
export CVSROOT=cltbld@cvs.mozilla.org:/cvsroot
 
# build tools
./patcher2.pl --build-tools --app=firefox --tools-rev=UPDATE_PACKAGING_R4 \
--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.0 2.0.0.14-3.0
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


===Create beta snippet dir===
Push aus2.test to the AUS staging box as 20080627-Fx20014-3-MU-test, do manual snippet verifications, and push live.


cd /builds/updates/1.5.0.12-major-updates/patcher/temp/firefox/1.5.0.12-2.0.0.4
===Verify updates===
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}
On fx-win32-1.9-slave2, fx-mac-1.9-slave2, fx-linux-1.9-slave2, do


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.  
mkdir -p /builds/verify/firefox-20014-3-fake-major/
cd /builds/verify/firefox-20014-3-fake-major/
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d updates mozilla/testing/release/updates/
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d common mozilla/testing/release/common/
# get patch to trawl "Only in" directories
cd common
# on mac & linux
curl -s https://bugzilla.mozilla.org/attachment.cgi?id=304252 | patch -p0
# on win32
wget --no-check-certificate -O patch https://bugzilla.mozilla.org/attachment.cgi?id=304252
patch -p0 < patch
cd ../updates
./verify.sh -c moz18-firefox-$platform-major.cfg 2>&1 | tee $platform.log


Text files were put in for en-US, so bouncer would work:
==From 2.0.0.16 to 3.0.1==
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==
The fifth iteration, are we there yet ?


===Snippets comparison===
===Update configs===


Compared known-good betatest channel snippets to proposed releasetest snippets.
Both the patcher and verify configs need updating for the new version - [https://bugzilla.mozilla.org/attachment.cgi?id=333503 patch]
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.
===Generate updates===
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:
# ssh cltbld@fx-linux-1.9-slave2 (prod 1.9 box)
  cd /opt/aus2/snippets/staging/20070626-Fx-1.5.0.12-major
mkdir /builds/updates/firefox-20016-301-fake-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
  cd /builds/updates/firefox-20016-301-fake-major/
# 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
# get patcher
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d patcher -r UPDATE_PACKAGING_R4 mozilla/tools/patcher
# check out MozBuild
cd patcher
  cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d MozBuild -r UPDATE_PACKAGING_R4 mozilla/tools/release/MozBuild
export CVSROOT=cltbld@cvs.mozilla.org:/cvsroot
 
# build tools
./patcher2.pl --build-tools --app=firefox --tools-rev=UPDATE_PACKAGING_R4 \
--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.0.1 2.0.0.16-3.0.1
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


==Partner specific==
Rsync temp/firefox/2.0.0.16-3.0.1/aus2.test to the AUS staging box as 20080814-Fx20016-301-MU-test, do manual snippet verifications, and push live.


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
===Verify updates===


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
On fx-win32-1.9-slave2, fx-mac-1.9-slave2, fx-linux-1.9-slave2, do


Partners were deployed one-at-a-time by splitting their snippets into different directories:
mkdir -p /builds/verify/firefox-20016-301-fake-major/
  20070806-Fx-1.5.0.12-major-partners-portal20
  cd /builds/verify/firefox-20016-301-fake-major/
  20070806-Fx-1.5.0.12-major-partners-seznam
  cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d updates mozilla/testing/release/updates/
  20070827-Fx-1.5.0.12-major-partners-yahoo-cjkt
  cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d common mozilla/testing/release/common/
  20070827-Fx-1.5.0.12-major-partners-realnetworks
  20070827-Fx-1.5.0.12-major-partners-packardbell
# get patch to trawl "Only in" directories
20070827-Fx-1.5.0.12-major-partners-fujitsu-siemens
cd common
  20070827-Fx-1.5.0.12-major-partners-google
# on mac & linux
  20070912-Fx-1.5.0.12-major-partners-yahoo-japan
  curl -s https://bugzilla.mozilla.org/attachment.cgi?id=304252 | patch -p0
# on win32
  wget --no-check-certificate -O patch https://bugzilla.mozilla.org/attachment.cgi?id=304252
patch -p0 < patch
  cd ../updates
  ./verify.sh -c moz18-firefox-$platform-major.cfg 2>&1 | tee $platform.log


Tested each against known-good releasetest snippets:
Then push the logs up to [https://build.mozilla.org/logs/Firefox_2.0.0.16_3.0.1_MU/ here] (LDAP auth) and compare against the fourth iteration. When doing a diff, the only thing of note is that
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");'
  PREPARE REMOVE searchplugins/pbi-pl.xml
+file cannot be removed because it does not exist; skipping
  PREPARE REMOVE searchplugins/taobao.xml
  file cannot be removed because it does not exist; skipping
...
  FINISH ADD searchplugins/fbc-pl.xml
-remove failed: -1,2 (searchplugins/fbc-pl.xml.moz-backup)
for the Polish locale (due to {{bug|408888}}, pbi-pl died and was replaced by fbcpl).
Confirmed users
4,293

edits