Releases/Firefox 33.0/BuildNotes

From MozillaWiki
Jump to: navigation, search

nthomas - bug 1056837

Beforehand:

Firefox Build 1 / RC1

  • uploading bits to apple done
  • a couple of lost connections in linux update verify

Updates for beta

  • partial form 33.0b9 generated at build time
  • bug 1021026 gets us a long way (no bouncer config or snippet generation). The Balrog blog is almost right, need to add this
{
    "ftpFilenames": {
        "partials": {
          "Firefox-33.0b9-build1": "firefox-33.0b9-33.0.partial.mar"
        }
    }
}
python scripts/updates/balrog-tweaker.py --json json -b 'Firefox-33.0-build1' --api-root 'https://aus4-admin.mozilla.org'  --credentials-file cred -u 'nthomas@mozilla.com' -v

Update verify

On my laptop ...

cd <parent_of_tools_checkout, updated to tip>
export PERL5LIB="tools/lib/perl:$HOME/perl5/lib/perl5"  # need Config::General v2.44
wget http://hg.mozilla.org/releases/mozilla-release/raw-file/FIREFOX_33_0_RELEASE/browser/locales/shipped-locales
perl tools/release/patcher-config-bump.pl -p firefox -r Firefox -v 33.0 -a 33.0 -o 33.0b9 -b 1 \
  -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg -t stage.mozilla.org -f ftp.mozilla.org \
  -d download.mozilla.org -l shipped-locales --partial-version 33.0b9 --platform linux --platform linux64 \
  --platform macosx64 --platform win32

Skip all the modification we did last time, since we're not generating snippets here.

# generate update verify configs
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform linux64 --output tools/release/updates/mozBeta-firefox-linux64.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel beta-cdntest -t FIREFOX_33_0_RELEASE
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform linux --output tools/release/updates/mozBeta-firefox-linux.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel beta-cdntest -t FIREFOX_33_0_RELEASE
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform macosx64 --output tools/release/updates/mozBeta-firefox-mac64.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel beta-cdntest -t FIREFOX_33_0_RELEASE
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform win32 --output tools/release/updates/mozBeta-firefox-win32.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel beta-cdntest -t FIREFOX_33_0_RELEASE

hg -R tools/ diff tools/release/updates > patch

Attached to bug 1056837 as attachment 8501462.

Run the tests:

# linux32 setup; others don't need anything
sh -c 'rm -f /builds/mock_mozilla/mozilla-centos6-x86_64/buildroot.lock; mock_mozilla -r mozilla-centos6-x86_64 --orphanskill'
mock_mozilla -r mozilla-centos6-x86_64 --init
mock_mozilla -r mozilla-centos6-x86_64 --install autoconf213 python zip mozilla-python27-mercurial git ccache glibc-static.i686 libstdc++-static.i686 perl-Test-Simple perl-Config-General gtk2-devel.i686 libnotify-devel.i686 yasm alsa-lib-devel.i686 libcurl-devel.i686 wireless-tools-devel.i686 libX11-devel.i686 libXt-devel.i686 mesa-libGL-devel.i686 gnome-vfs2-devel.i686 GConf2-devel.i686 wget mpfr xorg-x11-font* imake gcc45_0moz3 gcc454_0moz1 gcc472_0moz1 gcc473_0moz1 yasm ccache valgrind pulseaudio-libs-devel.i686 gstreamer-devel.i686 gstreamer-plugins-base-devel.i686 glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 ORBit2-devel.i686 atk-devel.i686 cairo-devel.i686 check-devel.i686 dbus-devel.i686 dbus-glib-devel.i686 fontconfig-devel.i686 glib2-devel.i686 hal-devel.i686 libICE-devel.i686 libIDL-devel.i686 libSM-devel.i686 libXau-devel.i686 libXcomposite-devel.i686 libXcursor-devel.i686 libXdamage-devel.i686 libXdmcp-devel.i686 libXext-devel.i686 libXfixes-devel.i686 libXft-devel.i686 libXi-devel.i686 libXinerama-devel.i686 libXrandr-devel.i686 libXrender-devel.i686 libXxf86vm-devel.i686 libdrm-devel.i686 libidn-devel.i686 libpng-devel.i686 libxcb-devel.i686 libxml2-devel.i686 pango-devel.i686 perl-devel.i686 pixman-devel.i686 zlib-devel.i686 freetype-2.3.11-6.el6_1.8.i686 freetype-devel-2.3.11-6.el6_1.8.i686 freetype-2.3.11-6.el6_1.8.x86_64
mock_mozilla -r mozilla-centos6-x86_64 --cwd /builds/slave --unpriv --shell 'PATH="/tools/buildbot/bin:/usr/local/bin:/usr/lib/ccache:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:/tools/python27-mercurial/bin:/home/cltbld/bin" bash'
# end linux32 setup

