Release Management/Process coordination for handling off-train releases: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (→‎3.2 Extra steps: fixing list formating)
m (added section for remote settings)
 
(43 intermediate revisions by 4 users not shown)
Line 8: Line 8:


The list of off-train release requests include (but are not limited to):
The list of off-train release requests include (but are not limited to):
* Shipping content via Remote Settings
* Shipping a new Mozilla webextension
* Shipping a new Mozilla webextension
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons
Line 38: Line 39:
| align=center| '''Checklist'''
| align=center| '''Checklist'''
|- style="border:1pt solid #000000;padding:0.176cm;"
|- style="border:1pt solid #000000;padding:0.176cm;"
| align=center| Content sent via Remote Settings
|| Publishing content to Firefox users with the in-product messaging system (Remote Settings)
''Example:'' (TBD)
<u>Typical time-to-ship</u>: (TBD)
|| Product manager/Dev owner files a bug and adds the messaging-system-request flag, filling out the resulting Bugzilla comment form.
<u>Driver</u>: Product owner
|| ✅ Product owner
✅ Publishing engineer
✅ Messaging (Firefox) Engineering peer
✅ Messaging Product owner
✅ Relman owner
||[https://docs.google.com/document/d/1TAu5OQ_hWZjfL4k9-b7uEcjjyvWhgeQQD6X5ksCC7bc/edit#heading=h.rfqkfzwwckon Messaging system intake and release process]
|- style="border:1pt solid #000000;padding:0.176cm;"
| align=center| New Mozilla webext
| align=center| New Mozilla webext
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.
Line 59: Line 84:




|| TODO add a link to a template for the process
||  
|- style="border:1pt solid #000000;padding:0.176cm;"
|- style="border:1pt solid #000000;padding:0.176cm;"
| align=center| GoFaster
| align=center| GoFaster
Line 212: Line 237:
= General process =
= General process =


As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.
As all these processes are similar, the general process is described. Specific details are described in dedicated checklists.


# Kick-off email thread or meeting to establish scope, owners and timeline.
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.
# Create checklist, find owners and track items on the checklist.
# Requirement doc - defines the goal of the change, why we are doing it and what will be done
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.
# Prepare the technical changes (code, pref change, etc)
# “Build it” process (including signature if needed)
# QA sign off - Formal QA sign off.
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.
# Publication of the change
# QA sign off of the publication of the change


# <div style="margin-left:1.27cm;margin-right:0cm;">Kick-off email thread or meeting to establish scope, owners and timeline.</div>
= Process: Messaging to users with Remote Settings =
# <div style="margin-left:1.27cm;margin-right:0cm;">Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.</div>
# <div style="margin-left:1.27cm;margin-right:0cm;">Create checklist, find owners and track items on the checklist.</div>
# <div style="margin-left:1.27cm;margin-right:0cm;">Requirement doc - defines the goal of the change, why we are doing it and what will be done</div>
# <div style="margin-left:1.27cm;margin-right:0cm;">Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.</div>
# <div style="margin-left:1.27cm;margin-right:0cm;">Prepare the technical changes (code, pref change, etc)</div>
# <div style="margin-left:1.27cm;margin-right:0cm;">“Build it” process (including signature if needed)</div>
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off - Formal QA sign off. </div>
# <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.</div>
# <div style="margin-left:1.27cm;margin-right:0cm;">Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.</div>
# <div style="margin-left:1.27cm;margin-right:0cm;">Publication of the change</div>
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off of the publication of the change</div>


==Decisions==


== Extra steps ==


== Checklist ==


== Extra information ==
[https://docs.google.com/document/d/1eDDIZCp_pD01cCeghum7fLRDqmEl3dfds9y3yI4W9Hw/edit Messaging system intake and release process]


= Process: Shipping a New Mozilla Webextension =
= Process: Shipping a New Mozilla Webextension =
Line 238: Line 269:
== Decisions ==
== Decisions ==


Products supported: Desktop / Fennec / both
* Products supported: Desktop / Fennec / both
* Platforms supported
* Firefox versions supported
* Release readiness criteria
** QA
** Performance
** Security review
* What kind of telemetry data will this webext capture and send to Mozilla?
* Timeline and rollout strategy


Platforms supported
== Extra steps ==
 
Firefox versions supported
 
Release readiness criteria
* QA
* Performance
* Security review
 
 
 
What kind of telemetry data will this webext capture and send to Mozilla?
 
Timeline and rollout strategy
 
== 3.2 Extra steps ==
# Data Steward review and sign off - Review webext by a data steward to ensure we are not collecting any privacy data that we ought not to.
# Data Steward review and sign off - Review webext by a data steward to ensure we are not collecting any privacy data that we ought not to.
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext
Line 261: Line 285:
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext


== Checklist ==
{| border="1" style="border-spacing:0;width:17.251cm;"
{| border="1" style="border-spacing:0;width:17.251cm;"
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"
Line 347: Line 372:
== Decisions ==
== Decisions ==


Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?
 
* By nature, the rest of the decisions are the same as a Mozilla Webextension
By nature, the rest of the decisions are the same as a Mozilla Webextension




== Extra steps ==
== Extra steps ==
# By nature, the rest of the decisions are the same as a Mozilla Webextension


By nature, the rest of the decisions are the same as a Mozilla Webextension
== Checklists ==
 
 
4<span style="color:#000000;">As I go through a final review of this, I am leaning towards removing the checklists section. I think as a first-pass of documenting the various process, we should let the teams decide what kind of checklist they want to maintain, in what form and use which repository. If the feedback we get is that checklists would make this more efficient, we can come back to it in a phase2. Thoughts? +yor@mozilla.com</span><span style="color:#000000;">Move that into a spreadsheet</span>.3 Checklists




Line 441: Line 463:
|-
|-
|}
|}


== Extra information ==
== Extra information ==
The steps for shipping a system add-on are described in detail here:


[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]  
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]
 


= Process: Funnelcake release =
= Process: Funnelcake release =
Line 455: Line 476:
== Decisions ==
== Decisions ==


* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div>
* Timeline
* <div style="margin-left:1.27cm;margin-right:0cm;">Team</div>
* Team
* <div style="margin-left:1.27cm;margin-right:0cm;">Scope</div>
* Scope
* <div style="margin-left:1.27cm;margin-right:0cm;">New User population that will be targeted</div>
* New User population that will be targeted
* <div style="margin-left:1.27cm;margin-right:0cm;">Release readiness criteria</div>
* Release readiness criteria
** <div style="margin-left:2.54cm;margin-right:0cm;">QA</div>
** QA
** <div style="margin-left:2.54cm;margin-right:0cm;">Perf</div>
** Perf
** <div style="margin-left:2.54cm;margin-right:0cm;">Security review</div>
** Security review
** <div style="margin-left:2.54cm;margin-right:0cm;">Data & Privacy review</div>
** Data & Privacy review
 
 
 
<div style="margin-left:0cm;margin-right:0cm;"></div>


== Extra steps ==
== Extra steps ==


Intent to ship email to release-drivers with the bug number
# Intent to ship email to release-drivers with the bug number
 
# Releng owner to configure balrog rules and sign offs
Releng owner to configure balrog rules and sign offs
 


== Checklists ==
== Checklists ==




Line 540: Line 554:


== Extra information ==
== Extra information ==
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]


