Releases/Firefox 9.0/BuildNotes

From MozillaWiki
Jump to navigation Jump to search

Notes About Releasing

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

Bugs hit

Enter any bugs pre-existing or newly discovered and filed during the release:

  • bug 705403 - Sendchanges [on windows] from build steps are being done from old buildbot version
  • bug 711581 - Can't push to hg.mozilla.org/build/tools repo
  • bug 711796 - release sanity should use different l10n dashboard URL for final releases
  • bug 705297 - New Android Market Developer Distribution Agreement
  • bug 712068 - Addjust default releasetestUptake value

Build Engineers

rail - Tracking bug: bug 701054

Signed-off Revision(s)

Build 1: 79d24e644fdd

L10N changesets

Instructions on how to get them

Tags

Build # Branch, Tags Changeset
1 MOBILE90_2011121612_RELBRANCH, FENNEC_9_0_RELEASE, FENNEC_9_0_BUILD1 55a89a2780e9
GECKO90_2011121613_RELBRANCH, FIREFOX_9_0_BUILD1 FIREFOX_9_0_RELEASE a633a888157b

Build data

Firefox

Build # Type Build ID Build machine Time to build
1 Linux 20111216140209 mv-moz2-linux-ix-slave11 2 hrs, 14 mins, 20 secs
Linux64 moz2-linux64-slave05 4 hrs, 26 mins, 51 secs
Mac moz2-darwin10-slave07 5 hrs, 7 mins, 12 secs
Windows mw32-ix-slave10 3 hrs, 12 mins, 32 secs

Fennec

Build # Type Build ID Build machine Time to build
1 android 20111216135618 mv-moz2-linux-ix-slave16 1 hrs, 44 mins, 32 secs
linux mv-moz2-linux-ix-slave19 1 hrs, 2 mins, 57 secs
macosx bm-xserve09 2 hrs, 16 mins, 22 secs
win32 mw32-ix-slave04 1 hrs, 30 mins, 36 secs

Notes

Build 1

Syncing repos

  • reserved linux64-ix-slave15 for this task
  • mozilla-beta -> mozilla-release was done by Christian Legnitto (as well as updating browser/locales/shipped_locales to eliminate non-release locales that were in beta releases mn,sw,csb)
  • Did l10n repo sync on reserved linux64-ix-slave15 as per instructions
  • It took 27m13.876s

Diff mozconfigs

Preparing to start Automation

  • Set clobbers for the appropriate masters.
  • Reserve slaves
echo "10" > reserved_slaves_bm07-build1
  • Had to land new android mozconfigs (default and production) ahead of time to get a green build on mozilla-release
  • Update l10n changesets for desktop, mobile
  • Land automation configs (are you or buildduty going to reconfig? great, merge. otherwise double-land only your configs)
  • Tag buildbot-configs, buildbotcustom, & tools with build & release tags
  • update and reconfigure the master
  • start automation
source ../bin/activate
PYTHONPATH=. ../bin/python ../tools/buildbot-helpers/release_sanity.py -u rail \
 -V 9.0 --branch mozilla-release --build-number 1 -c release-firefox-mozilla-release.py \
 -c release-fennec-mozilla-release.py --dryrun --products firefox,fennec localhost:9001
  • it failed trying to fetch l10n dashboard (9.0 vs 9). bug 711796
  • Start automation:
PYTHONPATH=. ../bin/python ../tools/buildbot-helpers/release_sanity.py -u rail \
 -V 9.0 --branch mozilla-release --build-number 1 -c release-firefox-mozilla-release.py \
 -c release-fennec-mozilla-release.py -b --products firefox,fennec localhost:9001

E-mail Metrics

And for 9.0 final it's

Firefox,firefox,firefox,9.0,9.0
Fennec,firefox-mobile,fennec,9.0,9.0

E-mail mirrors@mozilla.org

Not necessary for rapid release betas, files only go as far as the 'internal mirrors'.

They want to know approximately what time push to external mirrors will occur. Ideally this is a 24hr notice to them, with the estimated time.

Subject: Firefox 9.0 and 3.6.25 coming to mirrors Dec 19
Body:
Hi,

We're planning on pushing our Firefox 9.0 and 3.6.25 releases to mirrors sometime next Monday, December 19.

If you believe these releases or these dates will cause any problems, please notify release at mozilla.com.

If you have any problems with mirror status/weights/etc, please notify mirror-submissions at mozilla.org.

Tag

No problems.

Bouncer Submitter

No problems.

Source

No problems.

Start autosign

NOTE: use new signcode keys from d:/2011-keys

# created in ~/tmp/sign_9.0.sh
PRODUCT=firefox
VERSION=9.0
BUILD=1
TAG=FIREFOX_9_0_RELEASE
REPO='releases/mozilla-release'
EMAIL=release@mozilla.com
KEYDIR=d:/2011-keys
RELCONFIG=mozilla/release-firefox-mozilla-release.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}

