Releases/Firefox 5.0b1/BuildNotes

From MozillaWiki
Jump to: navigation, search

Notes About Releasing

Please update the Release:Primer for future releases (bug fixes, changes to automation) as needed

Build Engineers

lsblakk, nthomas - bug 652641

Signed-off Revision(s)

building off a307c807cfab which has green builds

L10N changesets

not doing l10n on this build, en-US only.

Tags

Build data

Build 1

Setup

  • set clobber for pm03:8010 all builders (which was futile, since there have been no release builds for this branch - habit)
  • landed configs
  • landed tools/release/updates/*.cfg for beta
  • updated pm03 buildbot-configs, buildbotcustom, tools
  • manually tagged buildbot-configs, buildbotcustom, tools with FIREFOX_5_0b1_RELEASE, FIREFOX_5_0b1_BUILD1
  • added symlinks in builder_master for the new beta files (l10n-changesets_mozilla-beta, release-firefox-mozilla-beta.py)

Dry run:

PYTHONPATH=.:tools/lib/python/ python tools/buildbot-helpers/release_sanity.py -u lsblakk -V 5.0b1 --branch mozilla-beta --build-number 1 -c release-firefox-mozilla-beta.py --dryrun localhost:9010

Dry run caught the need for symlinks in builder_master for the new beta files (l10n-changesets_mozilla-beta, release-firefox-mozilla-beta.py). Once those were added, it passed. Ran without --dry-run to start the release:

PYTHONPATH=.:tools/lib/python/ python tools/buildbot-helpers/release_sanity.py -u lsblakk -V 5.0b1 --branch mozilla-beta --build-number 1 -c release-firefox-mozilla-beta.py localhost:9010

Tag

No problems

Send mail to metrics

We should do this at the start now, but didn't actually this time. By then 5.0 was already set up in the metrics views. Emailed metrics@m.c with version and buildID for completeness.

Source

No problems

Build/Repack

Builds completed but reported as failed because there was no scheduler to trigger for repacks as we weren't doing any locales. Filed bug 653294

Unittests

Some oranges and one failure - put report in here. TODO

Update Bouncer

Buildbot step succeeded, updated Bouncer. Wanted to removed the Firefox-5.0b1 locations and product manually, but hit bug 629404 and had to be content with unsetting Check Now.

Signing

This was fun. A combination of old and new:

make postsign PRODUCT=${PRODUCT} VERSION=${VERSION} BUILD=${BUILD} REPO=${REPO} EMAIL=${EMAIL} KEYDIR=${KEYDIR} USE_NEW=1

Checked candidates to make sure everything was uploaded properly and it seems good.

On May 16, 2011 - after the release - bug 657285 was filed about there not being any contrib directories. Because I had not used autosign, they were not created and so I did:

# on keymaster in /home/cltsign to create & fix permissions & upload to nightly dir
make stage EMAIL=lsblakk@mozilla.com BUILD=1 VERSION=5.0b1 WORKDIR=/home/cltsign/signing-work/firefox-5.0b1
make upload EMAIL=lsblakk@mozilla.com BUILD=1 VERSION=5.0b1 WORKDIR=/home/cltsign/signing-work/firefox-5.0b1
# on stage as ffxbld to put in releases
rsync -av --exclude=*tests* --exclude=*crashreporter* --exclude=*.log --exclude=*.txt --exclude=*unsigned* --exclude=*update-backup* --exclude=*partner-repacks* --exclude=*.checksums --exclude=logs /pub/mozilla.org/firefox/nightly/5.0b1-candidates/build1/ /pub/mozilla.org/firefox/releases/5.0b1/

L10N Verify

n/a - no locales for this release

Updates

skip_updates was set for this release, so no snippets were generated. Still got an email for them though and filed bug 653512.

Update Verify

n/a

Major Update 3.7a* & 4.0b* to 5.0b1

Bug for this work is bug 651982.

Manual generation of a major update from 3.7a*, 4.0b* to 5.0b1, using linux-ix-slave02

cd /builds/tmp/

# checkout patcher
cvs -d :ext:cltbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R13 -d bug651982-5.0b1-MU mozilla/tools/patcher

cd bug651982-5.0b1-MU
# get utility libraries
cvs -d :ext:cltbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R13 -d MozBuild mozilla/tools/release/MozBuild
cvs -d :ext:cltbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R13 -d Bootstrap mozilla/tools/release/Bootstrap/Util.pm
hg clone http://hg.mozilla.org/build/tools/

cvs -d :ext:cltbld@cvs.mozilla.org:/cvsroot co -d patcher-configs mozilla/tools/patcher-configs
cd patcher-configs
curl -sL https://bug651982.bugzilla.mozilla.org/attachment.cgi?id=529071 | patch -p0
cd ..

export HGROOT=http://hg.mozilla.org/releases/mozilla-2.0 
perl patcher2.pl --build-tools-hg --tools-revision=UPDATE_PACKAGING_R13 --app=firefox --brand=Firefox --config=patcher-configs/moz20-branch-major-update-patcher2.cfg

perl patcher2.pl --download --app=firefox --brand=Firefox --config=patcher-configs/moz20-branch-major-update-patcher2.cfg

cd temp/firefox
ln -s 5.0b1 4.0b12-5.0b1
cd ../..

perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg --app=firefox --brand=Firefox --config=patcher-configs/moz20-branch-major-update-patcher2.cfg

# fix up the mac build targets, 
# https://wiki.mozilla.org/index.php?title=User:NThomas:Mac_BUILDTARGET
cd temp/firefox/4.0b12-5.0b1/

# 64bit mono-arch only for a5 thru b6
rm -rf aus*/Firefox/{3.7a{1..4},4.0b{7..12}}/Darwin_x86_64-gcc3