= Process: Add-ons/ThirdParty Blocklisting =
= Process: Add-ons/ThirdParty Blocklisting =
Line 556: Line 568:
== Extra steps ==
== Extra steps ==


# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div>
# Intent to ship email to release-drivers to explain the change
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div>
# The change should be published on the relevant platform
 
 


== Checklists ==
== Checklists ==
Line 624: Line 634:
= Process: Shield studies =
= Process: Shield studies =


Shield studies are controlled A/B tests. They are available on all channels, namely Nightly, Beta, Release. A/B experiments are done to understand user behavior, user retention, onboarding, test feature ideas, etc.
Shield studies are controlled A/B tests, using either a pref-flip or an add-on. They are available on all channels, namely Nightly, Beta, Release. A/B experiments are done to understand user behavior, user retention, onboarding, test feature ideas, etc.  


== Decisions ==
== Decisions ==
* Work with Data Science first to determine the best way to answer your questions.  A pref-flip or add-on study is only one way to find answers.  Guidance to get started with Data Science is [https://mana.mozilla.org/wiki/display/PM/Firefox+Data+Science#FirefoxDataScience-projectworkflow here]. 
* If Data Science and product determine a pref-flip or add-ons study is needed, you will fill out Experimenter together to get started. Getting Started guidance [https://mana.mozilla.org/wiki/display/FIREFOX/Pref-Flip+and+Add-On+Experiments#Pref-FlipandAdd-OnExperiments-GettingStarted here]. 
* These are the [https://mana.mozilla.org/wiki/display/FIREFOX/Pref-Flip+and+Add-On+Experiments#Pref-FlipandAdd-OnExperiments-Stages stages] between starting Experimenter and the study releasing.


* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div>
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div>
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div>
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div>
<div style="margin-left:0cm;margin-right:0cm;"></div>


== Extra steps ==
== Extra steps ==


# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div>
# In Experimenter, after you have completed your "Draft", click the "[https://mana.mozilla.org/wiki/display/FIREFOX/Pref-Flip+and+Add-On+Experiments#Pref-FlipandAdd-OnExperiments-ReadyforSign-offs Ready for Sign-offs]" button to get the checklist of Required and Optional items needed to launch your study.
 
# When you have all your required and optional checklist items complete, click the "Ready to Ship" button to let Normandy know this is ready to be launched.  You will be contacted with any questions.
 


== Checklists ==
== Checklists ==
Line 652: Line 656:
| align=center| Completion Date
| align=center| Completion Date
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
| align=center| Phd review
| align=center| Data Science Bug
| align=center| <product-owner>
| align=center| product-owner
| align=center|  
| align=center|  
| align=center|  
| align=center|  
| align=center|  
| align=center|  
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
| align=center| Data steward/Privacy review
| align=center| Analysis Battery
| align=center| <data-steward>
| align=center| data scientist
| align=center|  
| align=center|  
| align=center|  
| align=center|  
| align=center|  
| align=center|  
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
| align=center| Firefox peer review
| align=center| Experimenter Draft
| align=center| <shield-owner>
| align=center| product-owner & data scientist
| align=center|  
| align=center|  
| align=center|  
| align=center|  
| align=center|  
| align=center|  
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
| align=center| QA sign off
| align=center| Complete Study checklist
| align=center| <qa-owner>
| align=center| product-owner
| align=center|  
| align=center|  
| align=center|  
| align=center|  
| align=center|  
| align=center|  
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
| align=center| Relman Go/NoGo sign off
| align=center| Kick-off the study
| align=center| <relman>
| align=center| Normandy-owner
| align=center|  
| align=center|  
| align=center|  
| align=center|  
| align=center|  
| align=center|  
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"
| align=center| Kick-off the study
| align=center| Study Results
| align=center| <shield-owner>
| align=center| product-owner & data scientist
| align=center|  
| align=center|  
| align=center|  
| align=center|  
Line 692: Line 696:
== Extra information ==
== Extra information ==


Useful links* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] </div>
Useful links
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies] </div>
* [https://mana.mozilla.org/wiki/display/FIREFOX/Pref-Flip+and+Add-On+Experiments#Pref-FlipandAdd-OnExperiments-Risks&Testing risk assessment criteria]  
* [https://mana.mozilla.org/wiki/display/FIREFOX/Pref-Flip+and+Add-On+Experiments#Pref-FlipandAdd-OnExperiments-GettingStarted Experimenter Guidance]


= Process: Feature rollout via Normandy =
= Process: Feature rollout via Normandy =
Line 702: Line 707:


== Decisions ==
== Decisions ==
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div>
* Timeline (Refer to the [https://docs.google.com/document/d/1xiWjGqK-s3NiqEY-Qg34eAm1Nca5iqzEUE8udRX1ku0/edit feature rollout playbook] for help with this)
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div>
* Products affected: Desktop, Fennec, ESR?
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div>
* Platforms affected: All, Windows, Mac, Linux?
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div>
* Rollout strategy




== Extra steps ==
== Extra steps ==
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div>
# File a bug for handling the rollout (examples: {{bug|1467514}} or {{bug|1523978}})
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div>
# Development owner (likely mythmon) configures the recipe in Normandy to flip pref for targeted end-users
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div>
# For release-unblockers/hotfixes, set up on stage, so QA can test on https://delivery-console.stage.mozaws.net
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div>
# Release owner reviews, approves and publishes recipe
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div>
# Feature team, release owner monitor data to verify:
 
## Recipe uptake is going as planned
 
## Feature is having the intended effect on end-users


== Checklist ==
== Checklist ==
<TBD>
<TBD>


= Process Dot Release =
= Process Dot Release =


Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.


== Decisions ==
== Decisions ==


* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div>
* Timeline</div>
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div>
* Bugs that are dot release drivers and ride-alongs
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div>
* Products affected: Desktop, Fennec, ESR?
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div>
* Platforms affected: All, Windows, Mac, Linux?
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div>
* Rollout strategy
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div>
* Release notes, sec advisories, comms plan, What’s New Page
 
 


== Extra steps ==
== Extra steps ==
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div>
# Release owner drafts release notes and shares for review.
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div>
# Security owner drafts security advisory as needed and shares for review.


== Checklist ==
== Checklist ==
 
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]  
 


= Process: Chemspills =
= Process: Chemspills =
Line 749: Line 749:


== Decisions ==
== Decisions ==
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div>
* Timeline
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div>
* Products affected: Desktop, Fennec, ESR?
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div>
* Platforms affected: All, Windows, Mac, Linux?
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div>
* sec advisories, comms plan


== Extra steps ==
== Extra steps ==
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div>
# Security owner drafts security advisory as needed and shares for review.
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div>
# Create a CVE if necessary
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div>
# Reach out to partners and/or other projects impacted if needed
 
== checklist ==


== Checklist ==
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]  
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]  


== Extra information ==
== Extra information ==
 
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>

Latest revision as of 19:06, 17 December 2019

Goal

This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests.


The goal of this document is to provide a single place where stakeholders (PM, EPM, etc) can have a quick idea of the various options available to ship changes to Firefox users.


The list of off-train release requests include (but are not limited to):

  • Shipping content via Remote Settings
  • Shipping a new Mozilla webextension
  • GoFaster for shipping new system add-ons
  • Blocklisting
  • Shield studies
  • Feature toggle (enable/disable) via Normandy
  • Dot releases
  • Chemspills


Many of these processes have similar workflow and teams of people involved.

For every process, the following roles will be involved in shipping the change:

✅ Development owner ✅ QA owner ✅ Release owner



Off-train release Purpose Trigger Extra people involved Checklist
Content sent via Remote Settings Publishing content to Firefox users with the in-product messaging system (Remote Settings)

Example: (TBD)

Typical time-to-ship: (TBD)

Product manager/Dev owner files a bug and adds the messaging-system-request flag, filling out the resulting Bugzilla comment form.


Driver: Product owner

✅ Product owner

✅ Publishing engineer

✅ Messaging (Firefox) Engineering peer

✅ Messaging Product owner

✅ Relman owner


Messaging system intake and release process
New Mozilla webext A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.

Example: Facebook container


Typical time-to-ship: 5 days

Product manager/Dev owner sends an email to engineering, Product Integrity leads (QA, security, release management) describing the business need and a rough sense of timeline to ship a new Webext.



Driver: Product owner

✅ Product owner

✅ Data Steward owner

✅ Releng owner


GoFaster Ship a new system add-on (SAO) or update an existing one


Time-to-ship SAO: days to week depending on urgency

Time-to-ship update: 5 days

An Intent to Implement email is sent to release-drivers by Product or Engineering


Driver: Dev owner

✅ Product owner

✅ Data Steward owner

✅ Releng owner


Funnelcake builds Funnelcake builds are special builds pushed to a small percentage of new release users with the aim of A/B testing via the downloads page. Funnelcake changes our download and install funnel for new users.


Example: Onboarding


Typical time-to-ship: Weeks

Funnelcake owner sends a funnelcake build “intent to ship” email to release-drivers. The email describes what’s been done so far and proposes a requested timeline to go live.




Driver: Funnelcake owner

✅ Funnelcake owner

✅ Data Steward owner

✅ Releng owner


Blocklisting In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.


Example: Stylish extension

A release blocking issue has been identified that needs to be addressed via blocklisting ✅ Blocklist master
Shield studies Shield studies are controlled A/B tests. They are available on all channels, namely Nightly, Beta, Release. A/B experiments are done to understand user behavior, user retention, onboarding, test feature ideas, etc.


Example: TLS 1.3


Time to ship new study: Weeks


Time to ship updated study: 5-10 days

Shield team emails release-drivers mailing list with an “Intent to Ship” that describes shield study type, goal, target channel, rollout plan, QA sign off status and timeline.



Driver: Product owner requesting the study

✅ Product owner

✅ Shield core team

✅ Firefox peer

✅ Data Steward


Feature toggle via Normandy 1) After go-live, some release blocking issues can be addressed via pref flips.

2) New feature can have a controlled rollout via pref flipping.


