Merge Duty for major ESR bump


This manual describes how to set up a new ESR branch. The same process can be applied for any branch set up, with slight modifications.

Example tracking bug: Bug 1334535 - tracking bug for build and release of Firefox 52.0esr

Internal changes

This section covers changes to buildbot-configs and tools.

See Bug 1339832 for the details and example changes.

Some highlights:

  • Explicitly list the platforms (and use lock_platforms) since we don’t ship ESR to all mozilla-central/release platforms (android, for example)

  • Copy mozilla-beta configs, compare them to the previous ESR release and check if you understand what they stand for

tools changes

  • copy the old patcher config, so we can generate partial updates against the previous ESR release.

  • since the config patch introduces new configuration file(s) which are needed to be symlinked on the build/scheduler masters there is a need for a fabric methods to create the links

It’s important that the buildbot-configs changes are landed and in production prior to adding the symlinks and adjusting production-masters.json. When you land these two changes you must immediately run the fabric method to put the symlinks in place to ensure the masters will continue to function correctly.

External systems

CI relies on multiple systems, supported by different teams. File bugs in advance to make sure other teams have enough time to address the issue. Usually starting the whole process 2 weeks in advance of release builds (3 weeks before the release), gives enough time to everybody.


Below is the list of bugs filed as a part of the ESR52 cycle. Go through the list and verify that they are still valid for this ESR cycle and clone them if needed.




Please add tracking-thunderbird_esr52 and status-thunderbird_esr52 to the tracking flags


please create tracking-firefox-esr52 and status-firefox-esr52 flags


Add mozilla-esr52 and comm-esr52 to release_repositories


Please clone releases/mozilla-beta to releases/mozilla-esr52


update tree closure hooks for mozilla-esr52


Add mozilla-esr52 and comm-esr52 to treeherder


Add mozilla-esr52 and comm-esr52 to treestatus


Add mozilla-esr52 and comm-esr52 to orange factor


Gecko-specific changes to support mozilla-esr52


HTTP 500 for all trees view due to missing comm-esr52 repo


Please add the approval-esr52 flag


Add mozilla-esr52 to the various lists in


Make sure the right hooks are running on mozilla-esr52


Buildbot specific changes to enable mozilla-esr52


Update merge day and esr docs


Please add mozilla-esr52 to DXR


Set ESR_NEXT in ship-it config


Set watch_all_branches to True for ESR52


Enable TC on mozilla-esr52


Turn off TC-based Android jobs on ESR52


Add mozilla-esr52 and comm-esr52 to release-notifications heroku app


browser_parsable_css.js fails on ESR52 ASAN builds due to the ESR branding changes


Once mozilla-release is merged from mozilla-beta you can run the script which pulls last changes from mozilla-release, updates some configs and replaces some branding bits.

Running for mozilla-esr

The script will tag mozilla-release. It will continue by pulling mozilla-release to mozilla-esrNN, adjusting branding and changing some configs. Once the script finishes, run an hg diff to see the uncommitted changes that the script generated:

# checkout mozharness from the gecko tree using archiver
python mozharness --destination mozharness-esr$ESR_VERSION \
  --repo releases/mozilla-esr$ESR_VERSION --rev default --debug
# run the script
python mozharness-esr$ESR_VERSION/scripts/merge_day/ \
  -c merge_day/
hg -R build/mozilla-esr$ESR_VERSION diff
python mozharness-esr$ESR_VERSION/scripts/merge_day/ -c \
  merge_day/ --commit-changes --push

The push should be available at Treeherder.

In case of failure, you can start again from the top; no need to clobber (the on-by-default clean-repos action will be sufficient). It should be faster the second time, since you won’t be pulling in as many changesets from hg.m.o.

Release builds

Make sure to run a staging release.

Update this documentation

Keep this documentation up to date.

Ship it!

Close the bug and have some tea. :)