Thunderbird/Release Driving/Rapid Release Activities/Merge Repositories
Setting up
You'll need access to:
- Mercurial (level 3)
- treestatus (one of the existing Thunderbird folks should be able to ask the Sheriffs to give you access).
Clone the drivertools repo
hg clone http://hg.mozilla.org/users/bugzilla_standard8.plus.com/drivertools/ cd drivertools/comm-merges
Merges Overview
Merges should be done in the order:
- comm-beta -> comm-release (used by SeaMonkey)
- comm-aurora -> comm-beta
- comm-central -> comm-aurora
When merges happen
The comm-beta -> comm-release merge is typically done a few days before the main merges. Normally the SeaMonkey folks determine when. At the latest it is done on Merge day.
The other two merges happen on Merge Day. This can be determined by looking at the release calendar.
How to close the Trees
Use treestatus for closing trees. Set the "state" to CLOSED with a reason of "for merges" with the "Planned closure" tick box selected.
For each merge ensure the relevant trees are closed, i.e. for comm-beta -> comm-release, ensure:
- comm-beta-thunderbird
- comm-beta-seamonkey
- comm-release-thunderbird
- comm-release-seamonkey
Reopening the Trees
Reopening trees is only done when:
- For central: after the merges are completed and the version numbers have been bumped.
- For aurora, beta and release: after the merges are completed *and* the builds have been completed.
When re-opening the tree, ensure you set it to the state that it was previously (generally "approval-required" for aurora/beta and "open" for central). There's a history on the page where you can check.
comm-aurora -> comm-beta merge
Run the script
./merge-aurora-2-beta.sh &>aurora2beta.log less aurora2beta.log
When viewing the log check for:
- Outgoing tag to comm-aurora
- The diff of changes committed to comm-beta looks OK
- The outgoing changes to comm-beta look ok, including closing of the old head, and tagging at the start and end of the list.
When ready:
hg push -R aurora
This won't cause anything to build, but will push the tag.
Note: It is best if the next part is done in association with the mozilla-aurora to mozilla-beta merge
Clobber the comm-beta builds using clobberer
Then push to comm-beta:
hg push -R beta -f
Once the builders have run, check that you still have green builds.
comm-central -> comm-aurora merge
Run the script
./merge-central-2-aurora.sh &>central2aurora.log less central2aurora.log
When viewing the log check for:
- Outgoing tag to comm-central
- The diff of changes committed to comm-aurora looks OK
- The outgoing changes to comm-aurora look ok, including closing of the old head, and tagging at the start and end of the list.
When ready:
hg push -R central
Note: It is best if the next part is done in association with the mozilla-aurora to mozilla-beta merge
Clobber the comm-aurora builds using clobberer
Then push to comm-aurora:
hg push -R aurora -f
Once the builders have run, check that you still have green builds.
comm-beta -> comm-release
Run the script
./merge-beta-2-release.sh &>beta2release.log less beta2release.log
When viewing the log check for:
- Outgoing tag to comm-beta
- The diff of changes committed to comm-release looks OK
- The outgoing changes to comm-release look ok, including closing of the old head, and tagging at the start and end of the list.
When ready:
hg push -R beta
This won't cause anything to build, but will push the tag.
Note: It is best if the next part is done in association with the mozilla-beta to mozilla-release merge, but if you can't, kill off the builds once they start, and then clobber them.
Clobber the comm-release builds using clobberer and seamonkey-clobberer
Then push to comm-release:
hg push -R release -f
Once the builders have run, check that you still have green builds.
Central version bumps
Bump the versions in
central/mail/config/version.txt central/suite/config/version.txt
and commit with a message like "Version bumps for SeaMonkey and Thunderbird a=auroramerge".
Post-Merge tidy
Please commit and push any changes to the drivertools repo, for history purposes.
Reopening trees
The Aurora and Beta trees are only normally re-opened to the approval state once the builders have cycled post merges and the trees are still in the previous state.
Hidden Builders
On tbpl, check that the list of builders is the same across the aurora/beta and then the central/aurora trees (via Tree Info -> Open Admin Tree Panel). Sometimes new builders are added, and only unhidden once green - this needs to be updated as the trains move along.