Example: RDL, TLS 1.3 fallback

1) Product or Engineering or PI know of a release blocking


2) Product or PI team recommend controlled rollout of a feature post launch.


Driver: Release owner

✅ Product owner
Dot releases Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues


Typical time-to-ship: 5 days

Product or Engineering or PI know of one or more release blocking issues and email/slack/IRC relman team for dot release planning and coordination.



Driver: release owner

✅ Releng owner

✅ Sheriff

✅ Security owner (optional)

✅ Product owner (optional)

✅ Marketing owner (Optional)


Will be the same as chemspill
Chemspills Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild



Typical time-to-ship: 1 day or less

Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner


Driver: Chemspill owner

✅ Chemspill owner

✅ Releng owner

✅ Sheriff

✅ Product owner

Chemspill release checklist

General process

As all these processes are similar, the general process is described. Specific details are described in dedicated checklists.

  1. Kick-off email thread or meeting to establish scope, owners and timeline.
  2. Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.
  3. Create checklist, find owners and track items on the checklist.
  4. Requirement doc - defines the goal of the change, why we are doing it and what will be done
  5. Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.
  6. Prepare the technical changes (code, pref change, etc)
  7. “Build it” process (including signature if needed)
  8. QA sign off - Formal QA sign off.
  9. Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.
  10. Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.
  11. Publication of the change
  12. QA sign off of the publication of the change

