-
Notifications
You must be signed in to change notification settings - Fork 3k
Release Checklist
These are instructions for preparing a release branch for Firefox iOS and starting the next Nightly development cycle. This will cover which steps release management covers, and which steps developers should cover. Note that the gap between the soft freeze and hard freeze is typically three weeks.
This part is 100% covered by the Release Management team. The dev team should not perform these steps.
We'll be taking a snapshot of the current main
, and preparing a release candidate from it. See Firefox Release Calendar.
- Create a branch name with the format
releases/v[beta_version]
off of themain
branch (for example,releases/v114
) through the GitHub UI.[beta_version]
should follow the Firefox Beta release number. See Firefox Release Calendar. - In
main
update the version from[previous_nightly_version]
to[nightly_version]
:- Run the script update_version.sh in the
main
branch - Create a commit named
Set version to [nightly_version].0
for this change. - Create a pull request against it and then merge.
- See example PR
- Run the script update_version.sh in the
- Notify the dev team that they can start the new Nightly development cycle per the steps given in the next section ⬇️
- Trigger the string import GitHub action. Normally triggered on Soft freeze day and Hard freeze day. See documentation here.
- Change the branch in the scheduled beta build to
release/v[beta_version]
:- View the firefox-ios app in BitRise.
- Expand the
Scheduled
list. - Click the settings button for
SPM_Deploy_Prod_Beta
. - Select
Edit Scheduled Build
. - Change the
Branch
torelease/v[beta_version]
. - Click
Save Changes
.
- Trigger the Firefox-iOS
SPM_Deploy_Prod_Beta
Bitrise build workflow for therelease/v[beta_version]
branch - Verify the Bitrise build for Firefox-iOS passed, and the app was pushed to TestFlight
- Add the Internal Group to the TestFlight build to start the iOS review.
- Create a PI request in Jira for Firefox-iOS
v[beta_version]
- Use this as an example.
- Post in
#firefox-ios-releases
channel the PI request link, so devs have access to update it
- Once release management has created the release branch, notify the team to aim new PRs at the updated fix version by updating the
Current PR Version
topic in the #ios-watercooler channel. - Back ports bug fixes commits towards the release branch. Make sure to mark any tickets you back port with the proper
fix version
field in the Jira ticket, and mention any particularities QA need to be careful about when testing. - Update the PI request. Release management won't update the PI request with comments on what was back ported, so make sure you update the PI request with the latest information as well. Note that builds are preplanned each week to happen on Tuesday, Thursday and Sunday.
- Update Security Advisories if needed (see Security Advisories page.
- Release management can handle the PI request updates since the number of back ports are normally low in those rapid release builds.
- For back port on rapid releases, the dev creates the back port, but the release management will take care to merge it when the time is right. The dev just makes sure the back port is in a mergeable state, tagging the PR with the
weekly-release
label. The dev will be told to create the back port either by product or release management.
This part is 100% covered by the Release Management team. The dev team should not perform these steps.
- Check if there are any missing back ports from the previous release.
- Check if there are any pending PRs.
- Sync with the iOS team for Hard Freeze.
- Trigger the string import GitHub action. Normally triggered on Soft freeze day and Hard freeze day. See documentation here.
- Update PI request if there's been any changes since the last QA sign off.
- Verify that Firefox iOS release is available in TestFlight.
- Monitor for QA manual testing sign off for Firefox iOS.
- Add the External Beta Testers group to the TestFlight Build.
- Gather release notes.
- Submit Firefox iOS in the App Store for review.
- Fix Release Blockers raised by the QA team. As QA regression tests, they'll open GitHub issues. Watch for new issues and ask Product which could be release blockers. After QA is done testing, you'll get a test report email indicating if the build is green/red. If it's red, there will be a list of critical issues that need to be addressed and back ported. See section about back ports for more information.
- Monitor crash rate through Xcode and Sentry.
Make sure to mark any tickets you back port with the proper fix version
field in the Jira ticket, and mention any particularities QA need to be careful about when testing. Release management won't update the PI request with comments on what was back ported, so make sure you update the PI request with the latest information as well. Builds are preplanned each week to happen on Tuesday, Thursday and Sunday.
If fixes are required - first merge to main, then use Mergify to uplift the change to the release branch. You need to comment @Mergifyio backport release/vXXX
on the PR to uplift. Mergify will then open a PR pointing to the release branch for you. Build should be green before merging to release branch.
This part is 100% covered by the Release Management team. The dev team should not perform these steps.
- Publish Firefox iOS to the App Store.
- Tag the Firefox iOS release in GitHub.
- Bump the Firefox iOS version in the release branch to
XXX.1