User:Bhavana/MergeDay
NOTE: For the next merge, we need to check for interface changes that are unpaired to UUID changes
Contents
- 1 Archive of Past Merge Days
- 2 What's missing here
- 3 Mozilla-Beta -> Mozilla-Release Merge
- 4 Merge Day (Central, Aurora, Beta)
- 4.1 Check IIDs that need to be bumped
- 4.2 Get all of the Repos
- 4.3 Set each Repo up for Pushing
- 4.4 Set up HG Extensions
- 4.5 Close the Trees
- 4.6 Get Bhavana's Helper Script (do this every merge day)
- 4.6.1 mozilla-central tag/bump from 134 to 135
- 4.6.2 mozilla-aurora 54 to mozilla-beta uplift
- 4.6.2.1 Review tagging of mozilla-aurora and push
- 4.6.2.2 Review tagging of mozilla-beta and continue to push
- 4.6.2.3 Verify the script Pulled from Aurora into Beta
- 4.6.2.4 Verify the Commits related to version bumps and branding changes
- 4.6.2.5 L10n data changes
- 4.6.2.6 Commit l10n changes
- 4.6.2.7 Clobber & push
- 4.6.3 mozilla-central 134 to mozilla-aurora uplift
- 4.6.3.1 Don't forget to throttle the Aurora channel
- 4.6.3.2 Script will Tag and commit, continue to push
- 4.6.3.3 Verify that script Pulled from m-c into Aurora
- 4.6.3.4 Verify the Diff/Commit of Version Bumps/Branding changes
- 4.6.3.5 Verify the Diff/Commit of profiling changes
- 4.6.3.6 Verify the Diff/Commit of mozconfig dtrace & instruments changes (had trouble last time the change manually if needed)
- 4.6.3.7 L10n data changes
- 4.6.3.8 Verify & Commit l10n changes
- 4.7 Disable metro
- 5 Completing the Merge
- 6 Change Template Version Numbers
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 (current doc is here for repos: L10n:Migration, and dashboard process is coming)
- 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).
- Thunderbird/SeaMonkey merging, that doc is at Thunderbird/Release_Driving/Rapid_Release_Activities/Merge_Repositories
Mozilla-Beta -> Mozilla-Release Merge
- Make sure that there isn't an l10n locales bug that needs to filed like: bug 826825
Close the Beta Tree
- Use https://treestatus.mozilla.org/ to close mozilla-beta. No need to reopen till the next merge from Aurora->Beta (or a beta re-spin is necessary)
- Please use the "Remember previous state" option, so you can easily restore the previous status messages when you are finished (there will be a restore button at the bottom of the page).
- In order to change tree statuses, your browserID email needs to be added with sheriff permissions (ping edmorley/philor/catlee or ask in #developers).
Sync mozilla-beta to mozilla-release
Mercurial repositories used for final releases should be synced from mozilla-beta.
Tip of default on mozilla-release should be tagged and closed. mozilla-beta should be tagged and pulled. It creates new tip of default on mozilla-release. See Aurora specific sync mechanics for the details.
L10N repositories uses noop (dummy) merge if needed to simplify localizers life.
To handle this process use the following scripts.
Sync mozilla-beta to mozilla-release
Script available here (beta2release.sh) do not use as it doesn't update confvars.sh
Beta to Release Merge day helper Script
(Beta2Release) Merge day helper script : https://gist.github.com/bbajaj/7045666 ALWAYS GET A FRESH COPY IN CASE THERE HAVE BEEN UPDATES!!!
Clobber mozilla-release builders
Go to https://secure.pub.build.mozilla.org/clobberer/?branch=mozilla-release and clobber the mozilla-release builders
Clone, Tag, update [Taken care by the helper script beta2release.py]
Running beta2release.py
- If running for the first time save this the script in the directory where you typically do the beta to release merge.
For eg : I typically have the script saved as /Users/bbajaj/Mozilla/beta2release/beta2release.py
- Script will take-care of tagging, return here when ready to push mozilla-beta
hg -R mozilla-beta push ssh://hg.mozilla.org/releases/mozilla-beta
Edit desktop config
# edit mozilla-release/browser/locales/shipped-locales file if you need to remove some beta locales (eg mn, sw) # script takes care of config changes
Edit mobile mozconfigs
Note: use 'official' for release mozconfigs, not 'release'
# script takes care of config changes
Commit Changes
# commit the changes #script takes care of the commits
# push back # hg -R mozilla-release push -f ssh://hg.mozilla.org/releases/mozilla-release
Now go watch results
https://tbpl.mozilla.org/?tree=Mozilla-Release
L10N sync
- Note you need permission to be able to run this script successfully.File a server ops bug similar to bug 869654
Script available here (beta2release_l10n.sh)
Note for August 24th beta->release uplift, you'll want to incorporate Axel's merge script to deal with when release locale repos don't have anything committed to them yet.
Also note the merge part of this script does not work properly period, and doesn't push to repo
#!/bin/bash set -x set -e HG_HOST=hg.mozilla.org HG_USER=lsblakk@mozilla.com repo=mozilla-release release_repo_path=releases/l10n/mozilla-release beta_repo_path=releases/l10n/mozilla-beta wd=`pwd`/l10n mkdir -p $wd cd $wd for l in `wget -q -O- http://$HG_HOST/releases/$repo/raw-file/default/browser/locales/shipped-locales | grep -v en-US | awk '{print $1}'`; do hg clone http://$HG_HOST/$release_repo_path/$l hg clone http://$HG_HOST/$beta_repo_path/$l $l.beta release_rev=`hg -R $l id -i -r default` beta_rev=`hg -R $l.beta id -i -r default` hg -R $l pull $l.beta hg -R $l up -C default heads=`hg -R $l heads --template '{rev}\n' default|wc -l|tr -d ' '` if [ "x$heads" != "x1" ]; then hg -R $l up -C -r $beta_rev HGMERGE=true hg -R $l merge -r $release_rev hg -R $l revert -a -y --no-backup -r $beta_rev hg -R $l commit -u $HG_USER -m "Merge from mozilla-beta. CLOSED TREE a=release" fi hg -R $l diff -r $beta_rev -r default hg -R $l push -f ssh://$HG_HOST/$release_repo_path/$l done
Go Re-Open Beta Tree
- Announce completion of merge in #release-drivers (ping Standard8 and Callek)
Merge Day (Central, Aurora, Beta)
Merge day helper script : https://gist.github.com/lsblakk/5568843 ALWAYS GET A FRESH COPY IN CASE THERE HAVE BEEN UPDATES!!!
Check IIDs that need to be bumped
- Find IIDs that need to be bumped from Aurora to Beta: https://github.com/jwir3/checkiid
Get all of the Repos
mkdir ~/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 https://treestatus.mozilla.org/ to close the trees.
- Please use the "Remember previous state" option, so you can easily restore the previous status messages when you are finished (there will be a restore button at the bottom of the page).
- In order to change tree statuses, your browserID email needs to be added with sheriff permissions (ping edmorley/philor/catlee or ask in #developers).
Get Bhavana's Helper Script (do this every merge day)
# Make sure you get a fresh copy in case there have been updates since last merge git clone https://gist.github.com/bbajaj/6577763
- Open two terminal windows, be in the top dir of your cloned repos in both
- In one of them run the helper script (in the other you can run the needed manual steps: verifying,pushing, etc):
python merge_help_v1.py # follow instructions in script combined with wiki commands
mozilla-central tag/bump from 134 to 135
Script should do Tagging/Version bumps
- Send note to dev-planning and #developers announcing that the merge is about to start
- Script will do tagging of mozilla_central -> FIREFOX_AURORA_26_BASE
- Script will do version bumps
Push Your Changes
# check the diffs to ensure nothing additional has been changed
hg push
- Announce to dev-planning and #developers that the m-c bump is completed
mozilla-aurora 54 to mozilla-beta uplift
Review tagging of mozilla-aurora and push
# review cd ~/Mozilla/mozilla-aurora hg push
Review tagging of mozilla-beta and continue to push
cd ~/mozilla/mozilla-beta hg push
Verify the script Pulled from Aurora into Beta
hg pull -u -r FIREFOX_BETA_54_BASE http://hg.mozilla.org/releases/mozilla-aurora
- Script does version bumps and branding changes
L10n data changes
- l10n-drivers can file bugs post-merge to enable new locales, we'll revert mobile & desktop for now in order to not pull up locales which are not ready for beta
# Note: for FF23 aurora-> beta, do not revert the android multilocale - see bug 877837 hg revert -r FIREFOX_BETA_133_END browser/locales/all-locales hg revert -r FIREFOX_BETA_133_END mobile/android/locales/*-locales
Commit l10n changes
hg commit -m "Merging in l10n changes NO BUG CLOSED TREE ba=release" hg out
Clobber & push
- Use the Regular Clobbers @ clobberer to clobber all beta builders and then...
# ping Standard8 in #r-d to warn about push hg push -f
mozilla-central 134 to mozilla-aurora uplift
Don't forget to throttle the Aurora channel
- Use this Bugzilla template to file a bug requesting the disabling of Aurora updates (eg: bug 700794) - until we have sign off from QA
- Make sure QA is aware (an email to r-d is best)
Script will Tag and commit, continue to push
cd ~/mozilla/mozilla-aurora hg push
Verify that script Pulled from m-c into Aurora
- Script will do version bumps
Verify the Diff/Commit of Version Bumps/Branding changes
# check the diffs to ensure nothing additional has been changed
- Script will disable profiling changes
Verify the Diff/Commit of profiling changes
Verify the Diff/Commit of mozconfig dtrace & instruments changes (had trouble last time the change manually if needed)
hg diff hg commit -m "Remove dtrace & instruments in mozconfigs on Aurora as per bug 748669 CLOSED TREE ba=release" hg out
L10n data changes
# revert to previous Aurora locales - l10n drivers can file post-merge bugs to add new locales hg revert -r FIREFOX_AURORA_54_END browser/locales/*-locales hg revert -r FIREFOX_AURORA_54_END mobile/android/locales/*-locales
Verify & Commit l10n changes
$ hg commit -m "Merging in l10n changes NO BUG CLOSED TREE ba=release" $ hg out
Disable metro
- Check bug to disable metro
Clobber & push
- Use the Regular Clobbers @ clobberer to clobber all aurora builders and then...
# ping Standard8 (or TB driver) in #r-d to warn about push hg push -f
Completing the Merge
- Email dev.planning and let them know the merge is complete
- Notify #developers
- re-open Aurora, Beta trees
- Update the merge docs as needed to keep them up to date for next merge day
- Make sure you did file the bug on Aurora update throttling
- New: remind Jorge that he needs to prevent an add-on compatibility bump for the hotfix add-ons
- Initiate the process of uplifting sec bugs (up to what sec level needed?) for this release to b2g branch(es) [docs coming]
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) All versions are now automatically bumped. Information on the calculation follows the list of templates.
- NEXT_VERSION = 135
- CENTRAL_VERSION = 134
- AURORA_VERSION = 54
- BETA_VERSION = 133
- CURRENT_VERSION =
- CURRENT_CYCLE based upon the calendar = 20241015-20241125
- FIREFOX_SHIP_DATE = November 26, 2024 (the next ship date)
- FIREFOX_MERGE_DATE = November 25, 2024 (the next ship date)
Calculating the current Firefox release # and next release date
The expression readsfloor(Firefox 23 + ((current time - Firefox 23 release date) / 6 weeks)). This expression counts the number of full 6 week increments since Firefox 23 and adds the total to 23 to give the current release number. Similarly, we can calculate the next release date with
{{#time: Y-m-d | @{{#expr: (3628800 - (({{#time: U | now}} - {{#time: U | 6 Aug 2013}}) mod 3628800)) + {{#time: U | now}}}}}}. In this case we calculate the time since the Firefox 23 release, take the remainder from dividing by 6 weeks, and subtract that from the current time. This results in the number of days until the next release. Add that to the current time to produce the next release date.