Process: Messaging to users with Remote Settings

Decisions

Extra steps

Checklist

Extra information

Messaging system intake and release process

Process: Shipping a New Mozilla Webextension

A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.

Decisions

  • Products supported: Desktop / Fennec / both
  • Platforms supported
  • Firefox versions supported
  • Release readiness criteria
    • QA
    • Performance
    • Security review
  • What kind of telemetry data will this webext capture and send to Mozilla?
  • Timeline and rollout strategy

Extra steps

  1. Data Steward review and sign off - Review webext by a data steward to ensure we are not collecting any privacy data that we ought not to.
  2. Security review - Security team within Product Integrity (PI) group will review and sign off on webext
  3. Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext
  4. Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext

Checklist

Item Owner By When Status Completion Date
Kick-off meeting <product-owner>
Webext rqmts doc <dev-owner>
Test Plan <qa-owner>
Coding <dev-owner>
Testing <qa-owner>
Security review <security-owner>
Perf review <perf-owner>
Data steward review <data-steward>
Webext peer review <webext-owner>
QA sign off <qa-owner>
Go/NoGo decision <product-owner>
Upload webext on AMO <amo-owner>

Process: GoFaster release Ship a new system add-on (SAO) or update an existing one

Decisions


Extra steps

  1. By nature, the rest of the decisions are the same as a Mozilla Webextension