mkdir bug1056837 ; cd $_
hg clone http://hg.mozilla.org/build/tools
cd tools
wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8501462 | patch -p1 
cd release/updates

On b-linux64-hp-0028 see screen 0 for linux32 & screen 1 for linux64; screen on bld-lion-r5-061; vnc on b-2008-ix-0084 Adjust to right config for each platform (linux64 vs linux vs mac64 vs win32)

./verify.sh -c mozBeta-firefox-linux64.cfg 2>&1 | tee log

Results - a harmless comment, expected difference in channel and ACCEPTED_MAR_CHANNEL_IDS

diff -r source/bin/defaults/pref/channel-prefs.js target/bin/defaults/pref/channel-prefs.js
1c1
< //@line 2 "c:\builds\moz2_slave\rel-m-beta-w32_bld-00000000000\build\browser\app\profile\channel-prefs.js"
---
> //@line 2 "c:\builds\moz2_slave\rel-m-rel-w32_bld-000000000000\build\browser\app\profile\channel-prefs.js"
6c6
< pref("app.update.channel", "beta");
---
> pref("app.update.channel", "release");
diff -r source/bin/update-settings.ini target/bin/update-settings.ini
5c5
< ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-beta,firefox-mozilla-release
---
> ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-release
WARN: non-binary files found in diff
WARN: check_updates returned warning for WINNT_x86-msvc downloads/Firefox Setup 33.0b9.exe vs. downloads/Firefox Setup 33.0.exe: 2

Pushing to beta

Once QA signs off, we should push to beta by adjusting a rule in Balrog instead of running pushsnip. Steps:

  1. load the rules page
  2. put 'Firefox-33.0b9-build1' in the search box. This should match only one rule, for channel=beta & product=Firefox
  3. change the 'Mapping' to 'Firefox-33.0-build1', and click update

Quick verification

  1. wait 1 minute for caching to expire
  2. load https://aus4.mozilla.org/update/3/Firefox/33.0/20141002185629/Darwin_x86_64-gcc3-u-i386-x86_64/ach/beta/default/default/default/update.xml and verify that 33.0 is being offered (that's 33.0b9, so nothing offered before the rule is changed)

Modify whatsnew pages for release updates

bug 1057460 asks for whatsnew pages for versions < 29.0, but not for higher, to show the Australis tour to those just updating to an Australis build. The patcher config has whatsnew turned on for all versions, so we need to post-process the snippets for >= 29.0.

# ffxbld@aus3-staging
cd /opt/aus2/snippets

# fix up the test snippets
mkdir -p staging/Firefox-33.0-build1-test-fixed-whatsnew/Firefox
rsync -a pushed/Firefox-33.0-build1-test/Firefox/{29.0*,30.0*,31.0*,32.0*} staging/Firefox-33.0-build1-test-fixed-whatsnew/Firefox/
find staging/Firefox-33.0-build1-test-fixed-whatsnew -type f -exec sed -i -e '/^openURL/d' -e 's,^actions=showURL,actions=silent,' {} \;
diff -ru pushed/Firefox-33.0-build1-test/ staging/Firefox-33.0-build1-test-fixed-whatsnew | less

~/bin/pushsnip Firefox-33.0-build1-test-fixed-whatsnew

