|
|
(5 intermediate revisions by 5 users not shown) |
Line 1: |
Line 1: |
| {{Release Engineering How To|Create new ESR branch}}
| | The documentation has been moved to [https://github.com/mozilla/releasewarrior/blob/master/how-tos/new-esr-branch-setup.md releasewarrior] |
| | |
| This process also works, with slight (obvious?) modifications for new twigs and b2g gecko branches. ESR17 process was tracked by {{Bug|796995}} and the dependent bugs. For ESR 24 is was {{Bug|913195}} for Firefox, and {{Bug|913197}} for Thunderbird. The process can be split into 2 major parts: internal and external
| |
| | |
| = Internal changes =
| |
| This covers changes to configs, buildbotcustom and tools.
| |
| | |
| [https://bugzilla.mozilla.org/attachment.cgi?id=678768&action=edit buildbotcustom changes] for ESR17 were not critical and are not ESR specific. | |
| | |
| == tools changes ==
| |
| [https://bugzilla.mozilla.org/attachment.cgi?id=678767&action=edit tools changes]
| |
| * adds new release branch to [http://hg.mozilla.org/build/tools/file/default/buildfarm/maintenance/production-masters.json production-masters.json] file
| |
| * adds new branch to buildapi's [http://hg.mozilla.org/build/tools/file/default/buildfarm/maintenance/production-branches.json production-branches.json] file
| |
| * since the [https://bugzilla.mozilla.org/attachment.cgi?id=678814&action=edit 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
| |
| * mozconfig whitelist changes (tested in {{bug|808077}})
| |
| * preproduction tweaks
| |
| | |
| == buildbot-configs 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
| |
| * No dep/nightly L10N builds required, as a result no need to create Tinderbox trees
| |
| * check mozilla-beta exceptions (loops) and check if they are aplicable to the current ESR
| |
| * for every exception (MERGE DAY exceptions) file a bug to track it
| |
| * you may need to add shortening code for new branches
| |
| ** make sure to run <tt>test-masters.sh</tt> to verify
| |
| ** see, e.g. https://hg.mozilla.org/build/buildbotcustom/annotate/b863ef3d9559/common.py#l128
| |
| === New release configs ===
| |
| * Make sure that the following variables set
| |
| releaseConfig['partialUpdates'] = {}
| |
| releaseConfig['skip_updates'] = True
| |
| releaseConfig['verifyConfigs'] = {}
| |
| releaseConfig['ftpSymlinkName'] = 'latest-esr'
| |
| * File new tracking bug for the next minor esr release (17.0.1esr) to update these variables
| |
| * update previous release configs and set
| |
| releaseConfig['ftpSymlinkName'] = 'latest-10.0esr'
| |
| * add mozilla2/*/comm-esr17/release/l10n-mozconfig for every platform. Copy them from mozilla-beta and compare to the previous esr configs
| |
| * add mozilla2/linux/comm-esr17/release/mozconfig (linux only). We need this for source builder. Will be fixed by {{bug|748796}}
| |
| | |
| = External changes =
| |
| | |
| == Ask Developer Services to clone repos ==
| |
| See {{bug|807979}} for the details, but now filed to "Developer Services::Merurial: hg.mozilla.org". We usually clone ~1-2 weeks in advance off beta to test how automation works.
| |
| | |
| Separately, ask Developer Services to add the new gecko esr branch to the unified gecko repository "gecko-dev". See {{bug|1164217}} for details.
| |
| | |
| == Add new branches to treestatus.m.o ==
| |
| Ask a treestatus admin to add the trees, or file a bug in Webtools::Tree Status. Notice that Thunderbird trees have -thunderbird suffix (comm-esr17-thunderbird). <small>(as of <s>{{bug|823618}}</s>, tree addition & deletion require admin rights. Current admins include sheriffs, catlee, hwine. See {{bug|877948}} for futures.)</small>
| |
| | |
| == Update tree closure hooks ==
| |
| See {{bug|807983}} for the details (fyi, [https://bugzil.la/816766#c1 ted has given us blanket approval] to land branch-name-only updates - have someone else double check). Requires deployment by IT (see {{bug|807694}}).
| |
| | |
| '''TODO''': update this section because the hooks moved to https://hg.mozilla.org/hgcustom/version-control-tools/
| |
| | |
| == Update graphs.m.o and graphs.allizom.org with ==
| |
| Graph server schema changes. Requires both sql update ({{bug|808007}}) & deployment to both staging and production servers using a process similar to [[ReleaseEngineering:Buildduty:Slave_Management#Slavealloc|slavealloc updates]]. (releng has add permissions, so IT deployment <s>{{bug|808537}}</s> no longer needed except for deleting mistakes). (Use copy/modify/paste for all elements. Note that branch name is given in tbpl capitalization format.
| |
| | |
| == Update Treeherder ==
| |
| # File [https://bugzilla.mozilla.org/enter_bug.cgi?comment=Please%20start%20ingestion%20of%20data%20for%20the%20new%20tree%20%3CTREE%3E%0D%0A%0D%0AThis%20is%20implemented%20as%20branch%20%3CBRANCH%3E%20in%20hg%20repository%20%3CREPO_URL%3E%0D%0A%0D%0A&component=Treeherder%3A%20Data%20Ingestion&priority=P1&product=Tree%20Management&short_desc=Start%20data%20ingestion%20for%20tree%20%3CTREE%3E P1 bug] against Treeherder to support the new repository. Ping in #treeherder if urgent.
| |
| #* Note that data for unknown repositories is ignored by Treeherder. Nothing breaks, but no data will be available.
| |
| | |
| == Setup Nightly updates ==
| |
| | |
| === Add rule to Balrog ===
| |
| NB: This should be done after the first set of nightlies (so that Firefox-mozilla-esrNN-nightly-latest exists, where NN is the new ESR version).
| |
| | |
| * login in to [https://aus4-admin.mozilla.org/rules.html Balrog]
| |
| * Add a new rule with
| |
| ** Mapping: Firefox-mozilla-esrNN-nightly-latest
| |
| ** BackgroundRate: 100
| |
| ** Priority: 90
| |
| ** Product: Firefox
| |
| ** Channel: nightly-esrNN
| |
| ** Update type: minor
| |
| | |
| = Pull from mozilla-release =
| |
| 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 gecko_migration.py for mozilla-esr ==
| |
| '''EDIT''' configs/merge_day/release_to_esr.py and update ESR versions.
| |
| | |
| Example invocation:
| |
| # clone mozharness
| |
| hg clone http://hg.mozilla.org/build/mozharness
| |
| python mozharness/scripts/merge_day/gecko_migration.py -c mozharness/configs/merge_day/release_to_esr.py
| |
| * 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:
| |
| | |
| (cd build/mozilla-esrNN; hg diff) | more
| |
| # an |hg out| will show the migrated changesets; an |hg out --patch| will show the patches for the migrated changesets.
| |
| | |
| * It's best to get a visual review by someone else as well.
| |
| * Commit+push the final bits by
| |
| # Make sure you already pushed your release version bump and reconfiged before this part!
| |
| python mozharness/scripts/merge_day/gecko_migration.py -c mozharness/configs/merge_day/release_to_esr.py --commit-changes --push
| |
| * The push should be available at https://tbpl.mozilla.org/?tree=Mozilla-EsrNN
| |
| | |
| 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.
| |
| | |
| | |
| = Testing =
| |
| == CI builds ==
| |
| Make sure to run all esr and some other builds in staging. Run leak test and nightly builds 2 times to allow them to generate leak log and partial updates.
| |
| | |
| == Release builds ==
| |
| Make sure to run a staging release. It takes less time then usual build, because there are no updates to be generated.
| |
| | |
| = Ship it! =
| |
| Close the bug and have some tea. :)
| |