Checklists

Item Owner By When Status Completion Date
Kick-off meeting <product-owner>
System addon rqmts doc <dev-owner>
Test Plan <qa-owner>
Coding <dev-owner>
Testing <qa-owner>
Security review <security-owner>
Perf review <perf-owner>
Data steward review (if relevant) <data-steward>
Webext peer review <webext-owner>
QA sign off <qa-owner>
Go/NoGo decision <product-owner>
Upload System addon on AMO <amo-owner>

Extra information

The steps for shipping a system add-on are described in detail here:

https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process

Process: Funnelcake release

Funnelcake builds are special builds pushed to a small percentage of new release users with the aim of A/B testing via the downloads page. Funnelcake changes our download and install funnel for new users.

Decisions

  • Timeline
  • Team
  • Scope
  • New User population that will be targeted
  • Release readiness criteria
    • QA
    • Perf
    • Security review
    • Data & Privacy review

Extra steps

  1. Intent to ship email to release-drivers with the bug number
  2. Releng owner to configure balrog rules and sign offs

Checklists

Item Owner By When Status Completion Date
Kick-off meeting <product-owner>
Funnelcake rqmts doc <dev-owner>
Test Plan <qa-owner>
Coding <dev-owner>
Testing <qa-owner>
QA sign off <qa-owner>
Go/NoGo decision <product-owner>
Downloads page is ready and live <amo-owner>