# fix up the release snippets
mkdir -p staging/Firefox-33.0-build1.bak/Firefox
rsync -a staging/Firefox-33.0-build1/Firefox/{29.0*,30.0*,31.0*,32.0*} staging/Firefox-33.0-build1.bak/Firefox/
find staging/Firefox-33.0-build1/Firefox/{29.0*,30.0*,31.0*,32.0*} -type f -exec sed -i -e '/^openURL/d' -e 's,^actions=showURL,actions=silent,' {} \;
diff -ru staging/Firefox-33.0-build1.bak staging/Firefox-33.0-build1 | less
rm -rf staging/Firefox-33.0-build1.bak

Undo accidental push

bhearsum accidentally pushed the release channel snippets live around 2:30pm eastern on October 8th. QE caught this shortly afterwards, and he fixed it up with the following:

cd /opt/aus2/incoming/3
# This chmod is what I did, but I should've chmod /opt/aus2/incoming/3 instead
# Chmoding Firefox means the first "pushsnip" resets the permissions, which makes updates live again before all of the fixed snippets are in place.
chmod 000 Firefox
# Delete all of the 32.0.3 snippets, which point at 33.0
rm -rf Firefox/32.0.3
# Delete the single arch Darwin snippets, which won't be overwritten below, because this is the first time we generated them
find . -maxdepth 2 -mindepth 2 -name Darwin_x86_64-gcc3 -exec rm -rf {} \;
find . -maxdepth 2 -mindepth 2 -name Darwin_x86-gcc3 -exec rm -rf {} \;
cd /opt/aus2/snippets/pushed
mv Firefox-32.0.3-build1 /opt/aus2/snippets/staging/Firefox-32.0.3-build1-again
mv Firefox-33.0-build1{,-test,-test-fixed-whatsnew} /opt/aus2/snippets/staging
cd /opt/aus2/snippets/staging
mv Firefox-33.0-build1{,-again}
mv Firefox-33.0-build1-test{,-again}
mv Firefox-33.0-build1-test-fixed-whatsnew{,-again}
# Repush the 32.0.3 snippets, to point 32.0.2 and earlier at 32.0.3 again
~/bin/pushsnip Firefox-32.0.3-build1-again
# Repush the 33.0 test snippets, to point betatest/releasetest at 33.0 again
~/bin/pushsnip Firefox-33.0-build1-test-again
~/bin/pushsnip Firefox-33.0-build1-test-fixed-whatsnew-again

Fennec Build 1

No issues.

Firefox Build 2 / RC2

  • build normal
  • uploading to apple done
  • not shipping to beta channel, no extra work to do around that

Modify whatsnew pages for release updates

Rerun of build1, with s/build1/build2 and fix to include build1 -> build2 snippets

# ffxbld@aus3-staging
cd /opt/aus2/snippets

# fix up the test snippets
mkdir -p staging/Firefox-33.0-build2-test-fixed-whatsnew/Firefox
rsync -a pushed/Firefox-33.0-build2-test/Firefox/{29.0*,3*} staging/Firefox-33.0-build2-test-fixed-whatsnew/Firefox/
find staging/Firefox-33.0-build2-test-fixed-whatsnew -type f -exec sed -i -e '/^openURL/d' -e 's,^actions=showURL,actions=silent,' {} \;
diff -ru pushed/Firefox-33.0-build2-test/ staging/Firefox-33.0-build2-test-fixed-whatsnew | less

~/bin/pushsnip Firefox-33.0-build2-test-fixed-whatsnew

# fix up the release snippets
mkdir -p staging/Firefox-33.0-build2.bak/Firefox
rsync -a staging/Firefox-33.0-build2/Firefox/{29.0*,3*} staging/Firefox-33.0-build2.bak/Firefox/
find staging/Firefox-33.0-build2/Firefox/{29.0*,3*} -type f -exec sed -i -e '/^openURL/d' -e 's,^actions=showURL,actions=silent,' {} \;
diff -ru staging/Firefox-33.0-build2.bak staging/Firefox-33.0-build2 | less
rm -rf staging/Firefox-33.0-build2.bak

Fennec Build 2

No issues.