# b5 and b6 were ppc + intel32 and said so, only want intel32
rm -rf aus2*/Firefox/4.0b{5,6}/Darwin_x86_64-gcc3-u-i386-x86_64
for d in aus2*/Firefox/4.0b{5,6}; do
  mv $d/Darwin_x86-gcc3-u-i386-x86_64 $d/Darwin_x86-gcc3-u-ppc-i386
done

# a1 thru a5 and b1 thru b4 were ppc + intel, but didn't say so
# we rely on this to block PPC
#  http://mxr.mozilla.org/mozilla/source/webtools/aus/xml/index.php#94
rm -rf aus2*/Firefox/{3.7a{1..5},4.0b{1..4}}/Darwin_x86_64-gcc3-u-i386-x86_64
for d in aus2*/Firefox/{3.7a{1..5},4.0b{1..4}}; do
  mv $d/Darwin_x86-gcc3-u-i386-x86_64 $d/Darwin_Universal-gcc3
done

# check releasetest == beta
bash /builds/tmp/bug651982-5.0b1-MU/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.0b1-build1-4.0b12-build1-MU-test
rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-5.0b1-build1-4.0b12-build1-MU

# push test snippets live
bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/backupsnip Firefox-5.0b1-build1-4.0b12-build1-MU-test'
bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/pushsnip Firefox-5.0b1-build1-4.0b12-build1-MU-test'

Remove oldest alphas

After this bug comment was posted, removed 3.7a1 & 3.7a2 snippets:

# as cltbld on aus2-staging
cd /opt/aus2/snippets/staging/
rm -rf Firefox-5.0b1-build1-4.0b12-build1-MU{,-test}/Firefox/3.7a{1,2}

We didn't restore the previous test snippets for 3.7a1 and 3.7a2 initially, but this confused QA (bug 654572) so they were fished out of the 20110428-nightly-1.tar.bz2 backup.

Fix billboard link

Marketing are setting up

https://www.mozilla.com/en-US/firefox/5.0beta/details/

so the snippets need modifying

# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
rsync -a Firefox-5.0b1-build1-4.0b12-build1-MU-test{,-wrongurl}/
rsync -a Firefox-5.0b1-build1-4.0b12-build1-MU{,-wrongurl}/
find Firefox-5.0b1-build1-4.0b12-build1-MU{,-test} -type f -exec sed -i -e 's,^detailsUrl.*$,detailsUrl=https://www.mozilla.com/en-US/firefox/5.0beta/details/,' {} \;

Remove partial.txt for 4.0b12

All Firefox 4 releases (even 3.7a1) properly support not providing a partial update. Patcher gave us partials for 4.0b12 -> 5.0b1, but nothing else. For consistency remove the partials for 4.0b12:

# cltbld@aus2-staging
# staged snippets
cd /opt/aus2/snippets/staging
find Firefox-5.0b1-build1-4.0b12-build1-MU{,-test} -name 'partial.txt' -exec rm -v {} \;
# live snippets
cd /opt/aus2/incoming/3/Firefox
find 4.0b12/*/*/en-US/{beta,release}test/partial.txt -mtime -7 -exec rm {} \;
# repeat in PHX

Push snippets with url and partial fixes

~/bin/backupsnip Firefox-5.0b1-build1-4.0b12-build1-MU-test
~/bin/pushsnip Firefox-5.0b1-build1-4.0b12-build1-MU-test

