-
Notifications
You must be signed in to change notification settings - Fork 111
Release Management Checklist
The release owner for each sprint is expected to address each item in a checklist (example): this document is intended to provide elaborations on each of these tasks where appropriate. The canonical release process per sprint is available in the GitHub issue templates.
During a sprint, we release three builds:
- LAT1 is intended to test our a-c upgrade
- LAT2 is intended to test the code we intend to release (occurs after soft code freeze)
- The final build is intended to be released to users
Our versioning is Major.Minor.Bugfix-Identifier. The use of identifiers is as follows:
-
LAT1
: This signifies Live App Test builds, which will be sent out to testers before a release. The number is bumped for each subsequent LAT. For example, the second LAT sent out to test the 3.3 build would be3.3-LAT2
. -
A
: The single alphabetical letter signifies a general population release. If we do a subsequent version-bump only release, that letter will be bumped instead of the version number. Ideally, if a version is bumped only the letter will change, but in some cases (like when there needs to be a rollback), we will also bump the version numbers. -
RO
: This signifies a staged-rollout.
To create a release (or LAT) build:
- Update the app version. Notice that some of the version names have "v" and some do not.
- Ensure the
versionName
field inapp/build.gradle
has been bumped (e.g.3.10-LAT1
) - Create a branch for your release (e.g. named
releases/v3.10-LAT1
) and push it upstream. - Create a git tag for your release (e.g. named
v3.10-LAT1
) and push it upstream (i.e.git push --tags
)
- Ensure the
- On GitHub, draft a GitHub Release for your git tag, which will start a release build on Taskcluster. Important: the app version, git tag, and branch name must all be the same version or the validation task will fail.
- If you need to retrigger the release build task then delete both the git tag and GitHub Release (the GitHub UI is a little confusing for this, but after you delete a release, the tag remains and you need to click it to delete it separately). Then repeat the steps above to make a release again.
- Once the the release automation has finished, the team mailing list will receive an email.
- This build will include the necessary API keys
- If the task is failing, you may need to talk to Release Engineering in the
#releaseduty-mobile
channel on slack.
- Smoke test: download the signed APK as linked from the email and smoke test it.
- Upload the signed APK to your GitHub release & update the release notes (e.g. from the CHANGELOG). These builds are used by QA to bisect and are not intended for users.
- If this is a regular release, automation will create an "upcoming release" on the Amazon Developer's page. Otherwise, if this is an LAT release, you'll need to upload the APK manually.
- LAT releases are used so QA can test upcoming releases before they go to the public.
All release builds intended for production should be built on Taskcluster: see instructions above. However, if you ever need to build a release build locally, see the project README.md.
When publishing each build, the release owner should send an email to notify the team. All emails for a single release should be in the same thread titled, "FFTV vX.X release". The release owner can use the email template below.
Hi all,
I just pushed vX.X-LATX. The major changes included are:
- ...
As a reminder:
- LAT1 is intended to test our a-c upgrade
- LAT2 is intended to test the code we intend to release (occurs after soft code freeze)
- The final build is intended to be released to users
Thanks,