Releasing an update requires that we submit apps to the internal testing tracks for each store first and promote them to production later.
NOTE Tagging a release from the non main branch is fine, as long as that release does not get deployed to production.
-
Select a version and a build number, eg.
v0.6.2-0.- The version number uses semver. Generally we will just bump the
MINORversion from the previous release. It is unusual to change the version during multiple pre-release iterations. - The build number is typically a number that starts at 0 for a given version and increments until the final release-able build has been created. This number doesn't matter for much but it needs to be unique for each build within a given version.
- The version number uses semver. Generally we will just bump the
-
Ideally, if this is expected to be the final build for this version, update the
CHANGELOG.mdto reflect any interesting changes, make sure it is committed. and merged tomain. -
Ensure your working directly is at the correct branch and sha for the release. This should almost always be the
mainbranch, certainly if the goal is to publish to production.git checkout main git pull
-
Tag the release locally, replace
!VERSIONwith the version for this release, eg.0.6.2-0.git tag -a v!VERSION -m "!VERSION Release"
The tag has a
vprepended while the message does not, this is on purpose. -
Push the tag to Github, again replacing
!VERSION.git push origin v!VERSION -
This will eventually lead to a draft release in Github with links to download the apps. It will also submit the app to the app stores internal testing tracks.
-
Test and repeat if further changes are required. Move to Release when ready.
NOTE Production releases should be tagged from main.
If the release was tagged from a branch, get the branch merged to main and repeat the Pre-release steps from main.
-
Follow the steps in Google and Apple stores to submit a new version to production.
- Apple is the little blue + sign next to the heading
iOS Appwhile in the app details page. - Google is the
Create a new releasebutton underTest and release>Productionin the app details page. - Make sure the version number matches, only the digits are used, eg.
0.6.2. - Copy the interesting bits out of the changelog for this release and paste them into the "What's new in this update" section for each store.
- Apple is the little blue + sign next to the heading
-
Make sure you have actually submitted the draft releases for review, this is typically many button clicks.
-
Wait for both stores to approve the release.
-
Convert the draft release in Github to a published release.
- Edit the tag to drop the build number, the final tag should be similar to
v0.6.2 - Change the release title to be
Release v!VERSION, eg.Release v0.6.2 - Copy the changelog bits for this release from
CHANGELOG.mdto the release notes. If we didn't craft a changelog use theGenerate release notesas a fallback. - Make sure
Set as the latest releaseis checked. - Publish
- Edit the tag to drop the build number, the final tag should be similar to
-
Publish the release in the app stores
-
Go over to
apiand update the latest version for mobile.