Extra information

https://wiki.mozilla.org/Funnelcake

Process: Add-ons/ThirdParty Blocklisting

In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.

Decisions

Decide if we want to block an addons or a third party.

As this can have some important ripple effects, please be careful.

Extra steps

  1. Intent to ship email to release-drivers to explain the change
  2. The change should be published on the relevant platform

Checklists

Item Owner By When Status Completion Date
Request filed <undefined>
Reach out to vendor/developer <product-owner>
Meeting to confirm the blocking <release-owner>
Development <dev-owner>
Testing <qa-owner>
QA sign off <qa-owner>
Publication of the change <amo-owner>


Extra information

https://wiki.mozilla.org/Blocklisting

Process: Shield studies

Shield studies are controlled A/B tests, using either a pref-flip or an add-on. They are available on all channels, namely Nightly, Beta, Release. A/B experiments are done to understand user behavior, user retention, onboarding, test feature ideas, etc.

Decisions

  • Work with Data Science first to determine the best way to answer your questions. A pref-flip or add-on study is only one way to find answers. Guidance to get started with Data Science is here.
  • If Data Science and product determine a pref-flip or add-ons study is needed, you will fill out Experimenter together to get started. Getting Started guidance here.
  • These are the stages between starting Experimenter and the study releasing.


Extra steps

  1. In Experimenter, after you have completed your "Draft", click the "Ready for Sign-offs" button to get the checklist of Required and Optional items needed to launch your study.
  2. When you have all your required and optional checklist items complete, click the "Ready to Ship" button to let Normandy know this is ready to be launched. You will be contacted with any questions.

Checklists

Item Owner By When Status Completion Date
Data Science Bug product-owner
Analysis Battery data scientist
Experimenter Draft product-owner & data scientist
Complete Study checklist product-owner
Kick-off the study Normandy-owner
Study Results product-owner & data scientist

Extra information

Useful links

Process: Feature rollout via Normandy

1) After go-live, some release blocking issues can be addressed via pref flips.

2) New feature can have a controlled rollout via pref flipping.

Decisions

  • Timeline (Refer to the feature rollout playbook for help with this)
  • Products affected: Desktop, Fennec, ESR?
  • Platforms affected: All, Windows, Mac, Linux?
  • Rollout strategy


Extra steps

  1. File a bug for handling the rollout (examples: bug 1467514 or bug 1523978)
  2. Development owner (likely mythmon) configures the recipe in Normandy to flip pref for targeted end-users
  3. For release-unblockers/hotfixes, set up on stage, so QA can test on https://delivery-console.stage.mozaws.net
  4. Release owner reviews, approves and publishes recipe
  5. Feature team, release owner monitor data to verify:
    1. Recipe uptake is going as planned
    2. Feature is having the intended effect on end-users

Checklist

<TBD>

Process Dot Release

Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.

Decisions

  • Timeline
  • Bugs that are dot release drivers and ride-alongs
  • Products affected: Desktop, Fennec, ESR?
  • Platforms affected: All, Windows, Mac, Linux?
  • Rollout strategy
  • Release notes, sec advisories, comms plan, What’s New Page

Extra steps

  1. Release owner drafts release notes and shares for review.
  2. Security owner drafts security advisory as needed and shares for review.

Checklist

Example: 59.0.x dot release checklist

Process: Chemspills

Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild

Decisions

  • Timeline
  • Products affected: Desktop, Fennec, ESR?
  • Platforms affected: All, Windows, Mac, Linux?
  • sec advisories, comms plan

Extra steps

  1. Security owner drafts security advisory as needed and shares for review.
  2. Create a CVE if necessary
  3. Reach out to partners and/or other projects impacted if needed

Checklist

Chemspill release checklist

Extra information

Chemspill process description