Release Management/Merge Documentation
Archive of Past Merge Days
What's missing here
This is a document in process, and will also be replaced by automation at some point. In the meantime it outlines the manual steps required on a 'Merge Day' when Mozilla-Aurora becomes Mozilla-Beta and Mozilla-Central becomes Mozilla-Aurora.
ATM there is nothing in here about:
- synching all the L10N repos
- There have been issues with missing l10n locales on first beta1 builds. In m-b --> m-r migration, RelEng run l10n-sync script to uplift beta locales to release, which ensures that all locales have content in release repo and are migrated correctly. However, this script currently doesn't get used for m-a --> m-b merge day (need to check with Axel on his process here).
Preparation for Merge
Get all of the Repos
$ mdkir ~/Mozilla/ $ cd ~/Mozilla/ $ hg clone http://hg.mozilla.org/mozilla-central/ mozilla-central $ hg clone http://hg.mozilla.org/releases/mozilla-aurora/ mozilla-aurora $ hg clone http://hg.mozilla.org/releases/mozilla-beta/ mozilla-beta
Set each Repo up for Pushing
See https://developer.mozilla.org/en/Mercurial_FAQ#Required_configuration
Set up HG Extensions
Edit ~/.hgrc to include
[extensions] transplant= mq= rebase= graphlog=
Close the Trees
DO NOT CLOSE mozilla-central FOR MERGING
- Use the pass at https://bugzilla.mozilla.org/show_bug.cgi?id=sheriffpass to change APPROVAL REQUIRED to CLOSED TREE on
mozilla-central tag/bump from 129 to 130
Preparation and Tagging
- Send note to dev-planning and #developers announcing that the merge is about to start
$ cd ~/Mozilla/mozilla-central $ hg pull $ hg up $ hg tag FIREFOX_AURORA_129_BASE
Version Bumps
browser/config/version.txt
-129.0a1 +130.0a1
config/milestone.txt
-129.0a1 +130.0a1
js/src/config/milestone.txt
-129.0a1 +130.0a1
mobile/android/confvars.sh
-MOZ_APP_VERSION=129.0a1 +MOZ_APP_VERSION=130.0a1
mobile/xul/confvars.sh
-MOZ_APP_VERSION=129.0a1 +MOZ_APP_VERSION=130.0a1
b2g/confvars.sh
-MOZ_APP_VERSION=129.0a1 +MOZ_APP_VERSION=130.0a1
xpcom/components/Module.h
- static const unsigned int kVersion = 129; + static const unsigned int kVersion = 130;
Commit Your Changes
# check the diffs to ensure nothing additional has been changed $ hg diff $ hg commit -m "Merging in version bump NO BUG" $ hg out $ hg push
or, if somebody lands a change on top of m-c in the meantime,
$ hg pull $ hg merge # check the diffs to ensure nothing additional has been changed $ hg diff $ hg commit -m "Merging in version bump NO BUG" $ hg out $ hg push
- Announce to dev-planning and #developers that the m-c bump is completed
mozilla-aurora 54 to mozilla-beta uplift
Tag mozilla-aurora
cd ~/Mozilla/mozilla-aurora hg tag -m "Tagging for mozilla-aurora->mozilla-beta uplift" -R mozilla-aurora FIREFOX_BETA_54_BASE hg out # review hg push
Tagging and closing old beta
$ cd ~/mozilla/mozilla-beta $ hg tag -m "Tagging end of BETA128 CLOSED TREE" FIREFOX_BETA_128_END $ hg commit --close-branch -m 'closing old head' $ hg out $ hg push
Pull from Aurora into Beta
$ hg pull -u -r FIREFOX_BETA_54_BASE http://hg.mozilla.org/releases/mozilla-aurora
Version Bumps
browser/config/version.txt
-54.0a2 +54.0
config/milestone.txt
-54.0a2 +54.0
js/src/config/milestone.txt
-54.0a2 +54.0
mobile/android/confvars.sh
# DO NOT blindly s/a2// as it may affect other lines -MOZ_APP_VERSION=54.0a2 +MOZ_APP_VERSION=54.0
mobile/xul/confvars.sh
# DO NOT blindly s/a2// as it may affect other lines -MOZ_APP_VERSION=54.0a2 +MOZ_APP_VERSION=54.0
Commit Version Bumps
# check the diffs to ensure nothing additional has been changed $ hg diff $ hg commit -m "Merging in version bump NO BUG CLOSED TREE" $ hg out
Branding Changes
browser/confvars.sh
-MOZ_BRANDING_DIRECTORY=browser/branding/aurora +MOZ_BRANDING_DIRECTORY=browser/branding/nightly -ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-aurora +ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-beta,firefox-mozilla-release -MAR_CHANNEL_ID=firefox-mozilla-aurora +MAR_CHANNEL_ID=firefox-mozilla-beta
mobile/android/config/mozconfigs/android/debug
-ac_add_options --with-branding=mobile/android/branding/aurora +ac_add_options --with-branding=mobile/android/branding/beta
mobile/android/config/mozconfigs/android/l10n-nightly
-ac_add_options --with-branding=mobile/android/branding/aurora +ac_add_options --with-branding=mobile/android/branding/beta
mobile/android/config/mozconfigs/android/nightly
-ac_add_options --with-branding=mobile/android/branding/aurora +ac_add_options --with-branding=mobile/android/branding/beta
mobile/xul/config/mozconfigs/android/debug
-ac_add_options --with-branding=mobile/xul/branding/aurora +ac_add_options --with-branding=mobile/xul/branding/beta
mobile/xul/config/mozconfigs/android/nightly
-# Nightlies only since this has a cost in performance -ac_add_options --enable-js-diagnostics -ac_add_options --enable-application=mobile +ac_add_options --enable-application=mobile/xul -ac_add_options --with-branding=mobile/xul/branding/aurora +ac_add_options --with-branding=mobile/xul/branding/beta
Commit branding changes
$ hg commit -m "Merging in branding changes NO BUG CLOSED TREE" $ hg out
L10n data changes
- confirm with l10n-drivers whether the uplift of locale files will need to be reverted or not (in order to not pull up locales which are not ready for beta)
Example for Aurora 12 -> Beta:
- MOBILE: no updated file changes desired (rollback is needed)
- DESKTOP: files on mozilla-aurora are in expected state for beta:
- upgrade shipped-locales will occur as part of uplift
- do not upgrade all-locales
hg revert -r FIREFOX_BETA_128_END browser/locales/all-locales
Commit l10n changes
$ hg commit -m "Merging in l10n changes NO BUG CLOSED TREE" $ hg out
Analyzing for backouts
[need more info here]
Finishing up
- Use the clobberer to clobber all beta builds and then...
# ping Standard8 in #r-d to warn about push hg push -f
mozilla-central 129 to mozilla-aurora uplift
Tagging and closing old aurora
$ cd ~/mozilla/mozilla-aurora $ hg tag -m "Tagging for mozilla-central->mozilla-aurora uplift CLOSED TREE" FIREFOX_AURORA_54_END $ hg commit --close-branch -m 'closing old head' $ hg out $ hg push
Pull from m-c into Aurora
$ hg pull -u -r FIREFOX_AURORA_129_BASE http://hg.mozilla.org/mozilla-central
Version Bumps
browser/config/version.txt
-129.0a1 +129.0a2
config/milestone.txt
-129.0a1 +129.0a2
js/src/config/milestone.txt
-129.0a1 +129.0a2
mobile/android/confvars.sh
# DO NOT blindly s/a1/a2 - make sure only this line -MOZ_APP_VERSION=129.0a1 +MOZ_APP_VERSION=129.0a2
mobile/xul/confvars.sh
# DO NOT blindly s/a1/a2 - make sure only this line -MOZ_APP_VERSION=129.0a1 +MOZ_APP_VERSION=129.0a2
Commit Version Bumps
# check the diffs to ensure nothing additional has been changed $ hg diff $ hg commit -m "Merging in version bump NO BUG CLOSED TREE" $ hg out
Branding Changes
browser/confvars.sh
-MOZ_BRANDING_DIRECTORY=browser/branding/nightly +MOZ_BRANDING_DIRECTORY=browser/branding/aurora -ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-central +ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-aurora -MAR_CHANNEL_ID=firefox-mozilla-central +MAR_CHANNEL_ID=firefox-mozilla-aurora
mobile/android/config/mozconfigs/android/debug
-ac_add_options --with-branding=mobile/android/branding/nightly +ac_add_options --with-branding=mobile/android/branding/aurora
mobile/android/config/mozconfigs/android/l10n-nightly
-ac_add_options --with-l10n-base=../../l10n-central +ac_add_options --with-l10n-base=.. -ac_add_options --with-branding=mobile/android/branding/nightly +ac_add_options --with-branding=mobile/android/branding/aurora
mobile/android/config/mozconfigs/android/nightly
-ac_add_options --with-branding=mobile/android/branding/nightly +ac_add_options --with-branding=mobile/android/branding/aurora
mobile/xul/config/mozconfigs/android/debug
-ac_add_options --with-branding=mobile/xul/branding/nightly +ac_add_options --with-branding=mobile/xul/branding/aurora
mobile/xul/config/mozconfigs/android/nightly
-ac_add_options --with-branding=mobile/xul/branding/nightly +ac_add_options --with-branding=mobile/xul/branding/aurora
Commit branding changes
$ hg commit -m "Merging in branding changes NO BUG CLOSED TREE" $ hg out
L10n data changes
- confirm with l10n-drivers whether the uplift of locale files will need to be reverted or not (in order to not pull up locales which are not ready for beta)
Example for Mozilla-Central (13) -> Aurora (12):
- MOBILE: no updated file changes desired (rollback needed)
- DESKTOP: no updated file changes desired (rollback needed)
hg revert -r FIREFOX_AURORA_12_END browser/locales/*-locales hg revert -r FIREFOX_AURORA_12_END mobile/android/locales/*-locales
Commit l10n changes
$ hg commit -m "Merging in l10n changes NO BUG CLOSED TREE" $ hg out
Analyzing for backouts
[need more info here]
Releng to move Aurora to 10.7 builders
When Fedora 14 is merged to mozilla-aurora, release engineering will need to land and reconfig for bug 744445. This will make mozilla-aurora start building for Mac on 10.7. NOTE: this will need to be done for all Fedora 14 merge days. bug 744450 tracks the ff14 beta actions and bug 744456 tracks ff14 release actions for this project. A section like this should be added to the next merge day documentation
Finishing up
- Use the clobberer to clobber all aurora builds and then...
# ping Standard8 (or TB driver) in #r-d to warn about push hg push -f
Completing the Merge
Change Template Version Numbers
Now that everything has been bumped edit the following so our Channel Notes and other wiki pages have the correct info and queries now (increment by 1)