Release Management/Release Process Checklist Documentation: Difference between revisions

m (added a note for Focus, will add new info as I find it)
(Added a step to check Flathub)
 
(174 intermediate revisions by 5 users not shown)
Line 5: Line 5:
Given the nature of how nightly builds are created and shipped, the role of the release manager during this phase of the cycle skews much more heavily to the monitoring aspect rather than release mechanics.
Given the nature of how nightly builds are created and shipped, the role of the release manager during this phase of the cycle skews much more heavily to the monitoring aspect rather than release mechanics.


Prior to the start of the cycle, the follow tasks need to be performed:
== Prior to the start of the Nightly cycle, the following tasks need to be performed before Merge Day ==
* '''Update the milestones tab on release tracking spreadsheet.''' [https://docs.google.com/spreadsheets/d/1Kexb-hd8chGEN63zZKqkBSxREe7nR_A2Ai2OuehaBaM/edit#gid=1793473785 Check milestones tab] of release template for how to. This will ideally be ready at least two weeks prior to the start of the cycle, with feedback received from key stakeholders (QA, RelEng, RelMan) prior to wider publishing.  
# Create a '''Release Checklist''' before the cycle starts.
* '''Verify that the [https://www.google.com/calendar/embed?src=bW96aWxsYS5jb21fZGJxODRhbnI5aTh0Y25taGFiYXRzdHY1Y29AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ release calendar] is up to date.''' This can be done in conjunction with the milestones document or after it’s published.
#* Use the [https://docs.google.com/spreadsheets/d/1Kexb-hd8chGEN63zZKqkBSxREe7nR_A2Ai2OuehaBaM/edit#gid=1703657824 template] from Google Drive.
* '''Ensure that the release has a [https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 Regression Engineering Owner] identified.''' Ultimately, ownership of this task falls within the Firefox engineering org. However, it is good for the release manager to ensure that this doesn’t get stalled.
# Create the '''Milestones Document''' for the Release Checklist.
* On Merge Day: [[BMO/new-version|Add tracking and status flags]] for the new Nightly version. Example bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1606669
#* Use the [https://docs.google.com/spreadsheets/d/1QAbF2mM-v7usT8hrNIAnaz7ybDaRzPR-YfN_8sxWGhc/edit?usp=sharing sheet] linked in the Release Checklist.
# Create a '''Firefox Retrospective Notes''' document.
#* Use the [https://docs.google.com/document/d/1HUohmSfV9ovlL2dhYNNdagPjWRjMoD2xHH7jjICrfkk/edit template] from Google drive.
#* It is useful to document during the release cycle.
# Create a folder in the [https://drive.google.com/drive/folders/1ZD5tdhfgw1nxrNbeHqz74GEBYMBpKf_A Release Tracking] Google Drive for the release.
#* Move the Release Checklist and Firefox Retrospective Notes to this folder.
# Create a release notes skeleton in [https://nucleus.mozilla.org/ Nucleus].
## Click '''Admin Interface'''
## Click the '''Releases'''.
## Select the previous Nightly release notes (enable the checkbox beside the release).
## At the top of the page, expand the ''Action'' dropdown
## Select '''Copy releases'''.
## Click '''Go'''.
## Select the copy.
## In the '''Version''' text box edit the version to the current Nightly version.
##* Example: 99.0a1
## Set the Release Date to match when Central was bumped to Nightly
## Remove the release notes from the previous release.
## For additional information on the Release Notes process see [https://wiki.mozilla.org/Release_Management/Release_Notes The Firefox release notes process] wiki page.
# Ensure that Bugzilla is bumped to the Nightly version, see [https://wiki.mozilla.org/BMO/new-version BMO/new-version]
#* 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]
#** Please Note: The Milestone bump is performed by Bugzilla admins, see the ticket assignee.
## Update the Release Tracking flags in Bugzilla
## Go to Bugzilla > Administration > [https://bugzilla.mozilla.org/page.cgi?id=tracking_flags_admin_list.html Release Tracking Flags]
## Add the cf_tracking_firefox and cf_status_firefox for the Nightly release
##* Example: If 97 is becoming the Nightly, then add cf_tracking_firefox97 and cf_status_firefox97.
## Deactivate the oldest cf_tracking_firefox flag.
##* Example: If 95 is going to Release, 96 is going to Beta, and 97 is becoming the Nightly, then deactivate cf_status_firefox94.
## Edit the current cf_tracking_firefox_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+
## Add the cf_tracking_thunderbird and cf_tracking_thunderbird for the Nightly release.
##* Example: If 97 is becoming the Nightly, then add cf_tracking_thunderbird97 and cf_tracking_thunderbird97
## Deactivate the oldest cf_tracking_thunderbird flag.
##* Example: If 95 is going to Release, 96 is going to Beta, and 97 is becoming the Nightly, then deactivate cf_tracking_thunderbird94.
## 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+.
## Add a comment on the bug that the tracking flags were updated.
##* See [https://bugzilla.mozilla.org/show_bug.cgi?id=1770521#c1 comment here] for example.
# Update the Google calendar [https://calendar.google.com/calendar/u/0/embed?src=bW96aWxsYS5jb21fZGJxODRhbnI5aTh0Y25taGFiYXRzdHY1Y29AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ Releases Scheduling].
## Open the following URL and change the version to the Nightly release.
##* https://whattrainisitnow.com/calendar/release/schedule/?version=118.
## Download the generated ical file.
## Review locally on a calendar app of your choice
## Open Google Calendar.
## Click '''+''' beside '''Other Calendars'''.
## Select '''Import'''.
## Select the ical file previously downloaded.
## Select the '''Releases Scheduling''' calendar.
## Click '''Import'''.
## Please Note: Importing the ical to Google Calendar is a one-shot operation. If you notice incorrect info or dates after importing, correct them directly in Google Calendar. Importing the ical file again will cause duplication.
# Ensure the REO (Regression Engineering Owner) is listed on [https://wiki.mozilla.org/Release_Management/Release_owners Release Owners].
#* If required check the Google Sheet [https://docs.google.com/spreadsheets/u/0/d/1ZK1GxB1VfzRbdG1UaQzkv49VlJod2rVF3lrjy51yJdw/edit REO Rotation by Director].
#* Update the wiki with information from the spreadsheet.
#** Ensure that the REO and RelEng owners are listed.
#** Ensure the dates are accurate.
#* If required reach out to the Director to find out who the REO is.
#* Ensure they are invited to the Weekly Regression Triage.
# Ensure the Release Engineer on Release Duty is listed on Release Owners.
#* If required reach out on Matrix [https://matrix.to/#/#releaseduty:mozilla.org #releaseduty].


On a daily (or thereabouts) basis, the following items should be monitored:
==At the start of the Nightly cycle, the following tasks need to be performed on Merge Day==
* '''Pending tracking-firefoxXX requests.''' These are bugs which have been nominated for extra tracking during the cycle. A decision needs to be made about whether the bug indeed warrants that additional attention, and possibly even blocker status. At the beginning of the cycle, bug queries will need to be created for this purpose. Once that query exists, the item in Column A can be updated to a link. (TODO: document tracking decision making process)
# Verify that Central was bumped to the Nightly version.
* '''Open tracking-firefoxXX+ and blocking bugs.''' The main purpose of this step is to ensure that bugs falling into these categories don’t stagnate. Where possible, release managers should ensure that the bug is in the right component, has an appropriate assignee (for either investigating or fixing, depending on the stage of the bug), and is in general making progress (and poking if it doesn’t appear to be). In the case of blocker bugs, expediting a fix or backout may become necessary. At the beginning of the cycle, bug queries will need to be created for this purpose. Once that query exists, the item in Column A can be updated to a link.
#* Check [https://hg.mozilla.org/mozilla-central/file/tip/browser/config/version_display.txt version_display.txt]
* '''Newly-filed regression bugs.''' This can be done in conjunction with the Regression Engineering Owner of the release. Bug queries should be available from the [https://wiki.mozilla.org/Platform#Bug_Lists Platform wiki page]. New regressions are generally the most important to track on a regular basis, but the carry-over regression lists can also surface bugs which have fallen off the radar which may require reprioritization.
#* Please Note: This is performed on Merge Day of the release going to beta, if it is incorrect talk to the RelMan on duty for the Beta cycle.
* '''Review stability rates and reported crash spikes.''' This can be spikes detected by automation, which sends email which is usually monitored by the stability team. Release managers may also want to pay attention to these spikes and help file bugs. Also keep an eye on stability through monitoring the Mission Control rate and top crashes on crash-stats.
# Verify that the firefox-android version was updated.
#* Chheck [https://hg.mozilla.org/mozilla-central/file/tip/mobile/android/version.txt version.txt] should be xxx.0a1, where xxx matches the nightly version of desktop.
#* If the version was not updated, then sync with release engineering.
# Make the release notes public in [https://nucleus.mozilla.org/ Nucleus]
# Verify the application services version was updated
#* The version in [https://github.com/mozilla/application-services/blob/main/version.txt version.txt] should be xxx.0a1, where xxx matches the nightly version of desktop.
#* If the version was not updated then talk to the RelMan on duty for the Beta cycle.
# Verify the [https://product-details.mozilla.org/1.0/firefox_versions.json firefox_versions.json] is correct.
#* Please Note: Usually this json update is performed the day after merge day
#* Please Note: fx trains and various scripts in other tools use this data.
#* Verify the following are correct:
#** FIREFOX_NIGHTLY, NEXT_MERGE_DATE, NEXT_SOFTFREEZE_DATE
#* If these are incorrect, contact the RelEng on duty via the [https://matrix.to/#/#releaseduty:mozilla.org #release-duty] channel in Matrix. It is possible a PR was missed during the RelEng merge day steps.
#* Please Note: There are also date changes that are monitored by autonag. For example, if [https://wiki.mozilla.org/Template:NextReleaseDate Template:NextReleaseDate] was not updated an autonag email will be sent.
# Verify the [https://product-details.mozilla.org/1.0/mobile_versions.json mobile_versions.json] is correct
#* Verify the following are correct:
#** alpha_version, nightly_version
#* If these are incorrect, contact the RelEng on duty via the [https://matrix.to/#/#releaseduty:mozilla.org #release-duty] channel in Matrix.


On a weekly basis, a review of the [https://trello.com/b/8k1hT2vh/firefox Firefox Trello board] should be done to monitor the status of features currently targeting that release. This can be done in conjunction with the weekly cross-functional meeting or Nightly feature deep-dive meeting. Release managers are also encouraged to watch the list for their release in order to receive notifications for any changes in status.
==On a daily (or thereabouts) basis, the following items should be monitored during the Nightly cycle==
[[Image:RelMan Process Trello.png|450px|center|middle]]
# Review '''Pending tracking-firefoxXX''' requests
#* [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&o1=equals&v1=%3F&f1=cf_tracking_firefox93&title=tracking%3F%20for%2093&list_id=15918777 Example Filter]
#* Ensure that the tickets are progressing, follow up as required.
# Review '''Open tracking-firefoxXX+ and blocking bugs'''
#* [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&o1=anywordssubstr&v1=%2B%2Cblocking&f3=resolution&o3=nowordssubstr&v3=INVALID%2CWORKSFORME%2CDUPLICATE&o2=nowordssubstr&v2=fixed%2Cwontfix%2Cdisabled%2Cverified&f1=cf_tracking_firefox93&f2=cf_status_firefox93&title=tracking%2B%20not%20fixed Example Filter]
#* Ensure that the tickets are progressing, follow up as required.
# Review '''incoming regression bugs'''
#* [https://bugzilla.mozilla.org/buglist.cgi?v4=%3F&o5=equals&f10=keywords&keywords=regression%2C&keywords_type=allwords&f1=cf_status_firefox97&o3=equals&o7=notsubstring&list_id=14849551&f8=cf_tracking_firefox97&v11=Geckoview&v3=unaffected&o11=notequals&o1=equals&j2=OR&o9=notequals&resolution=---&v10=stalled%2Cintermittent-failure&classification=Client%20Software&classification=Developer%20Infrastructure&classification=Components&classification=Server%20Software&classification=Other&v7=needinfo&f9=product&f4=cf_status_firefox96&v5=---&query_format=advanced&o10=nowordssubstr&v9=Testing&f3=cf_status_firefox96&f2=OP&o4=equals&f11=product&f5=cf_status_firefox96&v8=-&v1=affected&f6=CP&f7=flagtypes.name&o8=notequals&title=97%20New%20Bugs&order=changeddate Example Filter]
#* Also see the [https://bugdash.moz.tools/#tab.reo REO] section in the BugDash
#* Ensure that new tickets are prioritized.
#* Ensure that carry-over tickets are still on the team’s radar.
#* Review with the REO in the weekly regression meeting.
# Review stability rates and reported crash spikes
#* Leverage information from the automated emails, monitor top crashes in [https://crash-stats.mozilla.org/ Crash Stats], and monitor [https://mozilla.cloud.looker.com/dashboards/918?Channel=beta&OS+Name=&Ten+Percent+Sample=Yes Stability & Release Monitoring Looker Dashboard]
#* Ensure that there are bugs tracking stability rates and crash spikes.
#* Ensure these tickets are tracked and prioritized.
#* Please Note: If ever there are stats/bugs that cannot be explained/identified, then reach out to the team for assistance on the [https://matrix.to/#/#stability:mozilla.org #stability] Matrix channel, it may be an issue with the tooling issue.
# Review the Release Notes requests for Nightly Tickets.
#* See [https://wiki.mozilla.org/Release_Management/Release_Notes#Daily_during_the_Nightly_cycle Release_Notes#Daily_during_the_Nightly_cycle] for details.


The release manager should also review the test plans for features targeting their releases to become familiar with how the feature works and how we intend to ensure it is of sufficient quality to ship in that release. This also gives an opportunity to provide feedback on the risk analysis and mitigations put in place.
==On a weekly (or thereabouts) basis, the following items should be monitored during the Nightly cycle==
# Review the tracking Mana page for the release.
#* The tracking page can be found as a child of [https://mana.mozilla.org/wiki/pages/viewpage.action?pageId=150542950 Firefox Release Tracking]
#* Ensure that features targeting the release are on track, reach out as needed if any are slipping.
# Update the Weekly Release Tracking Digest document, as requested on [https://mozilla.slack.com/archives/C01TTHGPSKB #fx-weekly-digest].
#* Update the Release Milestones (Details) section to add Status (On Track, Delayed), Ship Date, and additional details depending on where the nightly is in the cycle for example coming up to the Soft Freeze.
#* Review the dates in the Release Milestones section and update the status.
 
==As available, the following items should be monitored during the Nightly cycle==
# Review and land mozilla-central repo-update HSTS HPKP remote-settings tld-suffixes patches.
#* Every Monday and Thursday revisions are automatically created for review in Phabricator.
#* Monitor email notifications sent by Phabricator: “No Bug, mozilla-central repo-update HSTS HPKP remote-settings tld-suffixes”
#* Review and land the patch to autoland.
# Review and land android nightly application-services version update bumps to mozilla-central
#* An automated nightly application-services build is triggered daily. The build will only run if commits merged to [https://github.com/mozilla/application-services main] since the previous nightly build.
#* update-bot creates a patch to bump the version for android in mozilla-central, runs a Try build, and sets the release-mangers group as reviewer.
#* Monitor email notifications sent by Phabricator: Update android nightly application-services version bump
#* Review and land the patch to autoland.
#* If the Try build failed:
#** Check 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.
# Review Test Plans for features targeting the release. QA shares test plans via email. For example:
#* Become familiar with how the feature works.
#* Understand how the team ensures it is of sufficient quality to ship in that release.
#* Provide feedback on the risk analysis and mitigations put in place.
# Review mid-Nightly and pre-Beta testing reports QA shares mid-Nightly and pre-Beta testing reports via email. For example:
#* If there are any red or yellow reports review the recommendations/plan and the bugs mentioned in the report.
#* If QA flagged that the feature is behind a pref verify that this is expected.
 
==At the end of the Nightly cycle, the following tasks need to be performed prior to and during Merge Day==
# Send Nightly Soft Code Freeze reminder to dev-platform and firefox-dev.
#* Send this at the start of the week before the Soft Code Freeze.
#* Remind developers that the window for landing riskier fixes is coming to a close until after the version bump.
#* [https://groups.google.com/a/mozilla.org/g/dev-platform/c/uoCFNyGJx0c Example email]
# Sync with RelEng to confirm the RelEng on duty for the Central to Beta merge.
#* Sync on Friday before Merge Day
#* Use the [https://matrix.to/#/#releaseduty:mozilla.org #releaseduty] channel on Matrix.
#* Align to perform the merge early on Merge Day, for example, 9/10am ET.
# Sync with the Sheriff team to confirm Central is in a good state so that the Merge Day email can be sent.
#* Sync on Merge Day morning
#* Use the [https://chat.mozilla.org/#/room/#sheriffs:mozilla.org #sheriffs] channel on Matrix.
#* 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.
# Once you have confirmed central is in a good state, send the Merge Day email to release-drivers and release signoff
#* [https://groups.google.com/a/mozilla.org/g/release-drivers/c/FACrkr1Qgpo Example email] for the merge day of 103:
# Sync with RelEng on the Central to Beta merge
#* Use the [https://matrix.to/#/#releaseduty:mozilla.org #releaseduty] channel on Matrix to mention the merge day email was sent
#* Sync with the RelEng on duty. The RelEng on duty is listed in the Matrix channel description
# Create a Desktop Beta Checklist and Mobile Beta Checklist for beta 1
#* Use the b1 macro
# Wait for RelEng to complete the central to beta merge.
#* Use the [https://matrix.to/#/#releaseduty:mozilla.org #releaseduty] channel on Matrix to synchronize if needed.
#* RelEng will also reply to the Merge Day email
# Prepare the Beta release notes in [https://nucleus.mozilla.org/ Nucleus]
## Click '''Admin Interface'''
## Click the '''Releases'''
## Select the Nightly release notes (enable the checkbox beside the release)
## At the top of the page, expand the Action dropdown
## Select '''Copy release'''
## Click '''Go'''
## In the '''Channel''' dropdown select '''Beta'''
## In the '''Version''' text box edit the version to the Beta version
##* Example: 96.0beta
## Replace the content in the Text box with content from a previous beta release 
## Set the Release Date to the date when the first Beta is released
## Ensure to remove any notes that are only applicable to nightly
# Announce the soft freeze is over
#* Once the merge is complete, reply to the soft freeze reminder email
#* Example: “Hi, the Gecko 100 version bump landed on central as planned and the soft freeze is over.”


Once mid-Nightly and pre-Beta test reports are emailed by QA, the release manager should check the newly-reported bugs to make sure flags are set correctly and the new issues have been addressed by engineering and product teams and prioritized accordingly. Release managers can help make sure that all of the pertinent information is in place to make decisions about whether the feature is ready to ship to Beta or whether it should remain Nightly-only for another cycle for more testing and development.


Near the end of the cycle, the following actions must be performed:
* '''Send Nightly soft freeze reminder to dev-platform & firefox-dev.''' This should be done a week before the start of the soft freeze to remind developers that the window for landing riskier fixes is coming to a close until after the version bump.
* '''Create the Release Process spreadsheet.''' This must be done prior to the first merge of mozilla-central to mozilla-beta in time for the b1 build. Duplicate the existing template.
* '''Prepare Beta release notes.''' This must be done before the release goes to the wider Beta audience (after the final merge to Beta and Nightly version bump has happened). (TODO: document the release note creation process)


= Beta Checklist =
= Beta Checklist =


== Ongoing Tasks ==
Once a release moves to the Beta cycle, the daily tasks performed during the Nightly cycle will continue to be carried out as new bug reports come in from a wider audience and new features move through the QA cycle towards shipping. There is also an added triage step during Beta - monitoring the “missed uplifts” email or queries to find issues fixed in Nightly that still affect Beta.


Once a release moves to the Beta channel, the daily tasks performed during the Nightly cycle will continue to be carried out as new bug reports come in from a wider audience and new features move through the QA cycle towards shipping.  
==The following tasks need to be performed on Merge Day at the start of the Beta cycle after the merge to beta is finished==
# Perform the release management steps in the [https://mozilla.github.io/application-services/book/howtos/releases.html App Services Release checklist]
#* Application Services release once and at the start of the beta cycle.
#* This step is required before building Android/iOS.
# 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
#** See example [https://hg.mozilla.org/releases/mozilla-beta/rev/4c3f709451f8aa49beaf8d63fc2131c3ac85e82e commit]
#* Push directly mozilla-beta
# Perform the release management steps in the [https://github.com/mozilla-mobile/firefox-ios/wiki/Release-Checklist#soft-freeze-tasks Firefox iOS Soft Freeze Checklist]
#* The Firefox iOS release branch is used for beta and rc builds.
# Announce the soft freeze is over
#* Reply back to the soft code freeze announcement email
#* "The version bump to xxx has now landed on mozilla-central and the soft freeze period is over."
# Review any pending uplifts that may be required before proceeding with a beta 1 build
#* This should not be a common occurrence, however, an example would be a crash fix that may have landed in central post-merge.
# Set up Desktop and DevEdition builds in [https://shipit.mozilla-releng.net/ Ship-It]
## Connect to the VPN
## Log into [https://shipit.mozilla-releng.net/ Ship-It]
## Click Releases dropdown
## Click Firefox dropdown
## Click New
##* [[File:New shipit.png|600px|center|middle]]
## For Desktop complete as follows and click Create Release:
##* Please note: Revision should be the tip. The Partial updates field is automatic.
##* [[File:Screen Shot 2022-05-31 at 3.38.42 PM.png|600px|center|middle]]
## For DevEdition complete as follows and click Create Release
##* Please note: Revision should be the tip. The Partial updates field is automatic.
##* [[File:Screen Shot 2022-05-31 at 3.40.59 PM.png|600px|center|middle]]
# Start the Desktop and DevEdition in Ship-it via the Promote Task
## View the Pending Releases in [https://shipit.mozilla-releng.net/ Ship-It]
## Click the Promote Task for Desktop and continue through the pop-ups
## Click the Promote Task for DevEditon and continue through the pop-ups
# Confirm the Desktop and DevEdition builds have started
#* Taskcluster email: “[desktop] Build of firefox xxx.0b1 build 1”
#* Taskcluster email: “[desktop] Build of devedition xxx.0b1 build 1”
# Confirm notification sent when the Desktop and DevEdition builds finish
#* Taskcluser email: “firefox xxx.0b1 build1/mozilla-beta is in the candidates directory”
#* Taskcluser email: “devedition xxx.0b1 build1/mozilla-beta is in the candidates directory”
# Schedule push to Desktop and DevEditon CDN from Ship-It via Push
## Click Push
##* [[File:Screen Shot 2022-05-31 at 3.42.21 PM.png|600px|center|middle]]
## Click Schedule
##* [[File:Screen Shot 2022-05-31 at 3.44.18 PM.png|600px|center|middle]]
# Confirm notification sent when the Desktop and DevEditon CDN push finishes
#* Taskcluser email: “firefox xxx.0b1 build1/mozilla-beta has been pushed to cdntest”
#* Taskcluser email: “devedition xxx.0b1 build1/mozilla-beta has been pushed to cdntest”
# Create Firefox Android (AC, Fenix, Focus) release in Ship-It
# Start Firefox Android (AC, Fenix, Focus) release in Ship-It via Promote
#* Please note: you can only start a ship-it build on a revision that has a completed decision task
# Confirm notification sent when the Firefox Android (AC, Fenix, Focus) builds finish
#* Taskcluster email: “firefox-android XXX.0b# build1/mozilla-beta is in the candidates directory"
# Push Firefox Android (AC, Fenix, Focus) release in Ship-It via Push
# Monitor for QA sign-off on desktop functional testing, before proceeding with Step 17.
#* 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. 
#* Build validation testing is tracked [https://mozilla-hub.atlassian.net/wiki/spaces/FDPDT/pages/10617980 here]
# Once QA has signed off, push Desktop and DevEdition to Beta in [https://shipit.mozilla-releng.net/ Ship-It] via Ship.
# Verify that the Balrog rule changes are live and correctly set.
#* View the [https://balrog.services.mozilla.com/rules?product=Firefox&channel=beta Balrog Rules for Firefox Beta]
#** Verify that the Background rate for Firefox-xxx.0b1-build1 is 25
#* View the [https://balrog.services.mozilla.com/rules?product=Firefox&channel=aurora Balrog Rules for Aurora (DevEdition)]
#** Verify that the Background rate for Devedition-xxx.0b1-build1 is 100
# Activate automated betas in [https://shipit.mozilla-releng.net/ Ship-It]
## At the bottom of the page, click the red x beside Firefox Desktop: Beta
##* [[File:Screen Shot 2022-05-31 at 3.51.31 PM.png|center|middle]]
## Click Enable
##* [[File:Screen Shot 2022-06-01 at 9.47.26 AM.png|thumb|center|middle]]
##  Perform the same actions for Firefox Developer Edition: Beta
#* Please Note: Automated Betas are built at 21:00 UTC every Sunday, Tuesday, and Thursday as determined [https://hg.mozilla.org/releases/mozilla-beta/file/default/.cron.yml#l17 here].
# Make the Beta release notes public in Nucleus
#* Enable the Is Public checkbox and save
#** [[File:Screen Shot 2022-06-01 at 9.49.18 AM.png|thumb|center]]
# Share a link to the Beta release notes and the release notes draft document in [https://mozilla.slack.com/archives/C9L102H6X #release-notes] Slack channel
#* See [https://mozilla.slack.com/archives/C9L102H6X/p1686065646980339 example]
# Email release-notes with a link to the draft document and the submission deadline.
#* See [https://groups.google.com/a/mozilla.com/g/release-notes/c/DC3HjL_GlEM example]
# Monitor for QA sign-off on desktop update testing
#* QA will post a message to the [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] channel in Slack when they complete update testing.
# Monitor for QA sign-off on Fenix/Focus build validation
#* Fenix build validation testing is tracked [https://mozilla-hub.atlassian.net/wiki/spaces/MTE/pages/21561505 here]
#* Focus build validation testing is tracked [https://mozilla-hub.atlassian.net/wiki/spaces/MTE/pages/21561496 here]
#* Please Note: Build Validation sign-off is usually provided the day after Fenix/Focus builds are produced.
#* Focus and Fenix QA sign-off are sent via [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] Slack Channel
#* Once QA has signed off, roll out Fenix to the production track at 25% in Google Play
#** See [https://play.google.com/console/u/0/developers/7083182635971239206/app/4972447553788559254/releases/overview Firefox for Android Beta]
#* Once QA has signed off, roll out Focus to the Closed testing - Foxfooding track at 25% in Google Play
#** See [https://play.google.com/console/u/0/developers/7083182635971239206/app/4972137837611309386/releases/overview Firefox Focus (Beta for Testers)]
# 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 following beta_version is correct:
#* If this is incorrect, contact the RelEng on duty via the [https://matrix.to/#/#releaseduty:mozilla.org #release-duty] channel in Matrix.


There is also an added triage step during Beta - monitoring the “missed uplifts” email or queries to find issues fixed in Nightly but that still affect Beta. The release owner should check these issues to assess whether uplift is a good idea. If not, then the issue should be marked wontfix for Beta.
==The following tasks need to be performed daily during the Beta cycle==
# Monitor '''Uplift Requests'''
#* [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&o1=substring&f1=flagtypes.name&v1=approval-mozilla-beta%3F&title=Uplift%20requests&list_id=15920014 Example Filter] and [https://phabricator.services.mozilla.com/dashboard/view/108/ Phabricator Dashboard]
#* Accept or reject the beta uplift requests.
#* See [https://wiki.mozilla.org/Release_Management/Uplift_rules Uplift Rules] for guidelines
#* Please Note: During the RC week, also monitor release uplift requests.
#* Please Note: When pushing uplifts be conscious of timing around the [https://hg.mozilla.org/releases/mozilla-beta/file/default/.cron.yml#l17 automated beta builds]. Pushing an uplift will trigger CI, the automated beta build will not trigger until the CI completes.
#* Please Note: If an uplift contains string changes, then l10n approval is required and the commit message must end with l10n=''approver_name''. Add a ni on the bug for approval before taking the uplift.
# Monitor '''Pending tracking-firefoxXX requests'''
#* [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&o1=equals&v1=%3F&f1=cf_tracking_firefox93&title=tracking%3F%20for%2093&list_id=15918777 Example Filter]
#* Ensure that the tickets are progressing, and follow up as required.
# Monitor '''Open tracking-firefoxXX+ and blocking bugs'''
#* [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&o1=anywordssubstr&v1=%2B%2Cblocking&f3=resolution&o3=nowordssubstr&v3=INVALID%2CWORKSFORME%2CDUPLICATE&o2=nowordssubstr&v2=fixed%2Cwontfix%2Cdisabled%2Cverified&f1=cf_tracking_firefox93&f2=cf_status_firefox93&title=tracking%2B%20not%20fixed Example Filter]
#* Ensure that the tickets are progressing, and follow up as required.
# Monitor '''Newly-filed regression bugs'''
#* New regressions bugs can be found [https://bugdash.moz.tools/#tab.reo here]
#* Review with the REO - ensure that new tickets are prioritized and ensure that carry-over tickets are still on the team’s radar
# Monitor '''stability rates and reported crash spikes'''
#* Leverage the automated emails, monitor top crashes in [https://crash-stats.mozilla.org/ crash-stats], and monitor [https://mozilla.cloud.looker.com/dashboards/918?Channel=beta&OS+Name=&Ten+Percent+Sample=Yes Stability & Release Monitoring]
#* Ensure that there are tickets tracking issues with stability rates and crash spikes
# Monitor the '''Release Notes requests''' for Beta Tickets.
#* [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&f1=cf_tracking_firefox_relnote&o1=equals&v1=%3F&f2=cf_status_firefox97&o2=anywords&v2=affected%2Cfixed%2Cverified%2Cfix-optional&f3=cf_status_firefox97&o3=notsubstring&v3=disabled&title=Release%20Note%20Requests&list_id=15929759 Example Filter]
#* Check through tickets in the release that are tagged for release notes. Review and add these notes to the Beta Release Notes in Nucleus.


== Release Tasks ==
==The following tasks need to be performed for each beta build (Monday, Wednesday, Friday) during the Beta cycle==


To ship a release, a series of steps must be taken with various roles representing multiple teams expected to contribute. In the Release Process spreadsheet, the Beta Checklist template tab should be duplicated for each new release for proper tracking. After a release is shipped, the tab can be hidden in order to minimize clutter.
Please Note: The Beta build pipeline is also monitored by the Sheriffs, if there is an intermittent test failure they will rerun the failed job. If there is a permanent failure or an issue in the build infrastructure, then it may require canceling the build. Discuss in the [https://chat.mozilla.org/#/room/#releaseduty:mozilla.org #releaseduty] Matrix channel. If the decision is made to cancel, then view the pending release in [https://shipit.mozilla-releng.net/ ship-it] and click cancel. To create a new build, follow the same steps as outlined in One Time - Start of Beta Cycle to produce build 2 of the current beta release.


* '''Review tracking-firefoxXX+ bugs and approval requests.''' As noted above, regular triage of tracking+ bugs and uplift approval requests must be performed. Approval requests can be viewed via the [https://bugzilla.mozilla.org/page.cgi?id=release_tracking_report.html Release Tracking Report] on Bugzilla.
# Create a tab in the release tracking sheet “xxx.0bx”
* '''Verify all approved bugs landed on mozilla-beta.''' After approving patches for uplift, they must be pushed to the [https://hg.mozilla.org/releases/mozilla-beta mozilla-beta] repository. This task can be performed by the [https://wiki.mozilla.org/Sheriffing Tree Sheriffs] (#sheriffs on IRC) or by the release manager themselves depending on their comfort level. The longer-term goal is to automate the process.
#* Use the relevant beta macro
* '''Set up builds in ship-it (Desktop, DevEdition, Fennec).''' [https://shipit.mozilla-releng.net/ Ship-it] is the tool used for scheduling the release process, starting with the creation of the builds (picking a revision, verifying the version number, etc) and the eventual pushing of those builds to the release mirrors and website. '''Access to ship-it requires being connected to the Mozilla VPN.''' When automated beta builds are enabled, this happens for Firefox and DevEdition without human action at 04:00 UTC on Mondays, Wednesdays and Fridays.
#* Please note: After all the beta steps are complete, the tab can be hidden in order to minimize clutter.
[[Image:RelMan Process Ship-It v2 1.png|600px|center|middle]]
# Review tracking-firefoxXX+ bugs and approval requests.
[[Image:RelMan Process Ship-It v2 2.png|450px|center|middle]]
#* This step is performed as part of the daily activities, tracked in the checklist for confirmation.
# Verify all approved bugs landed on mozilla-beta.
#* This step is performed as part of the daily activities, tracked in the checklist for confirmation.
# Ensure the Firefox iOS build is available in Testflight
#* [https://appstoreconnect.apple.com/apps/1073219424/testflight Firefox Beta TestFlight]
#* If the build is not pushed then check the build status in the [https://app.bitrise.io/app/6c06d3a40422d10f?workflow=workflow-SPM_Deploy_Prod_Beta BitRise pipeline]
# Confirm the Desktop and DevEdition builds have started.
#* Taskcluster email: “[desktop] Build of firefox xx.0bx build 1”
#* Taskcluster email: “[desktop] Build of devedition xx.0bx build 1”
#* Please Note: The automated beta builds schedule is determined [https://hg.mozilla.org/releases/mozilla-beta/file/default/.cron.yml#l17 here].
# Confirm notification sent when the Desktop and DevEdition builds finish.
#* Taskcluster email: “firefox xx.0bx build1/mozilla-beta is in the candidates directory”
#* Taskcluster email: “devedition xx.0bx build1/mozilla-beta is in the candidates directory”
# Create Firefox Android (AC, Fenix, Focus) release in Ship-It
# Start Firefox Android (AC, Fenix, Focus) release in Ship-It via Promote
# Confirm notification sent when the Firefox Android (AC, Fenix, Focus) builds finish
#* Taskcluster email: “firefox-android xx.0bx build1/mozilla-beta is in the candidates directory"
# Push Firefox Android (AC, Fenix, Focus) release in Ship-It via Push
# Confirm notification sent when the Firefox Android (AC, Fenix, Focus) push finishes
#* Focus/Fenix XXXb#-build1 has been pushed to the closed testing track on Google Play
# Ship Firefox Android (AC, Fenix, Focus) from Ship-It via Ship
# Promote Fenix to the Production track @ 50% b2 and @ 99% b3+
#* See [https://play.google.com/console/u/0/developers/7083182635971239206/app/4972447553788559254/releases/overview Firefox for Android Beta]
# Promote Android Focus to the closed testing track (Foxfooding) @ 50% b2 and @ 99% b3+
#* See [https://play.google.com/console/u/0/developers/7083182635971239206/app/4972137837611309386/releases/overviewFirefox Focus (Beta for Testers)]
# Confirm notification sent when the Desktop and DevEditon CDN push finishes.
#* Taskcluster email: “firefox xx.0bx build1/mozilla-beta has been pushed to cdntest”
#* Taskcluster email: “devedition xx.0bx build1/mozilla-beta has been pushed to cdntest”
# Verify that the Desktop and DevEdition Balrog rule changes are live and correctly set.
#* View the [https://balrog.services.mozilla.com/rules?product=Firefox&channel=beta Balrog Rules for Firefox Beta]
#** Verify that the Background rate for Firefox-xx.0bx-build1 is:
#** 50 for Beta 2
#** 100 for Beta 3 and greater
#* View the [https://balrog.services.mozilla.com/rules?product=Firefox&channel=aurora Balrog Rules for Aurora (DevEdition)]
#** Verify that the Background rate for Devedition-xx.0b1-buildx is 100.
# Monitor for QA sign-off on Desktop and DevEdition build validation for both update/functional testing.
#* QA will post a message to the [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] channel in Slack when they complete update testing and another message when they complete functional testing. 
#* Build validation testing is tracked [https://mozilla-hub.atlassian.net/wiki/spaces/FDPDT/pages/10617980 here]
# Monitor for QA sign-off on Fenix/Focus build validation before proceeding with bumping the Fenix/Focus rollout.
#* Focus and Fenix 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 Fenix/Focus builds are produced. If the sign-off is yellow/red, then follow-up on the [https://mozilla.slack.com/archives/C016PEDKY90 #mobile-android-team] Slack channel. Ensure a plan is in place or a decision is made to block/proceed with the release.
#* For b3+ once QA has signed off, roll out Fenix to the production track in Google Play to 100%.
#** Reply to the QA sign-off Slack message and include the rollout percentage.
#* 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.
# 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.


Due to limited QA resources and low rate of changes, Fennec betas are typically only created once a week. However, it is within the release manager’s discretion to create an extra Fennec beta build when warranted. In that situation, QA must be informed of the coming build so they can plan accordingly.
==As available, the following items should be monitored during the Beta cycle==
* '''Treeherder tests green/starred.''' [https://treeherder.mozilla.org/#/jobs?repo=mozilla-beta Treeherder] is the primary dashboard for monitoring the results of builds and tests. It is the responsibility of the sheriffs to monitor the Beta repository and ensure that tests are passing, though the release manager can also keep an eye on things. '''Builds should not be started until CI has passed to avoid shipping defective code to end users.'''
# QA shares beta testing and pre-release testing reports via email. Review the test reports for the release. For example:
* '''Start builds from ship-it.''' Once CI results are good, the process of generating the builds (go-to-build) is started by clicking the '''promote''' button for each release.  This is only necessary for Fennec and for manual desktop builds.
#* If there are any red or yellow reports, review the recommendations/plan and the bugs mentioned in the report. For example:
[[Image:RelMan Process Ship-It v2 3.png|600px|center|middle]]
#** Track the bug reported as blockers.
#** If there is no clear plan to address the report, follow up to ensure that engineering is reviewing.
#* If QA mentions the feature is behind a pref verify that this is expected.
# Phabricator patches for remote-settings updates are generated automatically. Typically this is every Monday and Thursday. These patches must be included in the beta uplifts.
#* Monitor email notifications sent by Phabricator: “No Bug, mozilla-beta repo-update HSTS HPKP remote-settings tld-suffixes”
#* Review the patch.
#* Commit the patch to beta via the [https://moz-conduit.readthedocs.io/en/latest/phabricator-user.html# moz-phab tool]
#** ''moz-phab patch <patch id> --no-bookmark --apply-to here''
#* Edit the commit message to add the approval.
# Use the Mana [https://mozilla-hub.atlassian.net/wiki/spaces/FIREFOX/pages/277284167/Beta+Quality+Metrics Beta Quality Metrics Page] to review the Beta Quality Metrics.
#* The data is embedded from this [https://docs.google.com/spreadsheets/d/1Ev8HSxyAQFB5eLX98r6hmDR7FFNViJD4JWnqxiEtx48/edit#gid=2061648925 wiki page].
#* The data is currently added manually.
#** The data is stored automatically every day in bugzilla using [https://bugzilla.mozilla.org/chart.cgi?category=-All-&datefrom=2023-08-16&dateto=2023-08-30&label0=1%20function-open-blockers&label1=%202%20function-unfixed-new-regressions&label2=3%20function-open-carryover-regressions%20&label3=4%20function-severe-carryover-regression&label4=5%20stability-new-top-crashers&label5=6%20stability-tracked-crashers&label6=7%20Perf-bugs-affecting-beta&label7=8%20sec-all-high-crit-affecting-beta%20&line0=7748&line1=7779&line2=7780&line3=7765&line4=7766&line5=7747&line6=7754&line7=7756&name=7756&subcategory=-All-&action=assemble New Charts]
#** To extract the data, run the report by adding the next needed dates and then exporting to csv. (The queries are numbered to make this step easier)
#** This is then manually pasted into the 'Data from Queries' tab.
#** Please Note: the goal is to automate this.
#* Take a look at the metric/charts over time to ensure the value is stable.  
#** Please Note: Ensure the data is updated prior to the Tuesday channel meeting.
# Update the Weekly Digest document, as requested on the [https://mozilla.slack.com/archives/C01TTHGPSKB #fx-weekly-digest] Slack channel.
#* Update the Release Milestones (Details) section to add Status (On Track, Delayed), Ship Date, information on the current beta release for both Desktop/DeveEdition and Fenix/Focus, information on where we are in the Beta cycle for example when coming up to end of early beta.
#* Review the Release Milestones section dates and update the status.
#* Update the Quality Metrics section to add information on the number of outstanding regressions, if there are any release blockers, and an overview on the trend of the Beta Quality Metrics metrics.


* '''Confirm builds have started.''' Emails will be sent to the release-signoff mailing list once builds have started and a notification will be posted in the #releaseduty IRC channel.
==The following needs to be performed at the End of Early Beta==
* '''Confirm notification sent when builds finish.''' An automated email will be sent to the release-signoff mailing lists once the release promotion process is finished. Example: the email has the subject line "firefox 67.0b19 build1/mozilla-beta is in the [https://ftp.mozilla.org/pub/firefox/candidates/ candidates directory]". 
Please Note: This is performed on the Friday at the midday point of the beta cycle, see the Releases Scheduling google calendar. This is typically after beta 6 has been released. This should be done in its own push and before pushing any other uplifts to beta.
* '''Schedule push to CDN.''' After the initial builds are completed, they will be located in the [http://ftp.mozilla.org/pub/firefox/candidates/ /candidates] directory of the main Mozilla FTP server. Prior to widespread shipping, the builds must also be pushed out to CDN mirrors. Because it is difficult and time-consuming to un-ship releases once they have been pushed to CDNs, this step must be performed '''after''' it is confirmed that the created builds are satisfactory. For Beta releases, this should wait until after the update-verify tasks have passed to ensure the integrity of the partial updates created during the release promotion process. The CDN push is started from ship-it by clicking the '''push''' button for each release. This is typically the final step for the go-to-build day itself.  This is only necessary for manual desktop builds.
# Open build/defines.sh
[[Image:RelMan Process Ship-It v2 4.png|600px|center|middle]] 
# Clear the EARLY_BETA_OR_EARLIER flag:
#* EARLY_BETA_OR_EARLIER=1 to EARLY_BETA_OR_EARLIER=
# Commit the changes:
#* hg commit -m "No bug - post beta 6, unset EARLY_BETA_OR_EARLIER. a=me"
# Push the changes to beta.


* '''Confirm notification sent when CDN push finishes.''' An automated email will be sent to the release-signoff mailing lists once the push to cdntest has finished successfully. Sample email subject line: "firefox 67.0b19 build1/mozilla-beta has been pushed to cdntest".
==The following needs to be performed at the end of the Beta Cycle==
* '''Push Desktop/DevEdition to Beta.''' The release is scheduled in ship-it by pushing the '''ship''' button for each release.
# Disable automated beta builds in Ship-it.
[[Image:RelMan Process Ship-It v2 5.png|600px|center|middle]]
# Disable the firefox-ios firefox-ios SPM_Deploy_Prod_Beta BitRise scheduled workflow.
#* Expand the Scheduled section in the [https://app.bitrise.io/app/6c06d3a40422d10f firefox-ios on BitRise]
#* Pause the schedule for the SPM_Deploy_Prod_Beta that runs "Every Tue, Thu, Sun @ 20:00"
# 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.


* '''Signoff on scheduled rule change in Balrog.''' Once the push to Beta is completed, the new updates rules will need signing off in Balrog (where all update rules are managed). Sample email subject from Taskcluster: "firefox 67.0b19 build1/mozilla-beta updates are ready for signoff in Balrog!". '''Access to Balrog requires being connected to the Mozilla VPN.''' Note that Desktop Firefox releases are signed off on the '''Beta '''channel and DevEdition releases are signed off on the '''Aurora '''channel. Also confirm in the #releaseduty IRC channel that someone from RelEng is available to sign off on the rule change. Also verify that the scheduled rollout % is consistent with what is specified in the milestones document.
=RC Checklist=
[[Image:RelMan Process Balrog 1.png|600px|center|middle]]


* '''Verify that the Balrog rule changes are live.''' In order to verify that the rule changes have taken proper effect, refresh the page to confirm that the changes are no longer showing as pending.
Once a release moves to the Release cycle, preparations for the release candidates begin. Until go-live, the daily tasks are similar to the beta cycle in terms of monitoring and if needed create a new release candidate.
[[Image:RelMan Process Balrog 2.png|600px|center|middle]]


* '''QA manual testing signoff for Fennec.''' Ask in the #qa-coordination Slack channel if there are questions about progress.
==The following tasks need to be performed at the start of RC week (week before go-live) for Desktop/Android ==
* '''Push Fennec to Play Store.''' This is done within ship-it.
# Review tracking-firefoxXXX+ bugs and approval requests
[[Image:RelMan Process Ship-It v2 6.png|600px|center|middle]]
#* Verify that all approved uplift requests were uplifted to beta
# Numbered list item
# Verify all approved bugs landed on mozilla-release
* '''Verify that new release is live on Google Play at desired rollout %.'''
#* Sync with RelEng to merge Beta to Release.
[[Image:RelMan Process Google Play 1.png|600px|center|middle]]
#** Send an email with details of the merge.
[[Image:RelMan Process Google Play 2.png|600px|center|middle]]
#** Include both [https://groups.google.com/a/mozilla.org/g/release-drivers release-drivers] and [https://groups.google.com/a/mozilla.org/g/release-signoff release sign-off]
[[Image:RelMan Process Google Play 3.png|600px|center|middle]]
#** [https://groups.google.com/a/mozilla.org/g/release-drivers/c/kCYe68Gglng Example email]
[[Image:RelMan Process Google Play 4.png|600px|center|middle]]
# Once the merge is complete, verify that the [https://treeherder.mozilla.org/jobs?repo=mozilla-release Treeherder] tests green/starred
# Set up Desktop build in [https://shipit.mozilla-releng.net/ Ship-It].
## Connect to the VPN.
## Log into [https://shipit.mozilla-releng.net/ Ship-It].
## Click New Release.
##* [[File:shit-it_new_release.png|600px|center|middle]]
## Complete as follows and click Create Release:
##* [[File:Screen Shot 2022-06-07 at 9.26.10 AM.png|thumb|center]]
##* Please note: Revision should be the tip. The Partial updates field is automatic.
## Click Submit.
##* [[File:Screen Shot 2022-06-07 at 9.27.24 AM.png|thumb|center]]
# Start the Desktop build from [https://shipit.mozilla-releng.net/ Ship-It] via Promote RC.
#* [[File:Screenshot 2022-06-07 at 09-28-44 RelMan Activities Overview.png|thumb|center]]
#* Click the Schedule button.
#** [[File:Screenshot 2022-06-07 at 09-31-56 RelMan Activities Overview.png|thumb|center]]
# Confirm Desktop build has started.
#* Taskcluster email: “[desktop] Build of firefox xx.0 build 1”
# Set up Firefox Android (AC, Fenix, Focus) release in Ship-It.
#* Follow the same steps as creating a beta build.
# Start Firefox Android (AC, Fenix, Focus) release in Ship-It via Promote.
# Confirm notification sent when Firefox Android builds finish.
# Push Firefox Android (AC, Fenix, Focus) release in Ship-It via Push.
# Confirm notification sent when the Firefox Android (AC, Fenix, Focus) push finishes
# 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]]
#* Click the Schedule button.
#** [[File:Screenshot 2022-06-07 at 10-28-30 RelMan Activities Overview.png|thumb|center]]
# Verify that the Balrog rule changes are live.
## View the [https://balrog.services.mozilla.com/rules?product=Firefox&channel=beta Balrog Rules for Firefox Beta].
## Verify that the Background Rate for Firefox-xx.0-build1 is 100.
##* [[File:Screenshot 2022-06-07 at 10-39-15 RelMan Activities Overview.png|thumb|center]]
##* Please Note: The Fallback Mapping is the previous beta release.
# Email release-signoff with a confirmation that updates are live.
#* See [https://groups.google.com/a/mozilla.org/g/release-signoff/c/notmW_lx2kE Example]
# Verify the package in the Microsoft Store submission is the correct version.
#* Please Note: The submission is automatically created as part of the RC build pipeline.
#* Verify that correct package was uploaded, the version displayed in the submission matches the release version
# Submit the Desktop RC build to the Microsoft Store for review
#* Please Note: The Microsoft Store review can take several days, it’s recommended to submit for review at the end of RC week. If there is a blocker found later, you can always resubmit.
## Navigate to the [https://partner.microsoft.com/en-us/dashboard/home Microsoft Partner Center]
## Select Firefox from Windows & Xbox > Overview
## Select the pending submission
## In '''Packages''' enable gradual rollout and set to 25%
##* Ensure to enable the option to provide the newest package when users manually check for updates.
## In '''Submission Options''' set to Automatically Publish on the go-live date and time
## 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.


* '''Email release-signoff with confirmation that updates are live.''' Be sure to note the rollout % as well.
* '''QA manual testing signoff for Desktop/DevEdition.''' Ask in the #qa-coordination Slack channel if there are questions about progress.
* '''Update tests on Aurora & Beta.''' Final verification by QA that updates are working on the live update channels.


== Summary of email notifications for QA/relman ==
==The following tasks need to be performed at the start of RC week (week before go-live) for iOS ==
Here is an example of the subject lines of emails to expect on release-signoff, and what they mean.


* 1. [desktop] Build of firefox 67.0b16 build 2
'''Firefox/Focus/Klar iOS'''
: Sent when relman sets up a new build in ship-it and starts the "build promotion" process. Several hours later (4-7 or so) builds will start to appear in the [https://ftp.mozilla.org/pub/firefox/candidates/ candidates directory]. Be sure to note the [https://ftp.mozilla.org/pub/firefox/candidates/67.0b16-candidates/build2/ build number] and test the right builds.
# Check if there are any missing backports from the previous release.
* 2. firefox 67.0b16 build2/mozilla-beta is in the candidates directory
#* Ensure that any backports from the dot releases on the previous version were also backported.
: Sent when all the builds are complete. These builds can be used for manual/functional testing.
# Check if there are any pending PRs for the firefox-ios release branch.
* 3. firefox 67.0b16 build2/mozilla-beta has been pushed to cdntest
#* [https://github.com/mozilla-mobile/firefox-ios/pulls firefox-ios]
: When this email is sent, the builds are ready for update testing on the beta-cdntest channel.  
#* Example Filter: ''is:pr is:open base:release/v115''
* 4. firefox 67.0b16 build2/mozilla-beta updates are ready for signoff in Balrog!
# Sync with the iOS team for Hard Freeze.
: This is an automated notice, for the release managers, that releng has set up the update rules in [[Balrog]] (a control panel for the update server).  
#* Ask on [https://mozilla.slack.com/archives/C03PKCHHSSD #firefox-ios-releases] Slack channel
* 5. [desktop] Please push firefox and devedition 67.0b16 to beta and aurora, respectively
#* See [https://mozilla.slack.com/archives/C03PKCHHSSD/p1687795018726399 Example]
: This email is sent by a QA lead, meant as signoff for manual and update testing. It alerts relman to go do that final signoff in Balrog.
# Run the Firefox:import translations (strings sync) action, set the target branch to the release branch (ex: ''release/v118'').
* 6. Reply to the above "Please push" email
#* See documentation [https://github.com/mozilla-mobile/firefox-ios/wiki/Localization-Process#github-action-import-process here].
: This is sent manually by release management, to acknowledge that the release is now live. It's now ready for update testing on the beta channel.  
# Trigger the firefox-ios SPM_Deploy_Prod_Beta bitrise build workflow for the release branch.
* 7. [desktop] Firefox 67.0b16 - Updates on Beta Channel signed off by QA
# Trigger the firefox-ios focus_Release bitrise build workflow for the release branch.
: This email is sent by a QA lead, to report the results for update testing after the release is live.
# 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]


= RC Uplifts =
==As available, the following should be monitored/performed during RC week for Desktop/Android==
# Phabricator patches for remote-settings updates are generated automatically. Typically this is every Monday and Thursday. These patches must be included in release/esr uplifts.
#* Monitor email notifications sent by Phabricator: “No Bug, mozilla-release repo-update HSTS HPKP remote-settings tld-suffixes”/“No Bug, mozilla-esr91 repo-update HSTS HPKP remote-settings tld-suffixes”
#* Review the patch.
#* Commit the patch to release/esr via the moz-phab tool
#** ''moz-phab patch <patch id> --no-bookmark --apply-to here''
#* Edit the commit message to add the approval.
# 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 Track, Delayed), Ship Date.
#* Review the Release Milestones section dates and update the status.
# Verify that QA have signed off manual testing for Desktop
#* QA will post a message to the [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] Slack channel when they complete update testing and another message when they complete functional testing. 
#* Build validation testing is tracked [https://mana.mozilla.org/wiki/pages/viewpage.action?pageId=162277457 here]
# Verify that QA have signed off update tests on Beta.
#* QA will post a message to the [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] Slack channel when they complete update testing and another message when they complete functional testing. 
# Verify that QA have signed off update tests on release-localtest
#* QA will post a message to the [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] Slack channel when they complete update testing and another message when they complete functional testing. 
# Monitor for QA sign-off on Fenix/Focus build validation before proceeding with Steps 7 to 12.
#* Please Note: Build Validation sign-off is usually provided the day after Fenix/Focus builds are produced.
#* Focus and Fenix QA sign-off are sent via [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] Slack Channel.
# Roll out Fenix to the Production track at 5% in google play
#* See [https://play.google.com/console/u/0/developers/7083182635971239206/app/4972519468758466290/app-dashboard?timespan=thirtyDays Firefox Fast & Private Browser]
#* Reply to the QA sign-off slack message
#** “Thanks, pushed to Production at 5% rollout.”
# Roll out Focus/Klar to the Production track at 5% and Open Testing track at 100% in google play
#* See [https://play.google.com/console/u/0/developers/7083182635971239206/app/4972436558672701695/app-dashboard?timespan=thirtyDays Firefox Focus: No Fuss Browser] and [https://play.google.com/console/u/0/developers/7083182635971239206/app/4974004938716340515/app-dashboard?timespan=thirtyDays Firefox Klar Browser]
#* Reply to the QA sign-off slack message
#** “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
#* Upload ARM32 and ARM64 APKs (armeabi-v7a/arm64-v8a)
#** The APKs are available as an artifact in the signing-apk job from the Promote graph.
#* Set the rollout rate to 5%
#* 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


This tab is for tracking bugs which are being tracked for possible uplift to the mozilla-release repository for RC builds. The primary objectives are:
==As available, the following should be monitored/performed during RC week for iOS==
* Track whether there are any drivers for a respin of the RC builds during RC week.
'''Focus iOS'''
* Assess whether Desktop, Fennec, or both are affected by the issues noted.
# Monitor for QA sign-off on Focus iOS build validation before proceeding with Steps 2 and 3.
* Verify that all drivers have had an explicit decision made.
#* 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]


= RC Checklist =
'''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]


The RC checklist, like the Beta checklist, should be cloned for each RC build created (RC1, RC2, etc). Most of the steps for the RC checklist are the same as the Beta checklist, but with a few notable differences as discussed below.
'''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


* In ship-it, click "release" to set up the build. The release date/ETA should be 1pm UTC (6am Pacific) for the projected release date unless otherwise arranged.  Build 1 will be your RC1. If you need an RC2, then cancel build 1 and start RC2.
=RC Uplifts=
** Sample partials (for 66.0 RC): 65.0.2build1,65.0.1build2,65.0build2,64.0.2build1,66.0b14build1
* '''Update test on beta-cdntest; QA will email release-signoff to push Desktop to Beta at 100%.''' Relman can then click "push RC" in ship-it. (RC builds can be pushed to Beta users once they receive sign-off from QA.) The ''beta'' and ''beta-cdntest'' channels download RC builds from the `candidates` directory, so this happens prior to pushing to ''releases'' (aka CDNs). Pushing to release users is covered by the Go-Live Checklist elsewhere.
* '''Verify rollout % of current release in Play Store.''' If the current latest version is on a staged rollout, pushing a newer release to the Play Store with a 5% staged rollout will overwrite the previous staged rollout and the fallback version may not be the expected one. This step is to verify that users not getting the 5% RC rollout will still get the latest stable release instead.
* '''Push to Play Store at 5%.''' Because of how the Play Store works, we are unable to ship Fennec RC builds to Beta users prior to release like we do for Desktop Firefox builds. In order to get pre-release testing coverage, Fennec RC builds are therefore pushed '''release''' users on the Play Store at 5% once they receive QA sign-off.
* '''product-details won't change''' You'll still see the last beta build in product details and on the downloads page; however, users already on beta will get the RC in updates.
* '''WNP testing on release-localtest.''' RC week is when testing of the What’s New Page for the new release commences. This is done on the release-localtest channel by QA and a sign-off email will be sent once testing has been completed. It’s not necessary for every RC build to go through this testing as long as there has been a successful sign-off by the end of RC week.


RC week is also the time to finalize release notes and begin gathering feedback from the #release-notes Slack channel.
This tab is for tracking bugs that are being tracked for possible uplift to the mozilla-release repository for RC builds. The primary objectives are:
* Track whether there are any drivers for a respin of the RC builds during RC week.
* Assess whether Desktop, Mobile, or both are affected by the issues noted.
* Verify that all drivers have had an explicit decision made.


= WNP Checklist =
==The following tasks need to be performed during RC week (the week before go-live)==
# Monitor Uplift Requests for Beta/Release
#* For [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&o1=substring&f1=flagtypes.name&v1=approval-mozilla-beta%3F&title=Uplift%20requests&list_id=15920014 Example]
#* Track if there are any drivers for an RC respin during RC week.
#* Assess whether Desktop, Mobile, or both are affected by the issues noted.
#* Verify that all drivers have had an explicit decision made.
# If a new RC is required, for example, a release blocker was identified, then create a new RC checklist tab and perform the same steps as for the initial RC but with the following exceptions:
## Cancel the previous RC build in ship-it
## Delete the Microsoft Store submission before creating a new RC build
##* Please Note: The RC build will fail if trying to create an MSIX submission when there is already a pending submission
##* To cancel and delete the pending submission you may first need to change it from publishing automatically to publishing manually
# Determine if a new RC build impacts Android.
#* If a new Android build is not required, then there is no impact on the Fenix/Focus builds and no action is required.
#* If a new Android build is required, then repeat the RC steps with the following exceptions:
#** Cancel the previous Firefox Android (AC, Focus) build in Ship-It.
#** Cancel the previous Fenix build in Ship-It.
#** If Fenix/Focus/Klar already rolled out - Replace the 5% rollout of Fenix/Focus/Klar in Google Play and the Samsung Store.


The What’s New Page has been something which has suffered from coordination problems in the past, since it requires contributions from Marketing, Localization, Web Development, and QA. A meeting should be held a few weeks prior to Go-Live to establish a timetable for the steps listed in the checklist.


= Go-Live Checklist =
= Go-Live Checklist =


Similar to the Beta and RC checklists, there are many common steps which have been previously covered above. Items specific to Go-Live are noted below.
Once RC week is over and the release candidate is ready to go-live, preparations for go-live begin. After go-live, monitoring continues and if needed preparing for potential dot releases.


== Prior To Launch Day ==
==The following tasks need to be performed prior to go-live==
* '''Gather feedback for release notes.''' As noted in the RC Checklist section, the release notes will go throw review and revision by the UX and Marketing teams. Once the draft is ready to be shared, do so in the #release-notes Slack channel and then incorporate the revisions provided once ready.
# Ensure that feedback for release notes was gathered.
* '''Request Legal signoff on relnotes.''' This is usually requested by the UX team. Confirm that it was requested and that signoff was granted (must be confirmed prior to launch day).
#* Monitor the [https://mozilla.slack.com/archives/C9L102H6X #release-notes] Slack channel
* '''Check for crash spikes with RC builds.''' We must verify that there are no obvious crash spikes in the pre-release data from the RC builds.
#* For more information on the release notes doc process see [https://wiki.mozilla.org/Release_Management/Release_Notes here]
* '''Schedule push to CDN (ship-it).''' This should be done on the day prior to Go-Live so that the release is staged on the mirrors and verified working prior to launch day.
# Run the new-contributor.py script and add to the release notes
#* For more information on the release notes doc process see [https://wiki.mozilla.org/Release_Management/Release_Notes here]
# Release notes RelMan peer review.
#* For more information on the release notes doc process see [https://wiki.mozilla.org/Release_Management/Release_Notes here]
# Incorporate feedback into draft release notes.
#* Add a release in Nucleus for [https://nucleus.mozilla.org/admin/rna/release/1013/change/ Firefox], [https://nucleus.mozilla.org/admin/rna/release/1012/change/ Firefox for Android], [https://nucleus.mozilla.org/admin/rna/release/1011/change/ Firefox for iOS]
#* Duplicate the previous release, edit the version, dates, and remove the previous release notes. For example Firefox, Firefox for Android, Firefox for iOS
#* Create release notes entries as outlined in the document shared on the [https://mozilla.slack.com/archives/C9L102H6X #release-notes] Slack channel
#* Please Note: If images are included with the release note then create a PR for Bedrock, [https://github.com/mozilla/bedrock/pull/11700 example PR]
#* Share a link to the staged release notes on #release-notes
#** [https://www-dev.allizom.org/en-US/firefox/99.0/releasenotes/ Example]
# Ensure that Legal signoff on release notes was requested by UX/Product
#* Please Note: This step is not always required, if the release notes are not atypical
# Review tracking-firefoxXX+ bugs and confirm there are no blocking issues
# Check for crash spikes with RC builds
# Schedule push to CDN from [https://shipit.mozilla-releng.net/ Ship-It]
#* Click Push
#* [[File:Screenshot 2022-06-07 at 10-45-18 RelMan Activities Overview.png|thumb|center]]
#* Click Schedule
#* [[File:Screenshot 2022-06-07 at 10-47-14 RelMan Activities Overview.png|thumb|center]]
# Ensure the automated email was sent after the push to release-cdntest
#* Taskcluster email: “firefox xx.0 buildx/mozilla-release has been pushed to cdntest.
# Ensure QA have performed the Update test on release-cdntest
#* QA will post a message to the [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] channel in Slack when they complete update testing and another message when they complete functional testing. 
#* Build validation testing is tracked [https://mana.mozilla.org/wiki/pages/viewpage.action?pageId=162277457 here]
# Ensure Legal have signed off on release notes
#* Please Note: This is only required based on the outcome of Step 3.
# Ensure that the security advisories are ready
#* Check with the security team on the [https://mozilla.slack.com/archives/C495VS94P #security] Slack channel


== Launch Day ==
==The following tasks need to be performed on go-live day==
* '''Schedule push to release at 25% (ship-it).''' Go-Live time is usually 6am PT on launch day, but this can be done ahead of time with a scheduled rule change in Balrog.
# Schedule push to release at 25% from [https://shipit.mozilla-releng.net/ Ship-It]
* '''Make release notes live.''' There is a 15-20min lag between making the change in Nucleus and the live website picking up this change, so plan to do this 15-30min prior to go-live.
# Bump Fenix rollout rate in the play store to 25%
* '''Sign-off on scheduled rule change in Balrog.''' Assuming that the change is scheduled for 6am PT, this can be signed off ASAP to avoid unnecessary delays at go-live time.
#* See [https://play.google.com/console/u/0/developers/7083182635971239206/app/4972519468758466290/app-dashboard?timespan=thirtyDays Firefox Fast & Private Browser]
* '''Bump Fennec update rate to 25% in Play Store.''' Should have been at 5% previously.
# Bump Focus/Klar rollout rate in the play store to 25%
* '''Verify that new release is live on mozilla.org.''' Verify that download requests are pointing to the new version. This can probably be moved to the delivery dashboard.
#* See [https://play.google.com/console/u/0/developers/7083182635971239206/app/4972436558672701695/app-dashboard?timespan=thirtyDays Firefox Focus: No Fuss Browser] and [https://play.google.com/console/u/0/developers/7083182635971239206/app/4974004938716340515/app-dashboard?timespan=thirtyDays Firefox Klar Browser]
* '''Email release-drivers & release-signoff that updates are live at 25%.''' Once the release is confirmed to be live, send an email to release-signoff & release-drivers confirming for that audience that the release has been pushed. Also confirm the rollout %.
# Bump Fenix rollout rate in the [https://seller.samsungapps.com/application/main.as?contentId=000002975732&platform=&readOnly=Y#/cert/info Samsung Store]  to 25%
* '''Update tests on Release; WNP testing on Release.''' QA will send a sign-off email when this is completed.
# Bump Focus rollout rate in the [https://seller.samsungapps.com/application/main.as?contentId=000003397900&platform=&readOnly=Y#/cert/info Samsung Store]  to 25%
* '''Verify that the release notes are live.'''
# Ship Firefox Android (AC, Fenix, Focus) from Ship-It via Ship
* '''Verify versions in firefox_versions.json and mobile_versions.json.''' This can probably be moved into a step where we verify a number of things on the delivery dashboard.
# Verify that the [https://partner.microsoft.com/en-us/dashboard/products/9NZVDKPMR9RD/overview Microsoft Store] is published at 25% rollout
* '''[https://docs.google.com/document/d/14JRmsg4Evvc_vBaDN0Xb_-TI0igAyVhStkEYr5mi8n8/edit Security advisories go live.]''' Starting with 69 launch, release owner (from relman team) will own pushing the sec advisory live. This used to be handled by the security team post-launch.
# Make release notes live in [https://nucleus.mozilla.org/ Nucleus]
* Email announce list. Send an email confirming the new release, following the general form shown on the [https://wiki.mozilla.org/Release_Management/Release_Days#Release_day_2 release wiki page].
#* Please Note: There is a [https://www.mozilla.org/healthz-cron/ 15-30min] lag between making the change in Nucleus and the live website picking up this change, so plan to do this 15-30min prior to go-live.
* '''Schedule Desktop update rate to 0% in Balrog after 24 hours.''' It is recommended to do this on launch day to avoid forgetting about it the day after. This change can be made in Balrog by either RelEng or RelMan, though both will need to sign off on the rule change afterwards.
# Upload security advisories to GitHub
# Signoff on scheduled rule change in [https://balrog.services.mozilla.com/rules?product=Firefox&channel=release Balrog]
#* Set the rollout percentage to 25%
#* Sync with release management for another team member to signoff on the rule change.
# Send Slack message to [https://mozilla.slack.com/archives/C6HD6P4TF #release-coordination] to notify of the release
#* For example “Firefox Desktop 115.0, ESR 115.0.0, Fenix/Focus/Klar Android 115.0, and Firefox/Focus/Klar iOS 115.0 are live”
#* Include links to the release notes.
# Verify that the new release is live on [https://www.mozilla.org/firefox/all/ mozilla.org]
# Verify that the release notes are live [https://www.mozilla.org/en-US/firefox/releases/ here]
# Verify LATEST_FIREFOX_VERSION in [https://product-details.mozilla.org/1.0/firefox_versions.json firefox_versions.json]
# Verify that security advisories are live [https://www.mozilla.org/en-US/security/advisories/ here]
# Ship new Desktop release in Ubuntu Snap Store
#* 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
# Verify that the release is live on Flathub
#* The `release-flatpak-push-firefox` job runs as part of the ship graph and the publication is handled by Flathub.
#* https://flathub.org/api/v1/apps/org.mozilla.firefox contains the current release available on Flathub.
#* It can take up to 120 minutes for the release to publish on Flathub. If the release is not updated then reach out in the [https://matrix.to/#/#flatpaks:mozilla.org #flatpaks] Matrix channel.  
# Email release-drivers & release-signoff that updates are live at 25%
#* [https://groups.google.com/a/mozilla.org/g/release-drivers/c/BfKEJYATbDc Example Email]
# Ensure QA have performed the Update tests on Release
#* QA will post a message to the [https://mozilla.slack.com/archives/CAC9YSH3P #qa-coordination] Slack channel when they complete update testing and another message when they complete functional testing.
#* Build validation testing is tracked [https://mana.mozilla.org/wiki/pages/viewpage.action?pageId=162277457 here]
# Email announce list
#* [https://groups.google.com/a/mozilla.org/g/release-signoff/c/p8y16VBG7EI/m/Y3d2w6pXAwAJ Example Email]
# Schedule Desktop update rate to 0% in [https://balrog.services.mozilla.com/rules?product=Firefox&channel=release Balrog] after 24 hours.
# Signoff on scheduled rule change in Balrog.
#* Sync with release management for another team member to signoff on the rule change.


== Post-Launch ==
==The following tasks need to be performed 24 hours after go-live==
* '''(Launch Day +1) Verify Desktop update rate at 0% in Balrog.'''
# Verify Desktop update rate at 0% in [https://balrog.services.mozilla.com/rules?product=Firefox&channel=release Balrog]
* '''(Launch Day +1) Email release-signoff & release-drivers to confirm 0% throttling.''' Once updates are confirmed to be throttled, email release-signoff & release-drivers confirming that the change is live. This can be a reply-all to the previous push emails to keep the history in one thread.
# Email release-signoff & release-drivers to confirm 0% throttling.
* '''(Launch Day +2) Review release crash rates and incoming bugs for new blockers.''' There won’t be much new data yet two days after release, but any obvious crash spikes or critical regressions will likely be known.
#* Reply to the previous email from the go-live day.
* '''(Launch Day +2) Bump Desktop update rate to 100% in Balrog.''' If there are no known quality issues, full rollout to the Desktop release population can proceed. Change the rollout value in Balrog and ping in the #releaseduty IRC channel to get RelEng sign-off of the rule change.
#* [https://groups.google.com/a/mozilla.org/g/release-signoff/c/p8y16VBG7EI/m/dyJYXwamAwAJ Example Email]
* '''Email release-signoff & release-drivers to confirm full rollout.''' Once Desktop updates are bumped to 100%, email release-signoff & release-drivers to confirm. This can be a reply-all to the previous push emails to keep the history in one thread.
* '''Ship new Desktop release in Ubuntu Snap Store.''' This can be done once the Desktop update rate is bumped to 100%. [https://github.com/mozilla-releng/releasewarrior-2.0/blob/master/docs/release-promotion/desktop/ubuntu-snap.md Documentation] for managing Snap releases.  (The ESR snap should not need manual intervention - it is handled in release warrior automation.)


<div style="text-align:center;margin-left:0.5in;margin-right:0in;"><screenshot here></div>
==The following tasks need to be performed 48 hours after go-live==
# Review release crash rates and incoming bugs for new blockers.
# Bump Desktop update rate to 100% in [https://balrog.services.mozilla.com/rules?product=Firefox&channel=release Balrog].
# Signoff on scheduled rule change in Balrog.
#* Sync with release management for another team member to signoff on the rule change.
# Bump the [https://partner.microsoft.com/en-us/dashboard/products/9NZVDKPMR9RD/overview Microsoft Store] rollout to 100%.
#* Click Finalize package rollout
# 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.
# Bump [https://play.google.com/console/u/0/developers/7083182635971239206/app/4972519468758466290/app-dashboard?timespan=thirtyDays fenix]/[https://play.google.com/console/u/0/developers/7083182635971239206/app/4972436558672701695/app-dashboard?timespan=thirtyDays focus]/[https://play.google.com/console/u/0/developers/7083182635971239206/app/4974004938716340515/app-dashboard?timespan=thirtyDays klar] rollout rate in the play store to 100%.
# Bump [https://seller.samsungapps.com/application/main.as?contentId=000002975732&platform=&readOnly=Y&forSale=Y#/detail/info fenix]/[https://seller.samsungapps.com/application/main.as?contentId=000003397900&platform=&readOnly=Y&forSale=Y#/detail/info focus] rollout rate in the Samsung Store to 100%.
# Email release-signoff & release-drivers to confirm full rollout.
#* Reply to the previous email from the go-live day.
#* [https://groups.google.com/a/mozilla.org/g/release-signoff/c/p8y16VBG7EI/m/oMO8GbqXAQAJ Example Email]


* '''Bump Fennec update rate to 99% in Play Store.''' The Fennec update rate is bumped to 99% because the Play Store doesn’t provide a mechanism for un-releasing a version once it reaches 100% deployment. Going to 99% allows most users to receive the new release while preserving the ability to throttle if a new issue is found. The rate is typically bumped to 100% the following week if no major quality issues have arisen or with the release of the first Fennec dot release.
==The following tasks need to be performed daily after go-live==
* '''Upload Fennec in the Samsung store.''' This is handled manually by Sylvestre at the moment. Ryan or Liz can also do this.
# Review release crash rates and incoming bugs for new blockers
** Login at https://seller.samsungapps.com/join/joinNow.as.
# Review uplift requests for dot release drivers and ride alongs
** download the apk, example,
https://archive.mozilla.org/pub/mobile/releases/66.0.2/android-api-16/multi/
Should be ~50MB
** Rename the file to replace dots with underscores (except the .apk of course)
** example: fennec-64_0_2-multi-android-arm.apk
** upload it, stick with defaults for various choices
** Then delete the old one.


==The following tasks need to be weekly after go-live==
# 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.


* '''(Monday After Launch Week) Bump Fennec update rate to 100% in Play Store.''' If no major quality issues have arisen with the release and a dot release is not being actively planned, bump the rollout to 100% the week after launch.


= Off-train Rollouts =
= Dot Release Uplifts =


This may not be the best long-term place to track the off-train rollouts affecting a given release (i.e. Normandy, GoFaster, SHIELD studies, etc), but until a better dashboard exists, this provides a place to keep track of things. [[Release_Management/Process_coordination_for_handling_off-train_releases| More information on off-train releases]].
Similar to the RC Uplifts tab. The primary purpose of this tab is to track any bugs driving a dot release and bugs that are under consideration to ride-along, It is also used to assess which products are affected by any drivers.
It is up to the release manager what should go into a dot release, and we try to keep these uplift guidelines in mind. Adding even what looks like a trivial fix can add risk, both to the process (delay, extra testing, work for other teams) and to causing new regressions. For security issues, we may not want to take them in a dot release unless there is particular pressure to do so.


= Dot Release Uplifts =
The following information needs to be added for each bug:
* Bug number
* Component
* Is the bug a dot release driver?
* Does the patch affect Desktop, Mobile, or both?
* Is the fix ready?
* Is the patch on mozilla-central?
* Is there an uplift request on the ticket?
* Is the uplift approved?
* Is the patch uplifted to release?
* Does the bug need a release note?
* Any additional notes
** For example, outline why the bug is being taken in a dot release.


Similar to the RC Uplifts tab. The primary purpose of this tab is to track any bugs driving a dot release, bugs which are under consideration to ride-along with a dot release if one is created, and to assess which products are affected by any drivers.
Please Note: For each dot release, create a section in the Dot Release Uplifts tab to track the bugs in consideration:
For example, “Desktop 101.0.1& Fenix/Focus 101.2.0 - GTB 2022-06-08”


It is up to the release manager what should go into a dot release, and we try to keep these [[Release_Management/Uplift_rules#Release_Uplift|uplift guidelines]] in mind. Adding even what looks like a trivial fix can add risk, both to the process (delay, extra testing, work for other teams) and to causing new regressions. For security issues, we may not want to take them in a dot release unless there is particular pressure to do so.


= Dot Release Checklist =
= Dot Release Checklist =


The checklist for dot releases is essentially a combination of the RC and Go-Live checklists and the items should be treated mostly the same (except under chemspill situations where an accelerated time table may apply).
==The following tasks need to be performed at the start of preparing a dot release==
# Duplicate the Desktop Dot Release Checklist tab and name it appropriately.
#* Example: Desktop 101.0.1
# Email release-drivers group to inform them a dot release is being created. #* Include information on the driver, if there will be an Android release, and a link to the sheet used to track the uplifts.
#* [https://groups.google.com/a/mozilla.org/g/release-drivers/c/pt_yKRur89I/m/-zTFEiq9AAAJ Example Email]
# Review any pending release uplift requests
#* [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&o1=substring&f1=flagtypes.name&v1=approval-mozilla-release%3F&title=Uplift%20requests Example Filter]
#* If they are low risk consider including them in the dot release
# Uplift patches to release.
# Create a release in Nucleus to add release notes
#* Add a release note with a link to the major release for reference.
#* For bugs that have been identified as needing a release note:
#** If a release note is required and the release note text is clear from the bug content then create it directly in Nucleus.
#** Otherwise, request wording before adding the release note.
# Follow the same process as creating an RC build
#* If any uplifts impact mobile
#** Duplicate the Mobile Dot Release Checklist tab and name it appropriately.
# Follow the same process as reviewing an RC build has QA sign-off


Of note, however, is the need for the release manager to email the release-drivers list prior to the creation of the builds (ideally shortly after the decision is made to go forward with the release) to notify all stakeholders of the forthcoming release. Also, the release manager should verify that the rollout percentages in Balrog & Google Play for the current release are set as expected (taking into account any blocking quality issues) to avoid unexpected fallback versions when the new release ships. Finally, if there are security fixes being included in the release, email abillings (or whoever from the security team handles CVEs and security advisories) to ensure that they are aware of the bugs being fixed.
==The following tasks need to be performed during go-live of a dot release==
# Follow the same steps as an RC go-live, with the following exceptions:
#* The dot release is rolled out at 25% but there is no schedule drop to 0%
#** Please Note: Under chemspill situations, a greater rollout percentage may be required.
#* There may not be any security advisories.  


= Fenix releases =
==The following tasks need to be performed 24 hours after go-live of a dot release==
Process under development.
# Follow the same steps as after an RC go-live, with the following exceptions:
* [https://github.com/mozilla-mobile/fenix/blob/e20bf68bcba00c985edbef61ca905e24e2179224/.github/ISSUE_TEMPLATE/release_checklist.md Instructions in github]
#* If there are no blocking issues then bump the rollout to 100% after 24 hours
* [https://docs.google.com/spreadsheets/d/16Op2tl5PgeWUWAWvMOwdZRUKBTXUCkS9Lry33lpud30/edit#gid=1855415853 Checklist] and release criteria


= Focus releases =
==The following tasks need to be performed daily after go-live of a dot release==
Process under development.
* Follow the same monitoring steps as after an RC go-live.
* File a bug for the release; example, https://bugzilla.mozilla.org/show_bug.cgi?id=1507990
* Upload to the Play store.

Latest revision as of 15:50, 15 May 2024

The goal of this page is to document the Release Process Checklist being used by Firefox Release Managers to track each release throughout the cycle. Any changes to this documentation or the checklist should be reflected in both documents.

Nightly Checklist

Given the nature of how nightly builds are created and shipped, the role of the release manager during this phase of the cycle skews much more heavily to the monitoring aspect rather than release mechanics.

Prior to the start of the Nightly cycle, the following tasks need to be performed before Merge Day

  1. Create a Release Checklist before the cycle starts.
  2. Create the Milestones Document for the Release Checklist.
    • Use the sheet linked in the Release Checklist.
  3. Create a Firefox Retrospective Notes document.
    • Use the template from Google drive.
    • It is useful to document during the release cycle.
  4. Create a folder in the Release Tracking Google Drive for the release.
    • Move the Release Checklist and Firefox Retrospective Notes to this folder.
  5. Create a release notes skeleton in Nucleus.
    1. Click Admin Interface
    2. Click the Releases.
    3. Select the previous Nightly release notes (enable the checkbox beside the release).
    4. At the top of the page, expand the Action dropdown
    5. Select Copy releases.
    6. Click Go.
    7. Select the copy.
    8. In the Version text box edit the version to the current Nightly version.
      • Example: 99.0a1
    9. Set the Release Date to match when Central was bumped to Nightly
    10. Remove the release notes from the previous release.
    11. For additional information on the Release Notes process see The Firefox release notes process wiki page.
  6. Ensure that Bugzilla is bumped to the Nightly version, see BMO/new-version
    • Note: This is performed on the Friday before Merge Day.
    • Find the bug that tracks the bump.
      • Example bug
      • Please Note: The Milestone bump is performed by Bugzilla admins, see the ticket assignee.
    1. Update the Release Tracking flags in Bugzilla
    2. Go to Bugzilla > Administration > Release Tracking Flags
    3. Add the cf_tracking_firefox and cf_status_firefox for the Nightly release
      • Example: If 97 is becoming the Nightly, then add cf_tracking_firefox97 and cf_status_firefox97.
    4. Deactivate the oldest cf_tracking_firefox flag.
      • Example: If 95 is going to Release, 96 is going to Beta, and 97 is becoming the Nightly, then deactivate cf_status_firefox94.
    5. Edit the current cf_tracking_firefox_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+
    6. Add the cf_tracking_thunderbird and cf_tracking_thunderbird for the Nightly release.
      • Example: If 97 is becoming the Nightly, then add cf_tracking_thunderbird97 and cf_tracking_thunderbird97
    7. Deactivate the oldest cf_tracking_thunderbird flag.
      • Example: If 95 is going to Release, 96 is going to Beta, and 97 is becoming the Nightly, then deactivate cf_tracking_thunderbird94.
    8. 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+.
    9. Add a comment on the bug that the tracking flags were updated.
  7. Update the Google calendar Releases Scheduling.
    1. Open the following URL and change the version to the Nightly release.
    2. Download the generated ical file.
    3. Review locally on a calendar app of your choice
    4. Open Google Calendar.
    5. Click + beside Other Calendars.
    6. Select Import.
    7. Select the ical file previously downloaded.
    8. Select the Releases Scheduling calendar.
    9. Click Import.
    10. Please Note: Importing the ical to Google Calendar is a one-shot operation. If you notice incorrect info or dates after importing, correct them directly in Google Calendar. Importing the ical file again will cause duplication.
  8. Ensure the REO (Regression Engineering Owner) is listed on Release Owners.
    • If required check the Google Sheet REO Rotation by Director.
    • Update the wiki with information from the spreadsheet.
      • Ensure that the REO and RelEng owners are listed.
      • Ensure the dates are accurate.
    • If required reach out to the Director to find out who the REO is.
    • Ensure they are invited to the Weekly Regression Triage.
  9. Ensure the Release Engineer on Release Duty is listed on Release Owners.

At the start of the Nightly cycle, the following tasks need to be performed on Merge Day

  1. Verify that Central was bumped to the Nightly version.
    • Check version_display.txt
    • Please Note: This is performed on Merge Day of the release going to beta, if it is incorrect talk to the RelMan on duty for the Beta cycle.
  2. Verify that the firefox-android version was updated.
    • Chheck version.txt should be xxx.0a1, where xxx matches the nightly version of desktop.
    • If the version was not updated, then sync with release engineering.
  3. Make the release notes public in Nucleus
  4. Verify the application services version was updated
    • The version in version.txt should be xxx.0a1, where xxx matches the nightly version of desktop.
    • If the version was not updated then talk to the RelMan on duty for the Beta cycle.
  5. Verify the firefox_versions.json is correct.
    • Please Note: Usually this json update is performed the day after merge day
    • Please Note: fx trains and various scripts in other tools use this data.
    • Verify the following are correct:
      • FIREFOX_NIGHTLY, NEXT_MERGE_DATE, NEXT_SOFTFREEZE_DATE
    • If these are incorrect, contact the RelEng on duty via the #release-duty channel in Matrix. It is possible a PR was missed during the RelEng merge day steps.
    • Please Note: There are also date changes that are monitored by autonag. For example, if Template:NextReleaseDate was not updated an autonag email will be sent.
  6. Verify the mobile_versions.json is correct
    • Verify the following are correct:
      • alpha_version, nightly_version
    • If these are incorrect, contact the RelEng on duty via the #release-duty channel in Matrix.

On a daily (or thereabouts) basis, the following items should be monitored during the Nightly cycle

  1. Review Pending tracking-firefoxXX requests
    • Example Filter
    • Ensure that the tickets are progressing, follow up as required.
  2. Review Open tracking-firefoxXX+ and blocking bugs
    • Example Filter
    • Ensure that the tickets are progressing, follow up as required.
  3. Review incoming regression bugs
    • Example Filter
    • Also see the REO section in the BugDash
    • Ensure that new tickets are prioritized.
    • Ensure that carry-over tickets are still on the team’s radar.
    • Review with the REO in the weekly regression meeting.
  4. Review stability rates and reported crash spikes
    • Leverage information from the automated emails, monitor top crashes in Crash Stats, and monitor Stability & Release Monitoring Looker Dashboard
    • Ensure that there are bugs tracking stability rates and crash spikes.
    • Ensure these tickets are tracked and prioritized.
    • Please Note: If ever there are stats/bugs that cannot be explained/identified, then reach out to the team for assistance on the #stability Matrix channel, it may be an issue with the tooling issue.
  5. Review the Release Notes requests for Nightly Tickets.

On a weekly (or thereabouts) basis, the following items should be monitored during the Nightly cycle

  1. Review the tracking Mana page for the release.
    • The tracking page can be found as a child of Firefox Release Tracking
    • Ensure that features targeting the release are on track, reach out as needed if any are slipping.
  2. Update the Weekly Release Tracking Digest document, as requested on #fx-weekly-digest.
    • Update the Release Milestones (Details) section to add Status (On Track, Delayed), Ship Date, and additional details depending on where the nightly is in the cycle for example coming up to the Soft Freeze.
    • Review the dates in the Release Milestones section and update the status.

As available, the following items should be monitored during the Nightly cycle

  1. Review and land mozilla-central repo-update HSTS HPKP remote-settings tld-suffixes patches.
    • Every Monday and Thursday revisions are automatically created for review in Phabricator.
    • Monitor email notifications sent by Phabricator: “No Bug, mozilla-central repo-update HSTS HPKP remote-settings tld-suffixes”
    • Review and land the patch to autoland.
  2. Review and land android nightly application-services version update bumps to mozilla-central
    • An automated nightly application-services build is triggered daily. The build will only run if commits merged to main since the previous nightly build.
    • update-bot creates a patch to bump the version for android in mozilla-central, runs a Try build, and sets the release-mangers group as reviewer.
    • Monitor email notifications sent by Phabricator: Update android nightly application-services version bump
    • Review and land the patch to autoland.
    • If the Try build failed:
  3. Review Test Plans for features targeting the release. QA shares test plans via email. For example:
    • Become familiar with how the feature works.
    • Understand how the team ensures it is of sufficient quality to ship in that release.
    • Provide feedback on the risk analysis and mitigations put in place.
  4. Review mid-Nightly and pre-Beta testing reports QA shares mid-Nightly and pre-Beta testing reports via email. For example:
    • If there are any red or yellow reports review the recommendations/plan and the bugs mentioned in the report.
    • If QA flagged that the feature is behind a pref verify that this is expected.

At the end of the Nightly cycle, the following tasks need to be performed prior to and during Merge Day

  1. Send Nightly Soft Code Freeze reminder to dev-platform and firefox-dev.
    • Send this at the start of the week before the Soft Code Freeze.
    • Remind developers that the window for landing riskier fixes is coming to a close until after the version bump.
    • Example email
  2. Sync with RelEng to confirm the RelEng on duty for the Central to Beta merge.
    • Sync on Friday before Merge Day
    • Use the #releaseduty channel on Matrix.
    • Align to perform the merge early on Merge Day, for example, 9/10am ET.
  3. Sync with the Sheriff team to confirm Central is in a good state so that the Merge Day email can be sent.
    • Sync on Merge Day morning
    • Use the #sheriffs channel on Matrix.
    • 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.
  4. Once you have confirmed central is in a good state, send the Merge Day email to release-drivers and release signoff
  5. Sync with RelEng on the Central to Beta merge
    • Use the #releaseduty channel on Matrix to mention the merge day email was sent
    • Sync with the RelEng on duty. The RelEng on duty is listed in the Matrix channel description
  6. Create a Desktop Beta Checklist and Mobile Beta Checklist for beta 1
    • Use the b1 macro
  7. Wait for RelEng to complete the central to beta merge.
    • Use the #releaseduty channel on Matrix to synchronize if needed.
    • RelEng will also reply to the Merge Day email
  8. Prepare the Beta release notes in Nucleus
    1. Click Admin Interface
    2. Click the Releases
    3. Select the Nightly release notes (enable the checkbox beside the release)
    4. At the top of the page, expand the Action dropdown
    5. Select Copy release
    6. Click Go
    7. In the Channel dropdown select Beta
    8. In the Version text box edit the version to the Beta version
      • Example: 96.0beta
    9. Replace the content in the Text box with content from a previous beta release
    10. Set the Release Date to the date when the first Beta is released
    11. Ensure to remove any notes that are only applicable to nightly
  9. Announce the soft freeze is over
    • Once the merge is complete, reply to the soft freeze reminder email
    • Example: “Hi, the Gecko 100 version bump landed on central as planned and the soft freeze is over.”


Beta Checklist

Once a release moves to the Beta cycle, the daily tasks performed during the Nightly cycle will continue to be carried out as new bug reports come in from a wider audience and new features move through the QA cycle towards shipping. There is also an added triage step during Beta - monitoring the “missed uplifts” email or queries to find issues fixed in Nightly that still affect Beta.

The following tasks need to be performed on Merge Day at the start of the Beta cycle after the merge to beta is finished

  1. Perform the release management steps in the App Services Release checklist
    • Application Services release once and at the start of the beta cycle.
    • This step is required before building Android/iOS.
  2. 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
    • Push directly mozilla-beta
  3. Perform the release management steps in the Firefox iOS Soft Freeze Checklist
    • The Firefox iOS release branch is used for beta and rc builds.
  4. Announce the soft freeze is over
    • Reply back to the soft code freeze announcement email
    • "The version bump to xxx has now landed on mozilla-central and the soft freeze period is over."
  5. Review any pending uplifts that may be required before proceeding with a beta 1 build
    • This should not be a common occurrence, however, an example would be a crash fix that may have landed in central post-merge.
  6. Set up Desktop and DevEdition builds in Ship-It
    1. Connect to the VPN
    2. Log into Ship-It
    3. Click Releases dropdown
    4. Click Firefox dropdown
    5. Click New
    6. For Desktop complete as follows and click Create Release:
      • Please note: Revision should be the tip. The Partial updates field is automatic.
    7. For DevEdition complete as follows and click Create Release
      • Please note: Revision should be the tip. The Partial updates field is automatic.
  7. Start the Desktop and DevEdition in Ship-it via the Promote Task
    1. View the Pending Releases in Ship-It
    2. Click the Promote Task for Desktop and continue through the pop-ups
    3. Click the Promote Task for DevEditon and continue through the pop-ups
  8. Confirm the Desktop and DevEdition builds have started
    • Taskcluster email: “[desktop] Build of firefox xxx.0b1 build 1”
    • Taskcluster email: “[desktop] Build of devedition xxx.0b1 build 1”
  9. Confirm notification sent when the Desktop and DevEdition builds finish
    • Taskcluser email: “firefox xxx.0b1 build1/mozilla-beta is in the candidates directory”
    • Taskcluser email: “devedition xxx.0b1 build1/mozilla-beta is in the candidates directory”
  10. Schedule push to Desktop and DevEditon CDN from Ship-It via Push
    1. Click Push
    2. Click Schedule
  11. Confirm notification sent when the Desktop and DevEditon CDN push finishes
    • Taskcluser email: “firefox xxx.0b1 build1/mozilla-beta has been pushed to cdntest”
    • Taskcluser email: “devedition xxx.0b1 build1/mozilla-beta has been pushed to cdntest”
  12. Create Firefox Android (AC, Fenix, Focus) release in Ship-It
  13. Start Firefox Android (AC, Fenix, Focus) release in Ship-It via Promote
    • Please note: you can only start a ship-it build on a revision that has a completed decision task
  14. Confirm notification sent when the Firefox Android (AC, Fenix, Focus) builds finish
    • Taskcluster email: “firefox-android XXX.0b# build1/mozilla-beta is in the candidates directory"
  15. Push Firefox Android (AC, Fenix, Focus) release in Ship-It via Push
  16. Monitor for QA sign-off on desktop functional testing, before proceeding with Step 17.
    • Please Note: Desktop Build Validation sign-off is usually provided the day after Merge Day.
    • QA will post a message to the #qa-coordination channel in Slack when they complete functional testing.
    • Build validation testing is tracked here
  17. Once QA has signed off, push Desktop and DevEdition to Beta in Ship-It via Ship.
  18. Verify that the Balrog rule changes are live and correctly set.
  19. Activate automated betas in Ship-It
    1. At the bottom of the page, click the red x beside Firefox Desktop: Beta
    2. Click Enable
    3. Perform the same actions for Firefox Developer Edition: Beta
    • Please Note: Automated Betas are built at 21:00 UTC every Sunday, Tuesday, and Thursday as determined here.
  20. Make the Beta release notes public in Nucleus
    • Enable the Is Public checkbox and save
  21. Share a link to the Beta release notes and the release notes draft document in #release-notes Slack channel
  22. Email release-notes with a link to the draft document and the submission deadline.
  23. Monitor for QA sign-off on desktop update testing
    • QA will post a message to the #qa-coordination channel in Slack when they complete update testing.
  24. Monitor for QA sign-off on Fenix/Focus build validation
    • Fenix build validation testing is tracked here
    • Focus build validation testing is tracked here
    • Please Note: Build Validation sign-off is usually provided the day after Fenix/Focus builds are produced.
    • Focus and Fenix QA sign-off are sent via #qa-coordination Slack Channel
    • Once QA has signed off, roll out Fenix to the production track at 25% in Google Play
    • Once QA has signed off, roll out Focus to the Closed testing - Foxfooding track at 25% in Google Play
  25. Monitor for QA sign-off on Firefox iOS build validation
    • Build validation testing is tracked here
    • Once QA has signed off, add the External Beta Testers group to the Firefox iOS TestFlight Build
  26. Monitor for QA sign-off on Focus iOS build validation
    • Build validation testing is tracked here
  27. Verify the mobile_versions.json is correct
    • Verify the following beta_version is correct:
    • If this is incorrect, contact the RelEng on duty via the #release-duty channel in Matrix.

The following tasks need to be performed daily during the Beta cycle

  1. Monitor Uplift Requests
    • Example Filter and Phabricator Dashboard
    • Accept or reject the beta uplift requests.
    • See Uplift Rules for guidelines
    • Please Note: During the RC week, also monitor release uplift requests.
    • Please Note: When pushing uplifts be conscious of timing around the automated beta builds. Pushing an uplift will trigger CI, the automated beta build will not trigger until the CI completes.
    • Please Note: If an uplift contains string changes, then l10n approval is required and the commit message must end with l10n=approver_name. Add a ni on the bug for approval before taking the uplift.
  2. Monitor Pending tracking-firefoxXX requests
    • Example Filter
    • Ensure that the tickets are progressing, and follow up as required.
  3. Monitor Open tracking-firefoxXX+ and blocking bugs
    • Example Filter
    • Ensure that the tickets are progressing, and follow up as required.
  4. Monitor Newly-filed regression bugs
    • New regressions bugs can be found here
    • Review with the REO - ensure that new tickets are prioritized and ensure that carry-over tickets are still on the team’s radar
  5. Monitor stability rates and reported crash spikes
  6. Monitor the Release Notes requests for Beta Tickets.
    • Example Filter
    • Check through tickets in the release that are tagged for release notes. Review and add these notes to the Beta Release Notes in Nucleus.

The following tasks need to be performed for each beta build (Monday, Wednesday, Friday) during the Beta cycle

Please Note: The Beta build pipeline is also monitored by the Sheriffs, if there is an intermittent test failure they will rerun the failed job. If there is a permanent failure or an issue in the build infrastructure, then it may require canceling the build. Discuss in the #releaseduty Matrix channel. If the decision is made to cancel, then view the pending release in ship-it and click cancel. To create a new build, follow the same steps as outlined in One Time - Start of Beta Cycle to produce build 2 of the current beta release.

  1. Create a tab in the release tracking sheet “xxx.0bx”
    • Use the relevant beta macro
    • Please note: After all the beta steps are complete, the tab can be hidden in order to minimize clutter.
  2. Review tracking-firefoxXX+ bugs and approval requests.
    • This step is performed as part of the daily activities, tracked in the checklist for confirmation.
  3. Verify all approved bugs landed on mozilla-beta.
    • This step is performed as part of the daily activities, tracked in the checklist for confirmation.
  4. Ensure the Firefox iOS build is available in Testflight
  5. Confirm the Desktop and DevEdition builds have started.
    • Taskcluster email: “[desktop] Build of firefox xx.0bx build 1”
    • Taskcluster email: “[desktop] Build of devedition xx.0bx build 1”
    • Please Note: The automated beta builds schedule is determined here.
  6. Confirm notification sent when the Desktop and DevEdition builds finish.
    • Taskcluster email: “firefox xx.0bx build1/mozilla-beta is in the candidates directory”
    • Taskcluster email: “devedition xx.0bx build1/mozilla-beta is in the candidates directory”
  7. Create Firefox Android (AC, Fenix, Focus) release in Ship-It
  8. Start Firefox Android (AC, Fenix, Focus) release in Ship-It via Promote
  9. Confirm notification sent when the Firefox Android (AC, Fenix, Focus) builds finish
    • Taskcluster email: “firefox-android xx.0bx build1/mozilla-beta is in the candidates directory"
  10. Push Firefox Android (AC, Fenix, Focus) release in Ship-It via Push
  11. Confirm notification sent when the Firefox Android (AC, Fenix, Focus) push finishes
    • Focus/Fenix XXXb#-build1 has been pushed to the closed testing track on Google Play
  12. Ship Firefox Android (AC, Fenix, Focus) from Ship-It via Ship
  13. Promote Fenix to the Production track @ 50% b2 and @ 99% b3+
  14. Promote Android Focus to the closed testing track (Foxfooding) @ 50% b2 and @ 99% b3+
  15. Confirm notification sent when the Desktop and DevEditon CDN push finishes.
    • Taskcluster email: “firefox xx.0bx build1/mozilla-beta has been pushed to cdntest”
    • Taskcluster email: “devedition xx.0bx build1/mozilla-beta has been pushed to cdntest”
  16. Verify that the Desktop and DevEdition Balrog rule changes are live and correctly set.
  17. Monitor for QA sign-off on Desktop and DevEdition build validation for both update/functional testing.
    • QA will post a message to the #qa-coordination channel in Slack when they complete update testing and another message when they complete functional testing.
    • Build validation testing is tracked here
  18. Monitor for QA sign-off on Fenix/Focus build validation before proceeding with bumping the Fenix/Focus rollout.
    • Focus and Fenix QA sign-off are sent via #qa-coordination Slack Channel.
    • Please Note: Build Validation sign-off is usually provided the day after Fenix/Focus builds are produced. If the sign-off is yellow/red, then follow-up on the #mobile-android-team Slack channel. Ensure a plan is in place or a decision is made to block/proceed with the release.
    • For b3+ once QA has signed off, roll out Fenix to the production track in Google Play to 100%.
      • Reply to the QA sign-off Slack message and include the rollout percentage.
    • 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.
  19. 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 #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 #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

  1. QA shares beta testing and pre-release testing reports via email. Review the test reports for the release. For example:
    • If there are any red or yellow reports, review the recommendations/plan and the bugs mentioned in the report. For example:
      • Track the bug reported as blockers.
      • If there is no clear plan to address the report, follow up to ensure that engineering is reviewing.
    • If QA mentions the feature is behind a pref verify that this is expected.
  2. Phabricator patches for remote-settings updates are generated automatically. Typically this is every Monday and Thursday. These patches must be included in the beta uplifts.
    • Monitor email notifications sent by Phabricator: “No Bug, mozilla-beta repo-update HSTS HPKP remote-settings tld-suffixes”
    • Review the patch.
    • Commit the patch to beta via the moz-phab tool
      • moz-phab patch <patch id> --no-bookmark --apply-to here
    • Edit the commit message to add the approval.
  3. Use the Mana Beta Quality Metrics Page to review the Beta Quality Metrics.
    • The data is embedded from this wiki page.
    • The data is currently added manually.
      • The data is stored automatically every day in bugzilla using New Charts
      • To extract the data, run the report by adding the next needed dates and then exporting to csv. (The queries are numbered to make this step easier)
      • This is then manually pasted into the 'Data from Queries' tab.
      • Please Note: the goal is to automate this.
    • Take a look at the metric/charts over time to ensure the value is stable.
      • Please Note: Ensure the data is updated prior to the Tuesday channel meeting.
  4. Update the Weekly Digest document, as requested on the #fx-weekly-digest Slack channel.
    • Update the Release Milestones (Details) section to add Status (On Track, Delayed), Ship Date, information on the current beta release for both Desktop/DeveEdition and Fenix/Focus, information on where we are in the Beta cycle for example when coming up to end of early beta.
    • Review the Release Milestones section dates and update the status.
    • Update the Quality Metrics section to add information on the number of outstanding regressions, if there are any release blockers, and an overview on the trend of the Beta Quality Metrics metrics.

The following needs to be performed at the End of Early Beta

Please Note: This is performed on the Friday at the midday point of the beta cycle, see the Releases Scheduling google calendar. This is typically after beta 6 has been released. This should be done in its own push and before pushing any other uplifts to beta.

  1. Open build/defines.sh
  2. Clear the EARLY_BETA_OR_EARLIER flag:
    • EARLY_BETA_OR_EARLIER=1 to EARLY_BETA_OR_EARLIER=
  3. Commit the changes:
    • hg commit -m "No bug - post beta 6, unset EARLY_BETA_OR_EARLIER. a=me"
  4. Push the changes to beta.

The following needs to be performed at the end of the Beta Cycle

  1. Disable automated beta builds in Ship-it.
  2. Disable the firefox-ios firefox-ios SPM_Deploy_Prod_Beta BitRise scheduled workflow.
    • Expand the Scheduled section in the firefox-ios on BitRise
    • Pause the schedule for the SPM_Deploy_Prod_Beta that runs "Every Tue, Thu, Sun @ 20:00"
  3. 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.

RC Checklist

Once a release moves to the Release cycle, preparations for the release candidates begin. Until go-live, the daily tasks are similar to the beta cycle in terms of monitoring and if needed create a new release candidate.

The following tasks need to be performed at the start of RC week (week before go-live) for Desktop/Android

  1. Review tracking-firefoxXXX+ bugs and approval requests
    • Verify that all approved uplift requests were uplifted to beta
  2. Verify all approved bugs landed on mozilla-release
  3. Once the merge is complete, verify that the Treeherder tests green/starred
  4. Set up Desktop build in Ship-It.
    1. Connect to the VPN.
    2. Log into Ship-It.
    3. Click New Release.
    4. Complete as follows and click Create Release:
      • Please note: Revision should be the tip. The Partial updates field is automatic.
    5. Click Submit.
  5. Start the Desktop build from Ship-It via Promote RC.
    • Click the Schedule button.
  6. Confirm Desktop build has started.
    • Taskcluster email: “[desktop] Build of firefox xx.0 build 1”
  7. Set up Firefox Android (AC, Fenix, Focus) release in Ship-It.
    • Follow the same steps as creating a beta build.
  8. Start Firefox Android (AC, Fenix, Focus) release in Ship-It via Promote.
  9. Confirm notification sent when Firefox Android builds finish.
  10. Push Firefox Android (AC, Fenix, Focus) release in Ship-It via Push.
  11. Confirm notification sent when the Firefox Android (AC, Fenix, Focus) push finishes
  12. Push Desktop to Beta at 100% from Ship-It via Ship RC.
    • Click the Schedule button.
  13. Verify that the Balrog rule changes are live.
    1. View the Balrog Rules for Firefox Beta.
    2. Verify that the Background Rate for Firefox-xx.0-build1 is 100.
      • Please Note: The Fallback Mapping is the previous beta release.
  14. Email release-signoff with a confirmation that updates are live.
  15. Verify the package in the Microsoft Store submission is the correct version.
    • Please Note: The submission is automatically created as part of the RC build pipeline.
    • Verify that correct package was uploaded, the version displayed in the submission matches the release version
  16. Submit the Desktop RC build to the Microsoft Store for review
    • Please Note: The Microsoft Store review can take several days, it’s recommended to submit for review at the end of RC week. If there is a blocker found later, you can always resubmit.
    1. Navigate to the Microsoft Partner Center
    2. Select Firefox from Windows & Xbox > Overview
    3. Select the pending submission
    4. In Packages enable gradual rollout and set to 25%
      • Ensure to enable the option to provide the newest package when users manually check for updates.
    5. In Submission Options set to Automatically Publish on the go-live date and time
    6. Submit to the store for review
    • Please see 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

  1. 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.
  2. Check if there are any pending PRs for the firefox-ios release branch.
    • firefox-ios
    • Example Filter: is:pr is:open base:release/v115
  3. Sync with the iOS team for Hard Freeze.
  4. Run the Firefox:import translations (strings sync) action, set the target branch to the release branch (ex: release/v118).
    • See documentation here.
  5. Trigger the firefox-ios SPM_Deploy_Prod_Beta bitrise build workflow for the release branch.
  6. Trigger the firefox-ios focus_Release bitrise build workflow for the release branch.
  7. Verify that Firefox iOS release is available in TestFlight.
  8. Verify the Focus/Klar release is available in TestFlight.

As available, the following should be monitored/performed during RC week for Desktop/Android

  1. Phabricator patches for remote-settings updates are generated automatically. Typically this is every Monday and Thursday. These patches must be included in release/esr uplifts.
    • Monitor email notifications sent by Phabricator: “No Bug, mozilla-release repo-update HSTS HPKP remote-settings tld-suffixes”/“No Bug, mozilla-esr91 repo-update HSTS HPKP remote-settings tld-suffixes”
    • Review the patch.
    • Commit the patch to release/esr via the moz-phab tool
      • moz-phab patch <patch id> --no-bookmark --apply-to here
    • Edit the commit message to add the approval.
  2. Update the Weekly Digest document, as requested on #fx-weekly-digest.
    • Update the Release Milestones (Details) section to add Status (On Track, Delayed), Ship Date.
    • Review the Release Milestones section dates and update the status.
  3. Verify that QA have signed off manual testing for Desktop
    • QA will post a message to the #qa-coordination Slack channel when they complete update testing and another message when they complete functional testing.
    • Build validation testing is tracked here
  4. Verify that QA have signed off update tests on Beta.
    • QA will post a message to the #qa-coordination Slack channel when they complete update testing and another message when they complete functional testing.
  5. Verify that QA have signed off update tests on release-localtest
    • QA will post a message to the #qa-coordination Slack channel when they complete update testing and another message when they complete functional testing.
  6. Monitor for QA sign-off on Fenix/Focus build validation before proceeding with Steps 7 to 12.
    • Please Note: Build Validation sign-off is usually provided the day after Fenix/Focus builds are produced.
    • Focus and Fenix QA sign-off are sent via #qa-coordination Slack Channel.
  7. Roll out Fenix to the Production track at 5% in google play
  8. Roll out Focus/Klar to the Production track at 5% and Open Testing track at 100% in google play
  9. Upload Fenix to Samsung Store with 5% rollout when approved
    • Upload ARM32 and ARM64 APKs (armeabi-v7a/arm64-v8a)
      • The APKs are available as an artifact in the signing-apk job from the Promote graph.
    • Set the rollout rate to 5%
    • Set to publish automatically
    • Please note: It can take up to 2 days for review.
  10. Upload 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

  1. 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 #qa-coordination Slack Channel.
  2. 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.
  3. Tag the release in GitHub in the firefox-ios repo using the format `focus/klar-vXXX.X`

Firefox iOS

  1. 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 #qa-coordination Slack Channel.
  2. Add the External Beta Testers group to the Firefox Beta TestFlight Build
  3. 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.
  4. 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.
  5. Tag the release in GitHub in the firefox-ios repo using the format `firefox-vXXX.X`

General iOS tasks

  1. 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

RC Uplifts

This tab is for tracking bugs that are being tracked for possible uplift to the mozilla-release repository for RC builds. The primary objectives are:

  • Track whether there are any drivers for a respin of the RC builds during RC week.
  • Assess whether Desktop, Mobile, or both are affected by the issues noted.
  • Verify that all drivers have had an explicit decision made.

The following tasks need to be performed during RC week (the week before go-live)

  1. Monitor Uplift Requests for Beta/Release
    • For Example
    • Track if there are any drivers for an RC respin during RC week.
    • Assess whether Desktop, Mobile, or both are affected by the issues noted.
    • Verify that all drivers have had an explicit decision made.
  2. If a new RC is required, for example, a release blocker was identified, then create a new RC checklist tab and perform the same steps as for the initial RC but with the following exceptions:
    1. Cancel the previous RC build in ship-it
    2. Delete the Microsoft Store submission before creating a new RC build
      • Please Note: The RC build will fail if trying to create an MSIX submission when there is already a pending submission
      • To cancel and delete the pending submission you may first need to change it from publishing automatically to publishing manually
  3. Determine if a new RC build impacts Android.
    • If a new Android build is not required, then there is no impact on the Fenix/Focus builds and no action is required.
    • If a new Android build is required, then repeat the RC steps with the following exceptions:
      • Cancel the previous Firefox Android (AC, Focus) build in Ship-It.
      • Cancel the previous Fenix build in Ship-It.
      • If Fenix/Focus/Klar already rolled out - Replace the 5% rollout of Fenix/Focus/Klar in Google Play and the Samsung Store.


Go-Live Checklist

Once RC week is over and the release candidate is ready to go-live, preparations for go-live begin. After go-live, monitoring continues and if needed preparing for potential dot releases.

The following tasks need to be performed prior to go-live

  1. Ensure that feedback for release notes was gathered.
    • Monitor the #release-notes Slack channel
    • For more information on the release notes doc process see here
  2. Run the new-contributor.py script and add to the release notes
    • For more information on the release notes doc process see here
  3. Release notes RelMan peer review.
    • For more information on the release notes doc process see here
  4. Incorporate feedback into draft release notes.
    • Add a release in Nucleus for Firefox, Firefox for Android, Firefox for iOS
    • Duplicate the previous release, edit the version, dates, and remove the previous release notes. For example Firefox, Firefox for Android, Firefox for iOS
    • Create release notes entries as outlined in the document shared on the #release-notes Slack channel
    • Please Note: If images are included with the release note then create a PR for Bedrock, example PR
    • Share a link to the staged release notes on #release-notes
  5. Ensure that Legal signoff on release notes was requested by UX/Product
    • Please Note: This step is not always required, if the release notes are not atypical
  6. Review tracking-firefoxXX+ bugs and confirm there are no blocking issues
  7. Check for crash spikes with RC builds
  8. Schedule push to CDN from Ship-It
    • Click Push
    • Click Schedule
  9. Ensure the automated email was sent after the push to release-cdntest
    • Taskcluster email: “firefox xx.0 buildx/mozilla-release has been pushed to cdntest.
  10. Ensure QA have performed the Update test on release-cdntest
    • QA will post a message to the #qa-coordination channel in Slack when they complete update testing and another message when they complete functional testing.
    • Build validation testing is tracked here
  11. Ensure Legal have signed off on release notes
    • Please Note: This is only required based on the outcome of Step 3.
  12. Ensure that the security advisories are ready
    • Check with the security team on the #security Slack channel

The following tasks need to be performed on go-live day

  1. Schedule push to release at 25% from Ship-It
  2. Bump Fenix rollout rate in the play store to 25%
  3. Bump Focus/Klar rollout rate in the play store to 25%
  4. Bump Fenix rollout rate in the Samsung Store to 25%
  5. Bump Focus rollout rate in the Samsung Store to 25%
  6. Ship Firefox Android (AC, Fenix, Focus) from Ship-It via Ship
  7. Verify that the Microsoft Store is published at 25% rollout
  8. Make release notes live in Nucleus
    • Please Note: There is a 15-30min lag between making the change in Nucleus and the live website picking up this change, so plan to do this 15-30min prior to go-live.
  9. Upload security advisories to GitHub
  10. Signoff on scheduled rule change in Balrog
    • Set the rollout percentage to 25%
    • Sync with release management for another team member to signoff on the rule change.
  11. Send Slack message to #release-coordination to notify of the release
    • For example “Firefox Desktop 115.0, ESR 115.0.0, Fenix/Focus/Klar Android 115.0, and Firefox/Focus/Klar iOS 115.0 are live”
    • Include links to the release notes.
  12. Verify that the new release is live on mozilla.org
  13. Verify that the release notes are live here
  14. Verify LATEST_FIREFOX_VERSION in firefox_versions.json
  15. Verify that security advisories are live here
  16. Ship new Desktop release in Ubuntu Snap Store
  17. Verify that the release is live on Flathub
    • The `release-flatpak-push-firefox` job runs as part of the ship graph and the publication is handled by Flathub.
    • https://flathub.org/api/v1/apps/org.mozilla.firefox contains the current release available on Flathub.
    • It can take up to 120 minutes for the release to publish on Flathub. If the release is not updated then reach out in the #flatpaks Matrix channel.
  18. Email release-drivers & release-signoff that updates are live at 25%
  19. Ensure QA have performed the Update tests on Release
    • QA will post a message to the #qa-coordination Slack channel when they complete update testing and another message when they complete functional testing.
    • Build validation testing is tracked here
  20. Email announce list
  21. Schedule Desktop update rate to 0% in Balrog after 24 hours.
  22. Signoff on scheduled rule change in Balrog.
    • Sync with release management for another team member to signoff on the rule change.

The following tasks need to be performed 24 hours after go-live

  1. Verify Desktop update rate at 0% in Balrog
  2. Email release-signoff & release-drivers to confirm 0% throttling.

The following tasks need to be performed 48 hours after go-live

  1. Review release crash rates and incoming bugs for new blockers.
  2. Bump Desktop update rate to 100% in Balrog.
  3. Signoff on scheduled rule change in Balrog.
    • Sync with release management for another team member to signoff on the rule change.
  4. Bump the Microsoft Store rollout to 100%.
    • Click Finalize package rollout
  5. 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.
  6. Bump fenix/focus/klar rollout rate in the play store to 100%.
  7. Bump fenix/focus rollout rate in the Samsung Store to 100%.
  8. Email release-signoff & release-drivers to confirm full rollout.

The following tasks need to be performed daily after go-live

  1. Review release crash rates and incoming bugs for new blockers
  2. Review uplift requests for dot release drivers and ride alongs

The following tasks need to be weekly after go-live

  1. Update the Weekly Digest document, as requested on #fx-weekly-digest.
    • Update the Release Milestones (Details) section to add status on the release, dot release, etc.


Dot Release Uplifts

Similar to the RC Uplifts tab. The primary purpose of this tab is to track any bugs driving a dot release and bugs that are under consideration to ride-along, It is also used to assess which products are affected by any drivers. It is up to the release manager what should go into a dot release, and we try to keep these uplift guidelines in mind. Adding even what looks like a trivial fix can add risk, both to the process (delay, extra testing, work for other teams) and to causing new regressions. For security issues, we may not want to take them in a dot release unless there is particular pressure to do so.

The following information needs to be added for each bug:

  • Bug number
  • Component
  • Is the bug a dot release driver?
  • Does the patch affect Desktop, Mobile, or both?
  • Is the fix ready?
  • Is the patch on mozilla-central?
  • Is there an uplift request on the ticket?
  • Is the uplift approved?
  • Is the patch uplifted to release?
  • Does the bug need a release note?
  • Any additional notes
    • For example, outline why the bug is being taken in a dot release.

Please Note: For each dot release, create a section in the Dot Release Uplifts tab to track the bugs in consideration: For example, “Desktop 101.0.1& Fenix/Focus 101.2.0 - GTB 2022-06-08”


Dot Release Checklist

The following tasks need to be performed at the start of preparing a dot release

  1. Duplicate the Desktop Dot Release Checklist tab and name it appropriately.
    • Example: Desktop 101.0.1
  2. Email release-drivers group to inform them a dot release is being created. #* Include information on the driver, if there will be an Android release, and a link to the sheet used to track the uplifts.
  3. Review any pending release uplift requests
    • Example Filter
    • If they are low risk consider including them in the dot release
  4. Uplift patches to release.
  5. Create a release in Nucleus to add release notes
    • Add a release note with a link to the major release for reference.
    • For bugs that have been identified as needing a release note:
      • If a release note is required and the release note text is clear from the bug content then create it directly in Nucleus.
      • Otherwise, request wording before adding the release note.
  6. Follow the same process as creating an RC build
    • If any uplifts impact mobile
      • Duplicate the Mobile Dot Release Checklist tab and name it appropriately.
  7. Follow the same process as reviewing an RC build has QA sign-off

The following tasks need to be performed during go-live of a dot release

  1. Follow the same steps as an RC go-live, with the following exceptions:
    • The dot release is rolled out at 25% but there is no schedule drop to 0%
      • Please Note: Under chemspill situations, a greater rollout percentage may be required.
    • There may not be any security advisories.

The following tasks need to be performed 24 hours after go-live of a dot release

  1. Follow the same steps as after an RC go-live, with the following exceptions:
    • If there are no blocking issues then bump the rollout to 100% after 24 hours

The following tasks need to be performed daily after go-live of a dot release

  • Follow the same monitoring steps as after an RC go-live.