Release:Release Automation on Mercurial:Starting a Release: Difference between revisions
(TB 10.0.10esr lessons learned) |
|||
Line 13: | Line 13: | ||
* click the checkbox(es) for the product(s) you want to bump. | * click the checkbox(es) for the product(s) you want to bump. | ||
** For betas, make sure the beta # in both fields matches the one you're doing (eg "Beta Build 4" == "Beta 4") | ** For betas, make sure the beta # in both fields matches the one you're doing (eg "Beta Build 4" == "Beta 4") | ||
** For '''final releases''' clear the first field | ** For '''final releases''' clear the first field, remove "_beta_b#" from the second field, and append ".0" (or .0.1). | ||
* hit "submit" and the milestones will be created. | * hit "submit" and the milestones will be created. | ||
Revision as of 16:14, 16 November 2012
After we get a "go to build" e-mail from Release Management there's some manual steps to be run to prepare for and start a release. This page describes them in detail.
L10N Changesets
Currently we have separate changesets files for Fennec and Firefox. Both are generated from the l10n dashboard
First log in to the dashboard with your LDAP and then follow the instructions below
Create milestones
Sometimes the milestones have not been created and we can do so:
- load https://l10n.mozilla.org/shipping/milestones and sign-in
- click on the link at the bottom of the page: "You may be able to create new milestones."
- click the checkbox(es) for the product(s) you want to bump.
- For betas, make sure the beta # in both fields matches the one you're doing (eg "Beta Build 4" == "Beta 4")
- For final releases clear the first field, remove "_beta_b#" from the second field, and append ".0" (or .0.1).
- hit "submit" and the milestones will be created.
Ship the milestone
Note: when clicking "Ship It" you may be notified that there are pending sign-offs for one or more locales. It is OK to proceed for betas. For final releases we leave the decision with Release Management.
Fennec
- Click the "ship" button to load up the milestone (eg: Fennec 16 Beta Build 3)
- It will tell you if there are pending sign offs. Click "ship it" if you meet on of the two conditions
- For betas, carry forward regardless if there are pending sign offs
- For final releases, carry forward *only* if there are no pending sign offs. Ask RelMan if there are
- You will land in a page like this e.g. (https://l10n.mozilla.org/shipping/about-milestone/fennec16_beta_b3)
- Click "shipping tools" at the top
- Platforms should read "android"; multi-locale should read "android-multilocale".
- Click "Add" and check these values
- repo: "releases/mozilla-beta" (you MUST use mozilla-beta, even for mozilla-release based releases)
- branch: "default"
- path: "mobile/android/locales/maemo-locales"
- Click "l10n-changesets.json"
- Copy and paste it into your repo's l10n-changesets_mobile-{version}.json
Firefox or Thunderbird
- Click "ship" to load up the milestone (eg: Firefox 16 Beta Build 3)
- It will tell you if there are pending sign offs. Click "ship it" if you meet on of the two conditions
- For betas, carry forward regardless if there are pending sign offs
- For final releases, carry forward *only* if there are no pending sign offs. Ask RelMan if there are
- This will take you to https://l10n.mozilla.org/shipping/about-milestone/fx16_beta_b3
- Click "shipping tools" at the top
- Click "l10n-changesets"
- Copy and paste the list into your changesets file (eg: l10n-changesets_mozilla-{version})
Clobbering
Mark a clobberer for "Any master", $branch, "Any builder" with clobberer. This will instruct any slave that did the last release on $branch to clobberer their release directories. Ideally, this should be done hours or more before the release starts, so that cleanup occurs before the release job starts. Clobbering isn't mandatory if your release config has base_clobber_url pointing to always_clobber.php.
If you are doing a test release in staging there is additional setup work to do, and the clobberer URL changes.
Post a Patch for Review
Note: Firefox releases also include Fennec unless otherwise specified.
For a Firefox beta, you'll need to modify:
mozilla/l10n-changesets_mobile-beta.json mozilla/l10n-changesets_mozilla-beta mozilla/release-fennec-mozilla-beta.py mozilla/release-firefox-mozilla-beta.py
Land patches and reconfig
Just like any other buildbot-configs change you would make you should start by landing your patch on the "default" branch of the repository. After that, there's a few other things that need to be done to prepare for a release:
- Transplant your change to the "production" branch. Usually done with something like:
cd buildbot-configs hg up -r production hg transplant [rev of commit on "default"]
- Tag repositories with release tags. buildbot-configs should have the tag applied to the tip of the "production" branch. buildbotcustom should have it applied to the tip of the "production-0.8" branch, and tools should have it applied to the tip of the "default" branch. For example, Firefox 17.0b1 would required FIREFOX_17_0b1_BUILD1, FIREFOX_17_0b1_RELEASE, FENNEC_17_0b1_BUILD1, and FENNEC_17_0b1_RELEASE applied.
- Reconfig the build and scheduler masters.
Running release sanity and starting the automation
On the build scheduler master (see production-masters.json, currently bm36) run release sanity in dry run mode. For example (updated for multi-master):
# Combined release cd /builds/buildbot/build_scheduler/master source ../bin/activate PYTHONPATH=. python ../tools/buildbot-helpers/release_sanity.py -u bhearsum \ -V 6.0b2 --branch mozilla-beta --build-number 1 \ --release-config release-firefox-mozilla-beta.py \ --release-config release-fennec-mozilla-beta.py --products firefox,fennec \ --dryrun localhost:9301 # Firefox-only release cd /builds/buildbot/build_scheduler/master source ../bin/activate PYTHONPATH=. python ../tools/buildbot-helpers/release_sanity.py -u bhearsum \ -V 6.0b2 --branch mozilla-beta --build-number 1 \ --release-config release-firefox-mozilla-beta.py --products firefox \ --dryrun localhost:9301 # Thunderbird release: cd /builds/buildbot/build_scheduler/master source ../bin/activate PYTHONPATH=. python ../tools/buildbot-helpers/release_sanity.py -u hwine \ -V 14.0b5 --build-number 1 --branch comm-beta \ --release-config release-thunderbird-comm-beta.py --product thunderbird \ --dryrun localhost:9301
After that succeeds (or you account for any failures you receive), run the command again without --dryrun to start the release. Some standard discrepancies:
- for chemspills: to bypass l10n checks if not changing, add option "-l"
- for Thunderbird: to bypass (broken) mozconfig checks, add option "--bypass-mozconfig-check"
If you're working in staging you must make sure to pass in the correct staging release config (staging_release-firefox-<branch name>.py)