Releases/Firefox 3.5/BuildNotes: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 82: Line 82:
Everything the same as [https://bug459878.bugzilla.mozilla.org/attachment.cgi?id=383900 the latest test run] with one addition:
Everything the same as [https://bug459878.bugzilla.mozilla.org/attachment.cgi?id=383900 the latest test run] with one addition:
* mn removed amazondotcom.xml, answers.xml, eBay.xml and yahoo.xml {{bug|477989}}
* mn removed amazondotcom.xml, answers.xml, eBay.xml and yahoo.xml {{bug|477989}}
=== Use empty snippets for mn and tr snippets ===
{{bug|500642}} was filed after the MU update generation was done. We can't just regenerate the snippets because test snippets were already pushed, so we'll modify the MU snippets to serve nulls to these locales:
# cltbld @ aus2-staging
cd ~/
# test snippets
rsync -av /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU-test/ 20090625-Firefox-3.0.11-3.5rc3build2-MU-test/
cd 20090625-Firefox-3.0.11-3.5rc3build2-MU-test
for i in `find . -name mn -or -name tr`; do for file in `find $i -type f`; do rm $file && touch $file; done; done
# verification - should have no output
cd ..
diff --brief -Nar /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU-test/  20090625-Firefox-3.0.11-3.5rc3build2-MU-test/ | grep -v '/\(tr\|mn\)/'
# push them back to snippets/staging
rsync -av 20090625-Firefox-3.0.11-3.5rc3build2-MU-test/ /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU-test-no-mn-or-tr/
# real snippets
cd ~/
rsync -av /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU/ 20090625-Firefox-3.0.11-3.5rc3build2-MU/
cd 20090625-Firefox-3.0.11-3.5rc3build2-MU
for i in `find . -name mn -or -name tr`; do for file in `find $i -type f`; do rm $file && touch $file; done; done
# verification - should have no output
cd ..
diff --brief -Nar /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU/  20090625-Firefox-3.0.11-3.5rc3build2-MU/ | grep -v '/\(tr\|mn\)/'
# push them back to snippets/staging
rsync -av 20090625-Firefox-3.0.11-3.5rc3build2-MU/ /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU-no-mn-or-tr/
=== Re-verify that releasetest = beta = release ===
cd /opt/aus2/snippets/staging
# releasetest == beta
find 20090625-Firefox-3.0.11-3.5rc3build2-MU-test-no-mn-or-tr -type d -iregex '.*/releasetest$' | perl -nle '$a = $_; $a =~ s/releasetest/beta/; $a =~ s/20090625-Firefox-3.0.11-3.5rc3build2-MU-test-no-mn-or-tr/20090625-Firefox-3\.0\.11-3\.5rc3build2-MU-no-mn-or-tr/; system("diff -r -u $_ $a");'
find 20090625-Firefox-3.0.11-3.5rc3build2-MU-no-mn-or-tr -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/releasetest/; $a =~ s/20090625-Firefox-3\.0\.11-3\.5rc3build2-MU-no-mn-or-tr/20090625-Firefox-3.0.11-3.5rc3build2-MU-test-no-mn-or-tr/; system("diff -r -u $_ $a");'
# beta == release
find 20090625-Firefox-3.0.11-3.5rc3build2-MU-no-mn-or-tr -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta/release/; system("diff -r -u $_ $a");'
find 20090625-Firefox-3.0.11-3.5rc3build2-MU-no-mn-or-tr -type d -iregex '.*/release$' | perl -nle '$a = $_; $a =~ s/release$/beta/; system("diff -r -u $_ $a");'


== Stage and Rename files ==
== Stage and Rename files ==

Revision as of 14:42, 26 June 2009

Until we're about to ship this page will serve as a spot to put down a rough checklist of what needs to be done to ship.

Release Engineers

bhearsum,nthomas

Tracking Bug

bug 500442

Notes

Generate major update

Updated the patcher and update verify configs.

# ssh cltbld@prometheus-vm.build.mozilla.org
mkdir -p /builds/3.0.11-3.5rc3build2-major-update-test/snippets
cd /builds/3.0.11-3.5rc3build2-major-update-test/snippets

cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -d patcher-configs mozilla/tools/patcher-configs
cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R8 -d patcher mozilla/tools/patcher
cd patcher
cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R8 -d MozBuild mozilla/tools/release/MozBuild

export CVSROOT=:ext:ffxbld@cvs.mozilla.org:/cvsroot
# build tools
./patcher2.pl --build-tools --app=firefox --tools-rev=UPDATE_PACKAGING_R8 --config=../patcher-configs/moz19-branch-major-update-patcher2.cfg 2>&1 | tee ../firefox_build-tools.log

# download mars
./patcher2.pl --download --app=firefox --config=../patcher-configs/moz19-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.5rc3 3.0.11-3.5rc3
cd ../..

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

Separate out beta snippets

Skipped over this because beta and release will be pushed together, done like this.

Quick verify

Check that releasetest = beta = release.

cd temp/firefox/3.0.11-3.5rc3
# releasetest == beta
find aus2.test -type d -iregex '.*/releasetest$' | perl -nle '$a = $_; $a =~ s/releasetest/beta/; $a =~ s/aus2\.test/aus2/; system("diff -r -u $_ $a");'
find aus2 -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/releasetest/; $a =~ s/aus2/aus2.test/; system("diff -r -u $_ $a");'
# beta == release
find aus2 -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta/release/; system("diff -r -u $_ $a");'
find aus2 -type d -iregex '.*/release$' | perl -nle '$a = $_; $a =~ s/release$/beta/; system("diff -r -u $_ $a");'

Push to AUS

cd /builds/3.0.11-3.5rc3build2-major-update-test/snippets/patcher/temp/firefox/3.0.11-3.5rc3
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU-test
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU

Enable test snippets

# cltbld@aus2-staging
~/bin/backupsnip 20090625-Firefox-3.0.11-3.5rc3build2-MU-test
~/bin/pushsnip   20090625-Firefox-3.0.11-3.5rc3build2-MU-test

Update verify

Ran update verify on fx-{linux,mac,win32}-1.9-slave2 as follows:

mkdir -p /builds/verify/firefox-3011-35rc3build2-major-test/
cd /builds/verify/firefox-3011-35rc3build2-major-test/
hg clone http://hg.mozilla.org/build/tools

# get patch to trawl "Only in" directories
cd tools/release/common
# on mac & linux
curl -sL https://bugzilla.mozilla.org/attachment.cgi?id=367544 | patch -p3
# on win32
wget --no-check-certificate -O patch https://bugzilla.mozilla.org/attachment.cgi?id=367544
patch -p3 < patch

# everyone ...
cd ../updates
platform=linux   # or mac or win32
./verify.sh -c moz19-firefox-$platform-major.cfg 2>&1 | tee $platform.log

Results Everything the same as the latest test run with one addition:

  • mn removed amazondotcom.xml, answers.xml, eBay.xml and yahoo.xml bug 477989


Use empty snippets for mn and tr snippets

bug 500642 was filed after the MU update generation was done. We can't just regenerate the snippets because test snippets were already pushed, so we'll modify the MU snippets to serve nulls to these locales:

# cltbld @ aus2-staging
cd ~/
# test snippets
rsync -av /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU-test/ 20090625-Firefox-3.0.11-3.5rc3build2-MU-test/
cd 20090625-Firefox-3.0.11-3.5rc3build2-MU-test
for i in `find . -name mn -or -name tr`; do for file in `find $i -type f`; do rm $file && touch $file; done; done
# verification - should have no output
cd ..
diff --brief -Nar /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU-test/  20090625-Firefox-3.0.11-3.5rc3build2-MU-test/ | grep -v '/\(tr\|mn\)/'
# push them back to snippets/staging
rsync -av 20090625-Firefox-3.0.11-3.5rc3build2-MU-test/ /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU-test-no-mn-or-tr/
# real snippets
cd ~/
rsync -av /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU/ 20090625-Firefox-3.0.11-3.5rc3build2-MU/
cd 20090625-Firefox-3.0.11-3.5rc3build2-MU
for i in `find . -name mn -or -name tr`; do for file in `find $i -type f`; do rm $file && touch $file; done; done
# verification - should have no output
cd ..
diff --brief -Nar /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU/  20090625-Firefox-3.0.11-3.5rc3build2-MU/ | grep -v '/\(tr\|mn\)/'
# push them back to snippets/staging
rsync -av 20090625-Firefox-3.0.11-3.5rc3build2-MU/ /opt/aus2/snippets/staging/20090625-Firefox-3.0.11-3.5rc3build2-MU-no-mn-or-tr/

Re-verify that releasetest = beta = release

cd /opt/aus2/snippets/staging
# releasetest == beta
find 20090625-Firefox-3.0.11-3.5rc3build2-MU-test-no-mn-or-tr -type d -iregex '.*/releasetest$' | perl -nle '$a = $_; $a =~ s/releasetest/beta/; $a =~ s/20090625-Firefox-3.0.11-3.5rc3build2-MU-test-no-mn-or-tr/20090625-Firefox-3\.0\.11-3\.5rc3build2-MU-no-mn-or-tr/; system("diff -r -u $_ $a");'
find 20090625-Firefox-3.0.11-3.5rc3build2-MU-no-mn-or-tr -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/releasetest/; $a =~ s/20090625-Firefox-3\.0\.11-3\.5rc3build2-MU-no-mn-or-tr/20090625-Firefox-3.0.11-3.5rc3build2-MU-test-no-mn-or-tr/; system("diff -r -u $_ $a");'
# beta == release
find 20090625-Firefox-3.0.11-3.5rc3build2-MU-no-mn-or-tr -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta/release/; system("diff -r -u $_ $a");'
find 20090625-Firefox-3.0.11-3.5rc3build2-MU-no-mn-or-tr -type d -iregex '.*/release$' | perl -nle '$a = $_; $a =~ s/release$/beta/; system("diff -r -u $_ $a");'

Stage and Rename files

NOT DONE YET We'll have to do something similar to Firefox 3.0 with at least the following caveats:

  • Don't trim out contrib builds if they exist
  • Work needs to be done as ffxbld

Add index files

NOT DONE YET Same as Firefox 3.0. Should try to retrieve the index.html from Firefox 3.0 and run it by beltzner.

Bouncer Setup

NOT DONE YET

Push to Mirrors

NOT DONE YET Again, like Firefox 3.0 we need to push to mirrors in two stage. First pushing '3.5/index.html' and give that lot's of time to get picked up. Then, pushing the actual files. You can update the 'latest-3.5' symlink at this point, too

Update rsync modules

NOT DONE YET

Tag and Source package regeneration

NOT DONE YET Because we have so many l10n repositories to deal with it will be best to do this with the automation. We'll need to patch both release_config.py. The following variable changes should make it happen: To release_config.py:

sourceRepoRevision = 'FIREFOX_3_5rc3_RELEASE'
relbranchOverride = 'GECKO191_20090623_RELBRANCH'
version = '3.5'
buildNumber = 2
baseTag = 'FIREFOX_3_5'

We need to replace all of the revisions in l10n-changesets, too:

# from vim (because macosx sed sucks)
:%s/\s\+.*/    FIREFOX_3_5rc3_RELEASE/g

As well as this patch to factory.py:

diff -r 0bff92bdd6fc process/factory.py
--- a/process/factory.py	Tue Jun 23 17:21:47 2009 +0200
+++ b/process/factory.py	Thu Jun 25 09:50:05 2009 -0400
@@ -1760,7 +1760,7 @@ class ReleaseTaggingFactory(ReleaseFacto
                  workdir=repoName,
                  haltOnFailure=True
                 )
-            for tag in (buildTag, releaseTag):
+            for tag in [releaseTag]:
                 self.addStep(ShellCommand,
                  name='hg_tag',
                  command=['hg', 'tag', '-u', hgUsername, '-f', '-r',


We have to call it build2 due to the way relbranchoverride works (FIXME). You don't need to touch the old* vars since Tag and Source don't use them, but you can if you want. The Source packages will be pushed to 3.5-candidates/build2. It would be good to move that dir to ~cltbld or ~ffxbld rather quickly.

You'll need to do any sort of staging that needs to happen and eventually rsync it out to /pub/mozilla.org/firefox/releases/3.5/.

Remove index.html files

NOT DONE YET Once the website goes live then we can remove the index.html bandaid:

cd /pub/mozilla.org/firefox/releases/3.5/
find . -name index.html | less
find . -name index.html | xargs rm -v

Push Major Update

NOT DONE YET

Symlink update

NOT DONE YET Update the 'latest' symlink.

cd /pub/mozilla.org/firefox/releases
rm latest && ln -s latest-3.5 latest