Release Management/Release Process Checklist Documentation: Difference between revisions

Adding Huawei App Gallery steps
(Removed pausing the BitRise Beta build workflow)
(Adding Huawei App Gallery steps)
 
(17 intermediate revisions by 4 users not shown)
Line 17: Line 17:
# Add a Release Tracking Sheet link to [https://wiki.mozilla.org/Release_Management/Release_owners Release Owners] wiki
# Add a Release Tracking Sheet link to [https://wiki.mozilla.org/Release_Management/Release_owners Release Owners] wiki
#* Add the link to the date in the Release Date column.  
#* Add the link to the date in the Release Date column.  
# Ensure that Bugzilla is bumped to the Nightly version, see [https://wiki.mozilla.org/BMO/new-version BMO/new-version]
# Ensure that Bugzilla is bumped to the Nightly version  
#* Note: This is performed on the Friday before Merge Day.
#* Note: This is performed on the Friday before Merge Day.
#* Find the bug that tracks the bump.
#** [https://bugzilla.mozilla.org/show_bug.cgi?id=1744491 Example bug]
## Update the Release Milestones in Bugzilla
## Update the Release Milestones in Bugzilla
## Got to https://bugzilla.mozilla.org/admin/new_release
## Go to Bugzilla > Administration > [https://bugzilla.mozilla.org/admin/new_release New Firefox Release]
##* The products and milesontes are automatically completed
##* The products and milesontes are automatically completed
## Click [ Submit ]
## Click [ Submit ]
Line 41: Line 39:
## Edit the current cf_tracking_thunderbird_esr tracking flag to add the new release as a Value and deactivate the oldest release.
## Edit the current cf_tracking_thunderbird_esr tracking flag to add the new release as a Value and deactivate the oldest release.
##* Example: If esr is based on 91, 95 is going to Release, 96 is going to Beta, and 97 is becoming the Nightly, then edit cf_tracking_firefox_esr91 to add a Value 97+ set to mozilla-next-drivers and deactivate the Value 94+.
##* Example: If esr is based on 91, 95 is going to Release, 96 is going to Beta, and 97 is becoming the Nightly, then edit cf_tracking_firefox_esr91 to add a Value 97+ set to mozilla-next-drivers and deactivate the Value 94+.
## Edit the cf_tracking_fxios tracking flag to add the new release as a Value and deactivate the oldest release.
# Create a release notes skeleton in [https://nucleus.mozilla.org/ Nucleus].
# Create a release notes skeleton in [https://nucleus.mozilla.org/ Nucleus].
## Click '''Admin Interface'''
## Click '''Admin Interface'''
Line 149: Line 148:
#** Check the possible commit in [https://github.com/mozilla/application-services application-services main] that corresponds to the failure.
#** Check the possible commit in [https://github.com/mozilla/application-services application-services main] that corresponds to the failure.
#** Start a thread on [https://mozilla.slack.com/archives/C0559DDDPQF #application-services-eng] for investigation.
#** Start a thread on [https://mozilla.slack.com/archives/C0559DDDPQF #application-services-eng] for investigation.
# Distribute Nightly iOS build to Nightly testers from the Beta App 9000 Testflight Builds
# Review the [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&f1=cf_tracking_firefox_relnote&o1=equals&v1=%3F&f2=cf_status_firefox138&o2=anywords&v2=affected%2Cfixed%2Cverified%2Cfix-optional&f3=cf_status_firefox138&o3=notsubstring&v3=disabled&title=Release%20Note%20Requests Release Notes requests] for Nightly tickets
# Review the [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&f1=cf_tracking_firefox_relnote&o1=equals&v1=%3F&f2=cf_status_firefox138&o2=anywords&v2=affected%2Cfixed%2Cverified%2Cfix-optional&f3=cf_status_firefox138&o3=notsubstring&v3=disabled&title=Release%20Note%20Requests Release Notes requests] for Nightly tickets
#* These are nominated by setting the relnote flag to ?  for a particular release
#* These are nominated by setting the relnote flag to ?  for a particular release
Line 182: Line 180:
#* Use the [https://matrix.to/#/#releaseduty:mozilla.org #releaseduty] channel on Matrix.
#* Use the [https://matrix.to/#/#releaseduty:mozilla.org #releaseduty] channel on Matrix.
#* Align they are available for support if needed.
#* Align they are available for support if needed.
# Sync with AppServices team to confirm who will create the new Swift release on Monday
#* Sync on Friday before Merge Day
#* Use the [https://mozilla.enterprise.slack.com/archives/C0559DDDPQF #application-services-eng] channel on Slack.
# Create checklist(s) for the new ESR cycle
# Create checklist(s) for the new ESR cycle
#* Create a checklist for the relevant ESR that corresponds to the Firefox mainline release
#* Create a checklist for the relevant ESR that corresponds to the Firefox mainline release
Line 204: Line 199:
#* Check the Beta simulations document for the release, this document is emailed to Release Management at the start of the night cycle.
#* Check the Beta simulations document for the release, this document is emailed to Release Management at the start of the night cycle.
#* Ensure that central does not currently have any known severe regressions or performance issues that would be carried into beta.
#* Ensure that central does not currently have any known severe regressions or performance issues that would be carried into beta.
# Notify the firefox-ios dev team on #firefox-ios-releases that today is Merge Day
#* Let the team know roughly when you plan on branching
#* Ask them to let you know if there are any urgent pending PRs
# Perform the [https://moz-releng-docs.readthedocs.io/en/latest/how-to/releaseduty/merge-duty/merge_duty.html#release-merge-day-part-ii-a-week-after-merge-day Release Merge Day - part II] steps
# Perform the [https://moz-releng-docs.readthedocs.io/en/latest/how-to/releaseduty/merge-duty/merge_duty.html#release-merge-day-part-ii-a-week-after-merge-day Release Merge Day - part II] steps
# Send the merge complete email to release-signoff and release-drivers
# Send the merge complete email to release-signoff and release-drivers
Line 214: Line 206:
#* "The version bump to xxx has now landed on mozilla-central and the soft freeze period is over."
#* "The version bump to xxx has now landed on mozilla-central and the soft freeze period is over."
# application-services: Create an application-services release branch with the format release-vXXX off of the [https://github.com/mozilla/application-services/tree/main main branch]
# application-services: Create an application-services release branch with the format release-vXXX off of the [https://github.com/mozilla/application-services/tree/main main branch]
# application-services: Update version.txt and the CHANGELOG.md in the release-vXXX branch
# application-services: The following steps can be performed by running [https://github.com/mozilla/Relman/blob/main/as-merge-day.py as-merge-day.py] in your fork of the [https://github.com/mozilla/application-services application-services] repo:
## In [https://github.com/mozilla/application-services/blob/main/version.txt version.txt], update the version from XXX.0a1 to XXX.0.
#* application-services: Update version.txt and the CHANGELOG.md in the release-vXXX branch
## In [https://github.com/mozilla/application-services/blob/main/CHANGELOG.md CHANGELOG.md], change In progress to _YYYY-MM-DD_ to match the Merge Day date and add a URL to the release version change log
#** In [https://github.com/mozilla/application-services/blob/main/version.txt version.txt], update the version from XXX.0a1 to XXX.0.
## Create a commit named 'Cut release vXXX.0`
#** In [https://github.com/mozilla/application-services/blob/main/CHANGELOG.md CHANGELOG.md], change In progress to _YYYY-MM-DD_ to match the Merge Day date and add a URL to the release version change log
## Create a pull request and merge to the release branch, see [https://github.com/mozilla/application-services/pull/5792 example PR]
#** Create a commit named 'Cut release vXXX.0`
# application-services: Update the application-services version from XXX to YYY and CHANGELOG.md in the [https://github.com/mozilla/application-services/tree/main main branch]
#** Create a pull request and merge to the release branch, see [https://github.com/mozilla/application-services/pull/5792 example PR]
## In [https://github.com/mozilla/application-services/blob/main/version.txt version.txt], bump the version from XXX.0a1 to YYY.0a1
#* application-services: Update the application-services version from XXX to YYY and CHANGELOG.md in the [https://github.com/mozilla/application-services/tree/main main branch]
## In [https://github.com/mozilla/application-services/blob/main/CHANGELOG.md CHANGELOG.md], bump the in progress version from XXX.0 to YYY.0, add a header for the previous release version, and add a URL to the previous release version change log
#** In [https://github.com/mozilla/application-services/blob/main/version.txt version.txt], bump the version from XXX.0a1 to YYY.0a1
## Create a commit named 'Start release vYYY.0`
#** In [https://github.com/mozilla/application-services/blob/main/CHANGELOG.md CHANGELOG.md], bump the in progress version from XXX.0 to YYY.0, add a header for the previous release version, and add a URL to the previous release version change log
## Create a pull request and merge to the main branch, see [https://github.com/mozilla/application-services/pull/5793 example PR]
#** Create a commit named 'Start release vYYY.0`
#** Create a pull request and merge to the main branch, see [https://github.com/mozilla/application-services/pull/5793 example PR]
# application-services: Create a new Application Services release in Ship-It
# application-services: Create a new Application Services release in Ship-It
# application-services: Start the Application Services build in Ship-It via Promote
# application-services: Start the Application Services build in Ship-It via Promote
Line 230: Line 223:
## See [https://github.com/mozilla/application-services/releases/tag/v132.0 example tag]
## See [https://github.com/mozilla/application-services/releases/tag/v132.0 example tag]
# application-services: Notify the application-services dev team on [https://mozilla.enterprise.slack.com/archives/C0559DDDPQF #application-services-eng] that the release branch is ready, the version bumped was merged, and the release is ready
# application-services: Notify the application-services dev team on [https://mozilla.enterprise.slack.com/archives/C0559DDDPQF #application-services-eng] that the release branch is ready, the version bumped was merged, and the release is ready
#* They will perform the rust-components-swift release steps
# firefox-ios: Create a firefox-ios release branch with the format release/vxxx off of the main branch
#* Create a branch name with the format release/vxxx off of the main branch through the GitHub UI
# firefox-ios: Update the firefox-ios the version in [https://github.com/mozilla-mobile/firefox-ios/blob/main/version.txt version.txt] from the previous nightly version to the next nightly version in the [https://github.com/mozilla-mobile/firefox-ios/tree/main main branch]
#* Edit version.txt directly in GitHub and commit as "Bump - Set version to XXX.0"
# firefox-ios: Notify the firefox-ios dev team on [https://mozilla.enterprise.slack.com/archives/C03PKCHHSSD #firefox-ios-releases] that the release branch is ready and the version bumped was merged
# firefox-ios: Trigger the Firefox: import translations GitHub action
#* Use the release/v[beta_version] as the target branch
#* See documentation [https://github.com/mozilla-mobile/firefox-ios/wiki/Localization-Process#github-action-import-process here]
# firefox-ios: Pin the Application Services version in the firefox-ios release branch
#* In [https://github.com/mozilla-mobile/firefox-ios/blob/main/firefox-ios/Client.xcodeproj/project.pbxproj firefox-ios/Client.xcodeproj/project.pbxproj] set the rust-components-swift version to [major-version].0.0
#* In [https://github.com/mozilla-mobile/firefox-ios/blob/main/firefox-ios/Client.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved firefox-ios/Client.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved] set the rust-components-swift.git revision to the commit hash for the swift release and version to [major-version].0.0
#** The commit hash is found in the corresponding swift release in [https://github.com/mozilla/rust-components-swift/releases rust-components-swift/releases]
#* In [https://github.com/mozilla-mobile/firefox-ios/blob/main/focus-ios/Blockzilla.xcodeproj/project.pbxproj focus-ios/Blockzilla.xcodeproj/project.pbxproj] set the rust-components-swift version to [major-version].0.0
#** In [https://github.com/mozilla-mobile/focus-ios/blob/main/focus-ios/Blockzilla.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved focus-ios/Blockzilla.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved] set the rust-components-swift.git revision to the commit hash for the swift release and version to [major-version].0.0
#** The commit hash is found in the corresponding swift release in [https://github.com/mozilla/rust-components-swift/releases rust-components-swift/releases]
#* Create a commit named `Bump - Update SPM to rust-components [major-version].0.0.0` for this change
#* Create a pull request and merge to release branch, see example [https://github.com/mozilla-mobile/firefox-ios/pull/19274 PR]
# firefox-ios: Create a Firefox iOS release in ship-it
#* Select Product: Firefox iOS, Repository: Firefox iOS, Branch: release/v[beta-version], and the latest revision
# firefox-ios: Start the Firefox iOS build in Ship-It via Promote
# firefox-ios: Push the Firefox iOS release in Ship-It via Push
# firefox-ios: Ensure the firefox-ios build is available in Testflight
#* [https://appstoreconnect.apple.com/apps/1073219424/testflight Firefox Beta TestFlight]
# firefox-ios: Add the Internal Group to the firefox-ios TestFlight build to start the review
# firefox-ios: Ship the Firefox iOS from Ship-It via Ship
# firefox-ios: Trigger the firefox-ios focus_SPM_Beta Bitrise build workflow for Focus iOS
# firefox-ios: Ensure the focus-ios build is available in Testflight
# Switch to Application Services in Firefox Android to Release
# Switch to Application Services in Firefox Android to Release
#* Change the Version and Channel in mobile/android/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt
#* Change the Version and Channel in mobile/android/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt
Line 314: Line 279:
# Turn on [https://support.google.com/googleplay/android-developer/answer/9859654?hl=en managed publishing] in the Play Console for Focus.
# Turn on [https://support.google.com/googleplay/android-developer/answer/9859654?hl=en managed publishing] in the Play Console for Focus.
# Manually create a Focus release on the closed testing track (Foxfooding) @ 25% rollout and submit for review
# Manually create a Focus release on the closed testing track (Foxfooding) @ 25% rollout and submit for review
# Monitor for QA sign-off on desktop functional testing before proceeding with Step 23.  
# Monitor for QA sign-off on desktop functional testing before proceeding with Step 33.  
#* Please Note: Desktop Build Validation sign-off is usually provided the day after Merge Day.
#* Please Note: Desktop Build Validation sign-off is usually provided the day after Merge Day.
#* QA will post a message to the [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] channel in Slack when they complete functional testing.   
#* QA will post a message to the [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] channel in Slack when they complete functional testing.   
Line 348: Line 313:
#* This allows the app to publish automatically once it passes review.
#* This allows the app to publish automatically once it passes review.
# Turn off managed publishing in the Play Console for Focus
# Turn off managed publishing in the Play Console for Focus
# Monitor for QA sign-off on Firefox iOS build validation
#* Build validation testing is tracked [https://mozilla-hub.atlassian.net/wiki/spaces/MTE/pages/21561470 here]
#* Once QA has signed off, add the External Beta Testers group to the Firefox iOS TestFlight Build
# Monitor for QA sign-off on Focus iOS build validation
#* Build validation testing is tracked [https://mozilla-hub.atlassian.net/wiki/spaces/MTE/pages/21561465/Build+Validation+-+Focus+iOS here]
# Verify the [https://product-details.mozilla.org/1.0/mobile_versions.json mobile_versions.json] is correct
# Verify the [https://product-details.mozilla.org/1.0/mobile_versions.json mobile_versions.json] is correct
#* Verify the beta_version is correct
#* Verify the beta_version is correct
Line 388: Line 348:
#* Use the relevant beta macro
#* Use the relevant beta macro
#* Please note: After all the beta steps are complete, the tab can be hidden in order to minimize clutter.
#* Please note: After all the beta steps are complete, the tab can be hidden in order to minimize clutter.
# firefox-ios: Create a Firefox iOS release in ship-it
#* Note: This is currently built the day before the Desktop/Android beta builds so that QA can sign-off for release on the same day Desktop/Android rolls out.
# firefox-ios: Start the Firefox iOS build in Ship-It via Promote
# firefox-ios: Push the Firefox iOS release in Ship-It via Push
# firefox-ios: Ensure the firefox-ios build is available in Testflight
# firefox-ios: Ship the Firefox iOS from Ship-It via Ship
# Review tracking-firefoxXX+ bugs and approval requests.
# Review tracking-firefoxXX+ bugs and approval requests.
#* This step is performed as part of the daily activities, tracked in the checklist for confirmation.
#* This step is performed as part of the daily activities, tracked in the checklist for confirmation.
Line 440: Line 394:
#* For b3+, once QA has signed off, roll out Focus to the Closed testing - Foxfooding track in Google Play to 100%.
#* For b3+, once QA has signed off, roll out Focus to the Closed testing - Foxfooding track in Google Play to 100%.
#** Reply to the QA sign-off Slack message and include the rollout percentage.
#** Reply to the QA sign-off Slack message and include the rollout percentage.
# Monitor for QA sign-off on Firefox iOS build validation before proceeding with adding the External Testers group in TestFlight.
#* Firefox iOS QA sign-off are sent via [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] Slack Channel.
#* Please Note: Build Validation sign-off is usually provided the day after Firefox iOS builds are produced. If the sign-off is yellow/red, then follow-up on the [https://mozilla.slack.com/archives/C03PKCHHSSD #firefox-ios-releases] Slack channel. Ensure a plan is in place or a decision is made to block/proceed with the release.
#* Once QA has signed off add the External Testers group to Firefox iOS.
#** Reply to the QA sign-off Slack message.