Instructions are in CombinedSigning

Build

Firefox

No problems

Firefox repacks

No problems

Fennec

Android

No problems

Desktop Builds

No problems

Mobile Desktop repacks

(aki): win32-mobile repacks died on a unicode env var. Catlee noted this is because json loads a unicode string; simplejson loads a string.

I backed out http://hg.mozilla.org/build/buildbot-configs/rev/1d21e762cca7; if we re-tag and rerun the repacks, it should work.

(rail): I retagged buildotcustom and buildbot-configs, updated and recofigured the master, and retriggered the repacks.

Unittests / Talos

  1. Look to see that they ran
  2. Document any oranges (per platform) for unittests - if possible, try to confirm it's known/random
  3. Make sure there's no red/failures that we need to have a dev look at

XULRunner

Source

No problems

Build

No problems

Signing

NOTE: use new signcode keys from d:/2011-keys

Used this script

Partner Repack

Firefox

No problems

Fennec

N/A

Firefox Signing

No problems

Android Signing

Instructions in MobileSigning

NOTE: It can be started in a different Windows without having to wait for Firefox signing to finish.

Used this script

Android Signature Verification

No problems

L10N verify

No problems

Updates

No problems

Update verify

No problems

8.0-9.0 partial updates

Since 8.0.1 release was mac only I generated 8.0-9.0 parrtial updates:

# cltbld@mv-moz2-linux-ix-slave17 (the slave which ran the updates builder)
cd /builds/slave/rel-m-rel-updates/build
# Download the custom patcher config
wget -O patcher-configs/mozRelease-branch-patcher2-8.0.cfg https://bugzilla.mozilla.org/attachment.cgi?id=581369

# The file edited, changed <9.0> section: build id set to 20111216140209, locales copied from 8.0

# Download 8.0 complete MARs
perl patcher2.pl --download --app=firefox --brand=Firefox --config=patcher-configs/mozRelease-branch-patcher2-8.0.cfg

# Generate 8.0->9.0 partial mars and snippets
perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg --app=firefox --brand=Firefox --config=patcher-configs/mozRelease-branch-patcher2-8.0.cfg

# Fix permissions
find temp/firefox/8.0-9.0/ftp/firefox/nightly/9.0-candidates/build1 -type f -exec chmod 644 '{}' ';'
find temp/firefox/8.0-9.0/ftp/firefox/nightly/9.0-candidates/build1 -type d -exec chmod 755 '{}' ';'

# Upload 8.0-9.0 complete MARs
rsync -av -e 'ssh -oIdentityFile=~/.ssh/ffxbld_dsa' '--exclude=*complete.mar' temp/firefox/8.0-9.0/ftp/firefox/nightly/9.0-candidates/build1/update ffxbld@stage-old.mozilla.org:/pub/mozilla.org/firefox/nightly/9.0-candidates/build1/

# rsync 8.0-9.0 *partial* snippets  to aus2-staging (excluding complete.txt snippets)
rsync -av --exclude=complete.txt -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' temp/firefox/8.0-9.0/aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-9.0-8.0-build1-test
rsync -av --exclude=complete.txt -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' temp/firefox/8.0-9.0/aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-9.0-8.0-build1

Merge new snippets with old ones on aus2-staging:

# cltbld@aus2-staging
cd /opt/aus2/snippets/staging/
# backup the original snippets
rsync -av Firefox-9.0-build1/ Firefox-9.0-build1.orig/
# merge 8.0 partial snippets into the automatically generated ones
rsync -av Firefox-9.0-8.0-build1/ Firefox-9.0-build1/

# backupsnip and pushsnip 8.0 partial snippets for test channels
~/bin/backupsnip Firefox-9.0-8.0-build1-test
~/bin/pushsnip Firefox-9.0-8.0-build1-test
  • Sent an email to r-d about availability of 8.0-9.0 updates.
  • Added Firefox-9.0-Partial-8.0 product to Bouncer with the similar to Firefox-9.0-Partial-8.0.1 locations (not for contrib platforms)
Update verify for 8.0 partial updates
  • Landed a patch which forces update verify to use partial updates for 8.0
  • tagged tools with FIREFOX_9_0_BUILD1_RUNTIME and FIREFOX_9_0_RELEASE_RUNTIME
  • TODO: revert the patch and move FIREFOX_9_0_BUILD1_RUNTIME and FIREFOX_9_0_RELEASE_RUNTIME tags back to 04322bcb13b5 after final verification.
# On my local machine, to kick off update verify
for p in linux linux64 macosx64 win32; do
  for i in 1 2 3 4 5 6 7 8 9 10; do
    curl "http://buildbot-master07.build.sjc1.mozilla.com:8001/builders/release-mozilla-release-${p}_update_verify_${i}%2F10/force" >/dev/null
    sleep 5
  done
