Releases/Firefox 5.0b5/BuildNotes
Contents
- 1 Notes About Releasing
- 2 Bugs hit
- 3 Build Engineers
- 4 Signed-off Revision(s)
- 5 L10N changesets
- 6 Tags
- 7 Build data
- 8 Notes
- 8.1 Build 1
- 8.1.1 Setup
- 8.1.2 Tag
- 8.1.3 Start Autosign
- 8.1.4 Bouncer Submitter
- 8.1.5 Source
- 8.1.6 Build/Repack
- 8.1.7 Reset reserved_slaves
- 8.1.8 Signing
- 8.1.9 L10n Verify
- 8.1.10 Updates (5.0b[1-4] -> 5.0b5)
- 8.1.11 Updates (4.0many -> 5.0b5)
- 8.1.12 Channel switching snippets
- 8.1.13 Permissions check and A/V Scan
- 8.1.14 A/V Notification
- 8.1.15 Push Files
- 8.1.16 Final verify
- 8.1.17 Push snippets
- 8.1 Build 1
Notes About Releasing
Please update the Release:Primer for future releases (bug fixes, changes to automation) as needed
Bugs hit
The following are the list of bugs that we expect to hit or that we did not expect to hit. For the next release some of this will be already fixed.
- We forgot that beta4 was not shipped and update verify failed
These two required the manual work for major updates:
- bug 662803 - Major update automation should support multiple "from" versions
- bug 662298 - major update automation should be able to be run independently, or as part of the "to" release
Also check the "known issues" page.
For postmortem
The whole release was rushed up (go to build later on EDT) and expectations of releasing on next afternoon was not explicit. If it was known I could have started things earlier.
Build Engineers
armenzg - bug 662509
Signed-off Revision(s)
Build 1: 3524ac4292a7
L10N changesets
From Axel's webapp.
Tags
Build # | Tag | Changeset |
1 | GECKO50_2011060814_RELBRANCH | cf9c20531b17 |
FIREFOX_5_0b5_RELEASE FIREFOX_5_0b5_BUILD1 | cf9c20531b17 |
Build data
Build # | Type | Build ID | Build machine | Time to build |
1 | Linux | 20110608151458 | mv-moz2-linux-ix-slave13 | 59 mins, 35 secs |
Linux64 | moz2-linux64-slave02 | 1 hrs, 7 mins, 45 secs | ||
Mac | moz2-darwin10-slave48 | 4 hrs, 9 mins, 3 secs | ||
Windows | mw32-ix-slave17 | 2 hrs, 42 mins, 39 secs |
Notes
Build 1
Setup
- Marked "Any master", "mozilla-beta", "Any builder" for a clobber
- About an hour ahead of the expected "go", set reserved_slaves to 6:
[cltbld@production-master03 builder_master]$ pwd /builds/buildbot/builder_master [cltbld@production-master03 builder_master]$ echo 6 > reserved_slaves_pm03
- Hit "ship it" button on "Firefox 5 Beta Build 5"</i> (https://l10n-stage-sj.mozilla.org/shipping/milestones)
- Landed configs, merged configs & custom to production.
- Tagged buildbot-configs, buildbotcustom, and tools with FIREFOX_5_0b5_RELEASE and FIREFOX_5_0b5_BUILD1
- Update pm03 checkouts & reconfigured
- Ran release_sanity dry run with:
PYTHONPATH=.:tools/lib/python/ python tools/buildbot-helpers/release_sanity.py -u armenzg -V 5.0b5 --branch mozilla-beta --build-number 1 -c release-firefox-mozilla-beta.py --dryrun localhost:9010
- And then to start the release:
PYTHONPATH=.:tools/lib/python/ python tools/buildbot-helpers/release_sanity.py -u armenzg -V 5.0b5 --branch mozilla-beta --build-number 1 -c release-firefox-mozilla-beta.py localhost:9010
Tag
Worked fine.
Start Autosign
Once mozilla-beta was tagged, on keymaster, started signcodepwd.exe, opened a cygwin terminal and run the following:
PRODUCT=firefox VERSION=5.0b5 BUILD=1 TAG=FIREFOX_5_0b5_RELEASE REPO='releases/mozilla-beta' EMAIL=release@mozilla.com KEYDIR=d:/2010-keys RELCONFIG=mozilla/release-firefox-mozilla-beta.py cd ${HOME}/hg-tools/ hg pull && hg up -r ${TAG} mkdir -p ~/signing-work/${PRODUCT}-${VERSION}/lib/python cd ~/signing-work/${PRODUCT}-${VERSION} cp ~/hg-tools/release/signing/* . rsync -av ~/hg-tools/lib/python/ ./lib/python/ make autosign PRODUCT=${PRODUCT} VERSION=${VERSION} BUILD=${BUILD} REPO=${REPO} EMAIL=${EMAIL} KEYDIR=${KEYDIR} RELCONFIG=${RELCONFIG}
Bouncer Submitter
Worked fine.
Source
Worked fine.
Build/Repack
- Linux: No problems
- Linux64: No problems
- Windows: No problems
- Mac: No problems
Reset reserved_slaves
[cltbld@production-master03 builder_master]$ pwd /builds/buildbot/builder_master [cltbld@production-master03 builder_master]$ echo 0 > reserved_slaves_pm03
Signing
No problems. Closed signcodepwd.exe after signing finished. Got "signature verification succeeded" mail a few hours later.
L10n Verify
A few legitimate looking string changes.
Updates (5.0b[1-4] -> 5.0b5)
No problems.
Update verify
Beta4 had not been shipped and therefore update verify failed.
Process stderr: http://stage-old.mozilla.org/pub/mozilla.org//firefox/releases/5.0b4/linux-i686/af/firefox-5.0b4.tar.bz2: 22:10:02 ERROR 404: Not Found.
- We landed a switch from releases/5.0b4 to nightly/5.0b4-candidates/build1.
- Tagged with FIREFOX_5_0b5_{RELEASE,BUILD1}_RUNTIME.
- Re-build each one of the failing jobs
It all looks green now.
Updates (4.0many -> 5.0b5)
Manually bumped patcher config and update verify config.
Bumped FIREFOX_4_0_1_RELEASE tag on buildbot-configs, FIREFOX_4_0_1_{BUILD1,RELEASE}_RUNTIME on tools.
Generation of updates was done on mv-moz2-linux-ix-slave13, using the UPDATE_PACKAGING_R14 tag, and re-using the updates directory from the 5.0b[12] -> 5.0b5 updates run, to save time & energy.
Disabled the slave from slavealloc and gracefully shut it down.
cd /builds/slave/rel-beta-updates/build/patcher-configs cvs up cd .. perl patcher2.pl --download --app=firefox --brand=Firefox --config=patcher-configs/moz20-branch-major-update-patcher2.cfg cd temp/firefox ln -s 5.0b5 4.0.1-5.0b5 cd ../.. perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg --app=firefox --brand=Firefox --config=patcher-configs/moz20-branch-major-update-patcher2.cfg # remove partials for 4.0.1 cd temp/firefox/4.0.1-5.0b5 find aus2{,.test} -name partial.txt -exec rm {} \; # check releasetest == beta bash /builds/slave/rel-beta-updates//tools/release/compare-channel-snippets.sh aus2 beta aus2.test releasetest # push up to aus rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-5.0b5-build1-4.0.1-build1-test rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-5.0b5-build1-4.0.1-build1 # push test snippets live bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/backupsnip Firefox-5.0b5-build1-4.0.1-build1-test' bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/pushsnip Firefox-5.0b5-build1-4.0.1-build1-test'
Update Verify
To force all of the verify builders, used the following script (warning: not OS X compatible):
for p in linux linux64 macosx64 win32; do for i in `seq 1 10`; do curl "http://production-master1.build.sjc1.mozilla.com:8010/builders/release-mozilla-2.0-${p}_major_update_verify_${i}%2F10/force" >/dev/null done done
Differences in all platforms:
diff -r source/firefox/defaults/pref/channel-prefs.js target/firefox/defaults/pref/channel-prefs.js 1,2c1,2 < //@line 2 "/builds/slave/rel-2.0-lnx-bld/build/browser/app/profile/channel-prefs.js" < pref("app.update.channel", "release"); --- > //@line 2 "/builds/slave/rel-beta-lnx-bld/build/browser/app/profile/channel-prefs.js" > pref("app.update.channel", "beta"); WARN: non-binary files found in diff
Reviewing this GREEN logs are so verbose. How could this be improved?
Channel switching snippets
We'll use the 4.0.1 snippets for this, which has all of the locales we care about, plus a (harmless) few extra. Like 5.0b2, we put them in a bogus buildID of 30000000000000 to keep the channel switching snippets separate from more specific ones.
NOTE: For this to work you have to trigger the MU first.
# cltbld@aus2-staging cd /opt/aus2/snippets/staging mkdir -p Firefox-5.0b5-build1-channel-switching/Firefox/ rsync -a Firefox-5.0b5-build1-4.0.1-build1/Firefox/4.0.1 Firefox-5.0b5-build1-channel-switching/Firefox/ cd Firefox-5.0b5-build1-channel-switching/Firefox/ mv 4.0.1 5.0 for d in 5.0/*; do mv -v $d/* $d/30000000000000 done
Permissions check and A/V Scan
No problems.
A/V Notification
No problems.
Push Files
As in 5.0b2, we'll be pushing to a few internal mirrors rather than the whole network. To set this up, added the following to stage:/pub/mozilla.org/zz/rsyncd-mozilla-releases.exclude:
- firefox/releases/5.0b5
...and waited a few minutes, to ensure that the rsync servers have the file.
Then, forced the "release-mozilla-beta-push_to_mirrors" builder with the following properties:
release_config: mozilla/release-firefox-mozilla-beta.py script_repo_revision: FIREFOX_5_0b5_RELEASE
Final verify
Triggered "release-mozilla-beta-$PLATFORM_final_verification" without any problems.
Using internal mirrors was so fast!!
Push snippets
"Firefox-5.0b5-build1" and "Firefox-5.0b5-build1-channel-switching" both only have a "5.0" version in them, so we only need one backupsnip between them. "Firefox-5.0b5-build1-4.0.1-build1" has 4.0 versions, and needs its own. As cltbld@aus2-staging, did the following for backups:
cd /opt/aus2/snippets/staging ~/bin/backupsnip Firefox-5.0b5-build1 ~/bin/backupsnip Firefox-5.0b5-build1-4.0.1-build1
And for the pushes:
~/bin/pushsnip Firefox-5.0b5-build1 ~/bin/pushsnip Firefox-5.0b5-build1-channel-switching ~/bin/pushsnip Firefox-5.0b5-build1-4.0.1-build1