-
Notifications
You must be signed in to change notification settings - Fork 8
Releasing the App
To release a version of Pocket following our 2-week cycle, you should follow either of the below steps depending on your release scenario. The following assumes you will be releasing to the Testflight Audience and then potentially promoting that version of the App to the store.
- If needed pr to increment the app version number in Git on the develop branch.
- Trigger the nightly-internal-pipeline manually to submit a new build to Testflight. You can see instructions for a manual build here
- Find the nightly you will promote that is already Testflight Nightlies. Correlate it's build number with Bitrise and find the respective commit and write that down. You can search by build number in the Bitrise UI. a. Alternatively trigger the nightly-internal-pipeline manually to submit a new build to Testflight from the latest on the develop branch.
Once you have the build and associated commit you want to release to the Testflight audience perform the following in Git and GitHub:
- Tag the commit in git with the name
release/v0.0.0.0000
where 0.0.0 is the app version, and .0000 is the build number. - Push the tag to GitHub.
- Draft a new GitHub release by clicking here
- For the name put
v0.0.0.0000
where 0.0.0 is the app version, and .0000 is the build number. - In the 'Choose a tag' dropdown select the tag you pushed to GitHub and make sure the target is main. This will draft the release by comparing the changes between the tag and the last release.
- Click Auto Generate Release Notes.
- Obtain the public release notes and add it as the last section.
- Publish the release, or save as draft until you are ready.
- Once ready, checkout out main locally git checkout main
- Merge the tag you made into
main
git merge release/v0.0.0.0000
and push it to GitHub. Alternatively do a PR from the tag tomain
and ensure you merge the PR maintaining history. (otherwise you need to merge main back into develop)
You are now done with the process in Git and GitHub!
Releasing to Beta Testers:
- Find the build you want to release to testers
- Add in the public facing release notes in TestFlight.
- Add the Public Beta and Mozillians Testflight Groups to the build. They will be notified once the app passes External Beta Review and receive the update. Ensure you coordinate this with the Product team.
- At the same time you should also submit the App for Apple review. Set the build to manual release by checking the 'Manually release this version' radio button under 'Version Release' in App Store Connect. This ensures that after our beta cycle finishes, we can immediately launch that version to the Store. a. When you release the App to the beta audience, you should at the same time release the last beta app to the store. In coordination with the product team.
Note: To add translations and auto populate the what's new section, we can use https://github.com/Pocket/pocket-ios-deliver/tree/master.
After the steps to release are completed, there are some steps that we should perform to maintain our project and ensure it is up to date.
- Bump Project Version to next version. See example PR.
- Update our dependencies. See example PR.
- Review our current feature flags and clean up any that are not needed. The general rule of thumb is that we can remove the feature flag once a feature has been released at 100% for one full release. (i.e. if we release the feature at release x.y.z, then we remove it in x.y.(z+2)). Confirm with the team as it can vary from case-to-case.