==As available, the following items should be monitored during the Beta cycle==
==As available, the following items should be monitored during the Beta cycle==
Line 473: Line 422:
# Go to [https://treeherder.mozilla.org/ Treeherder].
# Go to [https://treeherder.mozilla.org/ Treeherder].
# Select the beta repo.
# Select the beta repo.
# On the latest push, click on the down arrow at the top right corner.
# On the latest commit push, click on the down arrow at the top right corner. Do not trigger on a tag.
# Select “Custom push action…”
# Select “Custom push action…”
# Choose ''merge-automation'' from the dropdown.
# Choose ''merge-automation'' from the dropdown.
Line 479: Line 428:
<pre>force-dry-run: false
<pre>force-dry-run: false
behavior: early-to-late-beta
behavior: early-to-late-beta
push: true
</pre>
</pre>


After the job runs, verify that the commit was pushed to the mozilla-beta repo, see [https://hg.mozilla.org/releases/mozilla-beta/rev/29e6215562511ffef7bfa73bed97093ec3d8cdd4 example].
After the job runs, verify that the commit was pushed to the mozilla-beta repo, see [https://hg.mozilla.org/releases/mozilla-beta/rev/29e6215562511ffef7bfa73bed97093ec3d8cdd4 example].


==The following needs to be performed at the end of the Beta Cycle==
==The following needs to be performed at the end of the Beta Cycle==
Line 491: Line 438:
# Disable automated beta builds in Ship-it.
# Disable automated beta builds in Ship-it.
# Please Note: Monitor beta/release uplift requests between the final beta build and the beta to release merge. It is possible that a late uplift request may come in for a regression/stability fix, evaluate if this is a blocker for the RC and if it should be uplifted to beta before the beta to release merge and RC build.
# Please Note: Monitor beta/release uplift requests between the final beta build and the beta to release merge. It is possible that a late uplift request may come in for a regression/stability fix, evaluate if this is a blocker for the RC and if it should be uplifted to beta before the beta to release merge and RC build.
=iOS XXX.0 Checklist=
iOS XXX.0 preparation begins on the Friday before RC Week.
# The following steps can be performed by running [https://github.com/mozilla/Relman/blob/main/ios-merge-day.py ios-merge-day.py] in your checkout of the [https://github.com/mozilla-mobile/firefox-ios firefox-ios] repo:
## Create a firefox-ios release branch with the format release/vxxx off of the main branch
##* Create a branch name with the format release/vxxx off of the main branch through the GitHub UI
## Update the version in [https://github.com/mozilla-mobile/firefox-ios/blob/main/version.txt version.txt] from XXX.0 to XXX.1 in the [https://github.com/mozilla-mobile/firefox-ios/tree/main main branch]
##* Edit version.txt directly in GitHub and commit as "Bump - Set version to XXX.1"
# Notify the firefox-ios dev team on [https://mozilla.enterprise.slack.com/archives/C03PKCHHSSD #firefox-ios-releases] that the release branch is ready and the version bumped was merged
# Create a Firefox iOS release in ship-it
#* Select Product: Firefox iOS, Repository: Firefox iOS, Branch: release/vXXX.0, and the latest revision
# Start the Firefox iOS build in Ship-It via Promote
# Push the Firefox iOS release in Ship-It via Push
#* This step pushes the Firefox iOS build to Testflight
# Ensure the firefox-ios build is available in Testflight
#* [https://appstoreconnect.apple.com/apps/1073219424/testflight Firefox Beta TestFlight]
# Create a Focus iOS release in ship-it
#* Note: Focus iOS XXX.0 may not ship; the purpose is to at least verify the Focus iOS pipeline once per cycle
#* Select Product: Focus iOS, Repository: Focus iOS, Branch: release/vXXX.0, and the latest revision
# Start the Focus iOS build in Ship-It via Promote
# Push the Focus iOS release in Ship-It via Push
#* This step pushes the Focus iOS build to Testflight
# Ensure the focus-ios build is available in Testflight
# Monitor for QA sign-off on Firefox iOS build validation
#* Build validation testing is tracked [https://mozilla-hub.atlassian.net/wiki/spaces/MTE/pages/21561470 here]
#* Preliminary sign-off is due to be sent by Monday EOD, which is sufficient for pushing to External Testers in TestFlight
# Once QA has signed off, add the External Beta Testers group to the Firefox iOS TestFlight Build
#* Reply to the QA sign-off Slack message.
# QA will aim to send a full manual testing report by EOD Tuesday so there is time to address any blocking issues identified.
# Check if there are any pending backport PRs targeting the XXX.0 release branch
#* Example query https://github.com/mozilla-mobile/firefox-ios/pulls?q=is%3Apr+base%3Arelease%2Fv144.0+is%3Aopen+
#* After the branch was created iOS Engineers may have created backport PRs. Review the uplift request comment on the PR and merge when appropriate.
# If an XXX.0 RC2 build is required, then cancel the previous RC build in Ship-It and repeat steps 3 to 6 and 11 to 12
# Check if there are any pending backport PRs targeting the XXX.0 release branch
#* Example query https://github.com/mozilla-mobile/firefox-ios/pulls?q=is%3Apr+base%3Arelease%2Fv144.0+is%3Aopen+
#* After the XXX.0 RC2 was built iOS Engineers may have created backport PRs. Review the uplift request comment on the PR to determine if an XXX.0 RC3 build is required, or if the PR can wait for XXX.1
# If an XXX.0 RC3 build is required, then cancel the previous RC build in Ship-It and repeat steps 3 to 6 and 11 to 12
# Check if there are release notes
#* If there are no release notes provided then us the generic release notes
# Submit Firefox iOS in the AppStore for review
#* Select a phased rollout when submitting.
#* Select to automatically release after App Store Review on Sunday night Eastern 10PM (Monday 2AM GMT) prior to go-live (i.e. go-live date -2)
#** Note: If the Monday of go-live week is a Canadian public holiday, then set the automatic release date to Monday night Eastern instead.
# Ship Firefox iOS from Ship-It via Ship
#* Wait until the Friday of RC week to avoid shipping if another RC is needed
# Verify that Firefox iOS rolled out
# Send Slack message to #firefox-ios-releases to notify the release is live


=RC Checklist=
=RC Checklist=
Line 507: Line 504:
## Connect to the VPN.
## Connect to the VPN.
## Log into [https://shipit.mozilla-releng.net/ Ship-It].
## Log into [https://shipit.mozilla-releng.net/ Ship-It].
## Click New Release.
## Click Releases > Firefox > New.
##* [[File:shit-it_new_release.png|600px|center|middle]]
##* [[File:Screenshot 2025-10-07 at 1.22.06 PM.png|600px|thumb|center|NewReleaseShipit]]
## Complete as follows and click Create Release:
## Complete as follows and click Create Release:
##* [[File:Screen Shot 2022-06-07 at 9.26.10 AM.png|thumb|center]]
##* [[File:Screen Shot 2022-06-07 at 9.26.10 AM.png|thumb|center]]
Line 528: Line 525:
# Turn on managed publishing in the Play Console for Fenix/Focus/Klar.
# Turn on managed publishing in the Play Console for Fenix/Focus/Klar.
# Manually create a Fenix/Focus/Klar release on the Production track with a 5% rollout.
# Manually create a Fenix/Focus/Klar release on the Production track with a 5% rollout.
# Submit the Fenix/Focus/Klar release for review.
# Submit the Fenix/Focus/Klar release for Play Store review.
# Submit the Fenix/Focus release for Samsung Store review with a 5% rollout.
#* Please Note: The submission is automatically created as part of the push.
#* Delete the N-2 version so that only the previous release and RC packages remain.
#* Set to publish manually, the review should complete during RC week.
# Submit the Fenix release for Huawei AppGallery Open Testing to release immediately
#* Please Note: The submission is separate from the release track
#* Create a new release (also considered an update) in Huawei App Gallery Connect
#* Make sure to select "Yes" for open testing.
#* [[File:Screenshot 2025-10-07 at 1.42.02 PM.png|600px|center]]
#* In the packages section, Upload the arm64-v8a apk (Huawei only allows one build per submission).
#* [[File:Screenshot 2025-10-07 at 1.42.15 PM.png|600px|center]]
#* Set to release immediately (only option when selecting open-testing)
# Submit the Fenix release for Huawei AppGallery on the Release track review with a 5% rollout.
#* Make sure to select "No" for open testing
#* All other information should be copied over from the previous submission.
#* Set to at 5% with the end date being the Wednesday after the release date, this is when it will rollout to 100% automatically
#** [[File:Screenshot 2025-10-07 at 1.42.31 PM.png|600px|center]]
# Push Desktop to Beta at 100% from Ship-It via Ship RC.
# Push Desktop to Beta at 100% from Ship-It via Ship RC.
#* [[File:Screenshot 2022-06-07 at 09-32-46 RelMan Activities Overview.png|thumb|center]]
#* [[File:Screenshot 2022-06-07 at 09-32-46 RelMan Activities Overview.png|thumb|center]]
Line 553: Line 567:
## Submit to the store for review
## Submit to the store for review
#* Please see [https://docs.microsoft.com/en-us/windows/uwp/publish/app-submissions App submissions] documentation for additional information on the Microsoft Store submission process.
#* Please see [https://docs.microsoft.com/en-us/windows/uwp/publish/app-submissions App submissions] documentation for additional information on the Microsoft Store submission process.
==The following tasks need to be performed at the start of RC week (week before go-live) for iOS ==
'''Firefox/Focus/Klar iOS'''
# Check if there are any missing backports from the previous release.
#* Ensure that any backports from the dot releases on the previous version were also backported.
# Check if there are any pending PRs for the firefox-ios release branch.
#* [https://github.com/mozilla-mobile/firefox-ios/pulls firefox-ios]
#* Example Filter: ''is:pr is:open base:release/v115''
# Sync with the iOS team for Hard Freeze.
#* Ask on [https://mozilla.slack.com/archives/C03PKCHHSSD #firefox-ios-releases] Slack channel
#* See [https://mozilla.slack.com/archives/C03PKCHHSSD/p1687795018726399 Example]
# Run the Firefox:import translations (strings sync) action, set the target branch to the release branch (ex: ''release/v118'').
#* See documentation [https://github.com/mozilla-mobile/firefox-ios/wiki/Localization-Process#github-action-import-process here].
# Trigger the firefox-ios SPM_Deploy_Prod_Beta bitrise build workflow for the release branch.
# Trigger the firefox-ios focus_Release bitrise build workflow for the release branch.
# Verify that Firefox iOS release is available in TestFlight.
#* [https://appstoreconnect.apple.com/apps/989804926/testflight Firefox TestFlight]
# Verify the Focus/Klar release is available in TestFlight.
#* [https://appstoreconnect.apple.com/apps/1055677337/testflight Firefox Focus TestFlight]
#* [https://appstoreconnect.apple.com/apps/1073435754/testflight Firefox Klar TestFlight]


==As available, the following should be monitored/performed during RC week for Desktop/Android==
==As available, the following should be monitored/performed during RC week for Desktop/Android==
Line 601: Line 593:
#* Reply to the QA sign-off slack message
#* Reply to the QA sign-off slack message
#** “Thanks, pushed to Production at 5% rolled out.
#** “Thanks, pushed to Production at 5% rolled out.
# Upload [https://seller.samsungapps.com/application/main.as?contentId=000002975732&platform=&readOnly=Y#/cert/info Fenix to Samsung Store] with 5% rollout when approved
# Publish Fenix/Focus on the Samsung Store.
#* Upload ARM32 and ARM64 APKs (armeabi-v7a/arm64-v8a)
#* Please note: It can take up to 2 days for review, so it might still be pending.
#** The APKs are available as an artifact in the signing-apk job from the Promote graph.
# Publish Fenix to the Huawei App Gallery.
#* Set the rollout rate to 5%
#* You can edit the percentage or release to all users
#* Set to publish automatically
#* Please note: It can take up to 2 days for review.
# Upload [https://seller.samsungapps.com/application/main.as?contentId=000003397900&platform=&readOnly=Y#/cert/info Focus to Samsung Store] with 5% rollout when approved
#* Perform the same steps as Step 9
 
==As available, the following should be monitored/performed during RC week for iOS==
'''Focus iOS'''
# Monitor for QA sign-off on Focus iOS build validation before proceeding with Steps 2 and 3.
#* Please Note: Build Validation sign-off is usually provided the day after the builds are produced.
#* Focus iOS QA sign-off is sent via [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] Slack Channel.
# Submit iOS Focus and iOS Klar in the AppStore for review.
#* Select a phased rollout when submitting.
#* Select to automatically release after App Store Review on Sunday night Eastern prior to go-live (i.e. go-live date -2)
#** Note: If the Monday of go-live week is a Canadian public holiday, then set the automatic release date to Monday night Eastern instead.
# Tag the release in GitHub in the firefox-ios repo using the format `focus/klar-vXXX.X`
#* Wait until the Friday of RC week to avoid tagging if another RC is needed
#* [https://github.com/mozilla-mobile/firefox-ios/releases firefox-ios/releases]
#* See [https://github.com/mozilla-mobile/firefox-ios/releases/tag/focus%2Fklar-v124.1 Example]
 
'''Firefox iOS'''
# Monitor for QA sign-off on Firefox iOS build validation before proceeding with Steps 2 to 6.
#* Please Note: Build Validation sign-off is usually provided the day after the builds are produced.
#* Firefox iOS QA sign-off is sent via [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] Slack Channel.
# Add the External Beta Testers group to the Firefox Beta TestFlight Build
# Gather Firefox iOS release notes.
#* This can be done in parallel to the Desktop/Android release note gathering.
#* The store release notes are needed before submitting.
# Submit Firefox iOS in the AppStore for review.
#* Select a phased rollout when submitting.
#* Select to automatically release after App Store Review on Sunday night Eastern 10PM (Monday 2AM GMT) prior to go-live (i.e. go-live date -2)
#** Note: If the Monday of go-live week is a Canadian public holiday, then set the automatic release date to Monday night Eastern instead.
# Tag the release in GitHub in the firefox-ios repo using the format `firefox-vXXX.X`
#* Wait until the Friday of RC week to avoid tagging if another RC is needed
#* [https://github.com/mozilla-mobile/firefox-ios/releases firefox-ios/releases]
#* See [https://github.com/mozilla-mobile/firefox-ios/releases/tag/firefox-v124.0 Example]
 
'''General iOS tasks'''
# Bump the Firefox iOS version in the release branch to XXX.1
#* Wait until the Friday of RC week to avoid bumping the version if another RC is needed
#* Edit version.txt directly in GitHub and commit as "Bump - Set version to XXX.1"


=RC Uplifts=
=RC Uplifts=
Line 730: Line 682:
# Verify that security advisories are live [https://www.mozilla.org/en-US/security/advisories/ here]
# Verify that security advisories are live [https://www.mozilla.org/en-US/security/advisories/ here]
# Verify that the [https://partner.microsoft.com/en-us/dashboard/products/9NZVDKPMR9RD/overview Microsoft Store] is published at 25% rollout
# Verify that the [https://partner.microsoft.com/en-us/dashboard/products/9NZVDKPMR9RD/overview Microsoft Store] is published at 25% rollout
# Ship new Desktop release in Ubuntu Snap Store
# Ship new Desktop release in Ubuntu Snap Store with a phased rollout starting a 25%
#* See [https://github.com/mozilla-releng/releasewarrior-2.0/blob/master/docs/release-promotion/desktop/ubuntu-snap.md#promote-a-snap-to-the-stable-channel Promote a snap to the stable channel] for more information
#* See [https://github.com/mozilla-releng/releasewarrior-2.0/blob/master/docs/release-promotion/desktop/ubuntu-snap.md#promote-a-snap-to-the-stable-channel Promote a snap to the stable channel] for more information
# Send Slack message to [https://mozilla.slack.com/archives/C6HD6P4TF #release-coordination] to notify of the release
# Send Slack message to [https://mozilla.slack.com/archives/C6HD6P4TF #release-coordination] to notify of the release
Line 764: Line 716:
# Bump the [https://partner.microsoft.com/en-us/dashboard/products/9NZVDKPMR9RD/overview Microsoft Store] rollout to 100%.
# Bump the [https://partner.microsoft.com/en-us/dashboard/products/9NZVDKPMR9RD/overview Microsoft Store] rollout to 100%.
#* Click Finalize package rollout
#* Click Finalize package rollout
# End the phased rollout in the Ubuntu Snap Store
#* Only if it has not already rolled out to 100%.
# Currently not supported via the web UI, but can be done via the snapcraft cli. See [https://documentation.ubuntu.com/snapcraft/latest/how-to/publishing/manage-revisions-and-releases/#close-the-release close the release] for more information.
# Review fenix/focus release crash rates, incoming bugs for new blockers, and spike/trend in negative play store reviews.
# Review fenix/focus release crash rates, incoming bugs for new blockers, and spike/trend in negative play store reviews.
#* Check to see if there is anything concerning that would prevent completing the rollout.
#* Check to see if there is anything concerning that would prevent completing the rollout.
Line 779: Line 734:
# Update the Weekly Digest document, as requested on [https://mozilla.slack.com/archives/C01TTHGPSKB #fx-weekly-digest].
# Update the Weekly Digest document, as requested on [https://mozilla.slack.com/archives/C01TTHGPSKB #fx-weekly-digest].
#* Update the Release Milestones (Details) section to add status on the release, dot release, etc.
#* Update the Release Milestones (Details) section to add status on the release, dot release, etc.
=iOS XXX.1 - XXX.3 Checklist=
Perform the same steps as *iOS XXX.0 Checklist* but with the following exceptions:
* Do not build Focus iOS
* If the QA sign-off is still yellow/red by Thursday during the version stabilization week, then that version will not ship.
** We will "burn" the version number and proceed with the next version branch on Friday as scheduled.




Line 839: Line 802:
##* If an app is still pending review on a closed track then you cannot promote it to a production track.
##* If an app is still pending review on a closed track then you cannot promote it to a production track.
##* See [https://support.google.com/googleplay/android-developer/answer/9859348?hl=en Prepare and roll out a release] for more information.
##* See [https://support.google.com/googleplay/android-developer/answer/9859348?hl=en Prepare and roll out a release] for more information.
## Submit the Fenix/Focus/Klar release for review.
## Submit the Fenix/Focus/Klar release for Play Store review.
##* Keep the same release notes as the major release. Add any new notes at the top prefixed by the dot release version.
##* Keep the same release notes as the major release. Add any new notes at the top prefixed by the dot release version.
##* With managed publishing turned on, the app will not automatically release after the store review.
##* With managed publishing turned on, the app will not automatically release after the store review.
## Submit the Fenix/Focus release for Samsung Store review with a 25% rollout and set to publish automatically
##* This allows the review to go through slightly faster
##* Set the publish time to later in the go-live day. This gives enough time to react if the build fails QA
# Follow the same process as monitoring when an RC build has QA sign-off with the following exceptions:
# Follow the same process as monitoring when an RC build has QA sign-off with the following exceptions:
## Turn off [https://support.google.com/googleplay/android-developer/answer/9859654?hl=en managed publishing] in the Play Console.
## Turn off [https://support.google.com/googleplay/android-developer/answer/9859654?hl=en managed publishing] in the Play Console.
238

edits