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

Mark as obsolete
m (→‎Extra steps: reformatting)
(Mark as obsolete)
 
(37 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{RELEASE_MANAGEMENT_OBSOLETE}}
<p>The bulk of this information is available in [https://docs.google.com/document/d/13EU2B4hqt9x7z4g5ApF0AEWMPBpFPnrSf6dQ6kuEePM/ Ways to ship a change to Firefox Desktop] document.
<br><br>
= Goal =
= Goal =


Line 8: Line 13:


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 44:
| 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 89:




|| 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 210: Line 240:
|}
|}


= 2 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.
# Kick-off email thread or meeting to establish scope, owners and timeline.
Line 227: Line 257:
# QA sign off of the publication of the change
# QA sign off of the publication of the change


= 3 Process: Shipping a New Mozilla Webextension =
= Process: Messaging to users with Remote Settings =
 
==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 =


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.


== 3.1 Decisions ==
== Decisions ==


* Products supported: Desktop / Fennec / both
* Products supported: Desktop / Fennec / both
Line 243: Line 284:
* Timeline and rollout strategy
* Timeline and rollout strategy


== 3.2 Extra steps ==
== 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 249: Line 290:
# 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


== 3.3 Checklist ==
== 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 332: Line 373:
|}
|}


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


== 4.1 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]?
Line 340: Line 381:




== 4.2 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.3 Checklists ==




Line 430: Line 469:
|}
|}


== 4.4 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]


= 5 Process: Funnelcake release =
= Process: Funnelcake release =




[https://wiki.mozilla.org/Funnelcake 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.
[https://wiki.mozilla.org/Funnelcake 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.


== 5.1 Decisions ==
== Decisions ==


* Timeline
* Timeline
Line 451: Line 491:
** Data & Privacy review
** Data & Privacy review


== 5.2 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


== 5.3 Checklists ==
== Checklists ==




Line 518: Line 558:




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


Line 534: Line 573:
== Extra steps ==
== Extra steps ==


* Intent to ship email to release-drivers to explain the change
# Intent to ship email to release-drivers to explain the change
* The change should be published on the relevant platform
# The change should be published on the relevant platform


== Checklists ==
== Checklists ==
Line 600: Line 639:
= 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 628: Line 661:
| 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 668: Line 701:
== 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 678: Line 712:


== 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 725: Line 754:


== 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>
Confirmed users
1,317

edits