Mac BuildID issues

bug 654306 is about the Universal builds for 3.7a5 through to 4.0b6 not being offered the update on mac, which is due to the way we handled the changes to the mac builds (adding 64bit). We're offering the 5.0b1 update to the 64bit build instead. Fix:

# cltbld@aus2-staging
cd /opt/aus2/snippets/staging/
for d in Firefox-5.0b1-build1-4.0b12-build1-MU{-test,}; do
  rsync -a ${d}{,-wrongMacBuildID}/
  mv -v $d/Firefox/3.7a5/Darwin_Universal-gcc3/{20100610053411,20100610053455}
  mv -v $d/Firefox/4.0b1/Darwin_Universal-gcc3/{20100630131936,20100630131607}
  mv -v $d/Firefox/4.0b2/Darwin_Universal-gcc3/{20100720180051,20100720175703}
  mv -v $d/Firefox/4.0b3/Darwin_Universal-gcc3/{20100805182338,20100805181943}
  mv -v $d/Firefox/4.0b4/Darwin_Universal-gcc3/{20100818121922,20100818121614}
  mv -v $d/Firefox/4.0b5/Darwin_x86-gcc3-u-ppc-i386/{20100831070403,20100831070010}
  mv -v $d/Firefox/4.0b6/Darwin_x86-gcc3-u-ppc-i386/{20100914073111,20100914072643}
done
~/bin/backupsnip Firefox-5.0b1-build1-4.0b12-build1-MU-test
~/bin/pushsnip   Firefox-5.0b1-build1-4.0b12-build1-MU-test

Major Update Verify

All green except mac, which had some trailing spaces in the update verify config. Fixed that and it was green too. (pm01, category=release-mozilla-2.0-)

Also green on Mac after fix to mac buildIDs.

Permissions and virus check

  • virus check - green
  • check_permissions - failed on $(find /pub/mozilla.org/firefox/nightly/5.0b1-candidates/build1/ -type f ! -perm 644 | wc -l)"']' returned non-zero exit status 1
  • catlee fixed permissions

Socorro product data updates

Someone else had already added Firefox 5.0, saving us the trouble of figuring out what settings to use in this brave new world.

Push to mirrors

# ffxbld@stage.mozilla.org
mkdir /pub/mozilla.org/firefox/releases/5.0b1/
# dry-run
rsync -avn --exclude=*tests* --exclude=*crashreporter* --exclude=*.log --exclude=*.txt \
--exclude=*unsigned* --exclude=*update-backup* --exclude=*partner-repacks* \
--exclude=*.checksums --exclude=logs \
/pub/mozilla.org/firefox/nightly/5.0b1-candidates/build1/ /pub/mozilla.org/firefox/releases/5.0b1/
# for real
rsync -av --exclude=*tests* --exclude=*crashreporter* --exclude=*.log --exclude=*.txt \ 
--exclude=*unsigned* --exclude=*update-backup* --exclude=*partner-repacks* \
--exclude=*.checksums --exclude=logs 
/pub/mozilla.org/firefox/nightly/5.0b1-candidates/build1/ /pub/mozilla.org/firefox/releases/5.0b1/

Push snippets to the beta channel

For people to be able to do aurora -> beta we needed to create snippets in a 5.0 dir to get them onto 5.0b1 so needed to copy an existing set of beta snippets and rename (also removed locales other than en-US). I copied the 4.0b7 snippets in /opt/aus2/incoming/3/ to make the 5.0 dir and then removed platforms that were no longer used as well as locales. Then made a copy of those snippets here:

/opt/aus2/snippets/staging/20110504-Firefox-5.0b1-beta/Firefox/5.0

For future betas, do that in reverse order - first do the copying and altering in staging, then pushsnip over to incoming.

We also had to remove the
updateType=major
line of these snippets, so that the billboard wasn't shown on switching to beta.

Push MU snippets to beta channel

First, we had to make sure that we are throttling 50% of requests, patch was landed and deployed.

Then pushed the snippets

# cltbld@aus2-staging - in a screen session
time ~/bin/backupsnip Firefox-5.0b1-build1-4.0b12-build1-MU
time ~/bin/pushsnip   Firefox-5.0b1-build1-4.0b12-build1-MU

Once we were confident there was no spike in crashes we unthrottled the update with this patch, and deployed. (2011-05-09).

Release

No snippets (outside of MU) to push, no bouncer uptake to monitor. Rsyncing to releases dir and pushing the MU snippets was all that was done to "release" this. Throttling will be monitored over the next couple of days and then disabled when sufficient uptake is achieved.