done

Generate Windows only snippets

  • per email in the r-d ML we're going to push snippets for Windows only:
# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
rsync -av --exclude='**/Linux**' --exclude='**/Darwin**'  Firefox-9.0-build1/ Firefox-9.0-build1-win32/

Major Update

N/A

Update verify

N/A

Socorro Product Data Updates

N/A

Reset reserved slaves

echo "0" > reserved_slaves_bm07-build1

Run backupsnip

~/bin/backupsnip Firefox-9.0-build1

Check permissions / AV scan

No problems

Push files to internal mirrors

Mirrors Policy

  • updated stage:/pub/mozilla.org/zz/rsyncd-mozilla-releases.exclude in advance to add
- firefox/releases/9.0
  • Forced the "push to mirrors" builder.

Final verification

Forced once uptake reached 3. Filed bug 712068 to do this automatically.

Push to beta

N/A

Push index file to mirrors

Added the following lines to the top of stage:/pub/mozilla.org/zz/rsyncd-mozilla-releases.exclude:

+ firefox
+ firefox/releases
+ firefox/releases/9.0
+ firefox/releases/9.0/*/
+ firefox/releases/9.0/*/*/
+ firefox/releases/9.0/*/*/*/
+ firefox/releases/9.0/**index.html
- firefox/releases/9.0/**

Removed the previously added "- firefox/releases/9.0" line. After that, ran the following to lay out the index files:

# ffxbld@stage
cd /pub/mozilla.org/firefox/releases/9.0
wget --no-check-certificate -O index.html https://bugzilla.mozilla.org/attachment.cgi?id=540139
sed -i -e 's/5/9/g' index.html 
for dir in `find . -type d -mindepth 1`; do cp -pv index.html $dir/; done

Push to external mirrors

Removed the following lines from the top of stage:/pub/mozilla.org/zz/rsyncd-mozilla-releases.exclude:

+ firefox
+ firefox/releases
+ firefox/releases/9.0
+ firefox/releases/9.0/*/
+ firefox/releases/9.0/*/*/
+ firefox/releases/9.0/*/*/*/
+ firefox/releases/9.0/**index.html
- firefox/releases/9.0/**
  • Updated stage:/pub/mozilla.org/zz/rsyncd-mozilla-current.exclude to 9.0
  • 2min after these changes were made, LegNeato asked for things to hold if we hadn't done it already, so I quickly reverted the changes. Mirror uptake showed that some additional locations had the files anyways, so it might be too late. (bhearsum)
  • Set rating of CDN to 45k and enabled it
  • once uptake hit 100K (it was before the release) I disabled CDN and set its rating to 1

Publish Fennec to the Android Market

Push the files

Android Market

IMPORTANT - Make sure to follow instructions!

  • download multi apk (e.g. multi/fennec-9.0.multi.android-arm.apk)
  • visit https://market.android.com/publish
  • choose "Firefox Beta" or "Firefox"
  • select the "APK Files" tab and choose "Upload APK"
    • choose the multi apk that you downloaded and hit "upload"
      • NOTE: the progress bar does not seem to show progress (at least on Google Chrome)
    • when it finishes uploading, verify VersionCode is build date
    • hit "Save"
  • activate new apk (You should see an Error message since both apk's are active)
  • deactivate old apk (You should not see the Error message anymore)
  • hit "Save"
  • If this is a beta 1, go to "Product Details" tab -> Recent Changes, change the url to http://www.mozilla.com/en-US/mobile/{VERSION}/releasenotes/
    • and hit "Save"

Push XULRunner to Mirrors

ssh -i ~/.ssh/xrbld_dsa xrbld@stage
rsync -avn --exclude=*.txt --exclude=*unsigned* --exclude=*-symbols.zip --exclude=*.checksums \
 --exclude 'jsshell-*' \
 /pub/mozilla.org/xulrunner/nightly/9.0-candidates/build1/ /pub/mozilla.org/xulrunner/releases/9.0/
rsync -av --exclude=*.txt --exclude=*unsigned* --exclude=*-symbols.zip --exclude=*.checksums \
 --exclude 'jsshell-*' \
 /pub/mozilla.org/xulrunner/nightly/9.0-candidates/build1/ /pub/mozilla.org/xulrunner/releases/9.0/

Update XULRunner wiki page

Updated Gecko SDK wiki page

Push to Release Channel

~/bin/pushsnip Firefox-9.0-build1-win32

Update symlinks

Once we're signed off on the release channel.

# ffxbld@stage
cd /pub/mozilla.org/firefox/releases
ln -s 9.0 latest-9.0
rm latest-8.0
rm latest
ln -s latest-9.0 latest

Remove index.html files

cd /pub/mozilla.org/firefox/releases/9.0
find . -name index.html -exec echo rm -v {} \;
find . -name index.html -exec rm -v {} \;

Update browser choice website