https://wiki.mozilla.org/api.php?action=feedcontributions&user=Ritu+Kothari&feedformat=atom
MozillaWiki - User contributions [en]
2024-03-29T05:04:52Z
User contributions
MediaWiki 1.27.4
https://wiki.mozilla.org/index.php?title=Release_Management/Calendar&diff=1220660
Release Management/Calendar
2019-11-26T04:35:24Z
<p>Ritu Kothari: /* Future branch dates */ Adding schedule for Q2, Q3 2020</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Calendar}}<br />
This schedule is based on the current [[RapidRelease]] plan. Future dates may change if the process changes. Code is not always released to users on the same day as the branch migration. The release to users may be a few days later, to allow for manual testing and sign-off. Thunderbird tracks the [https://www.mozilla.org/en-US/firefox/organizations/ ESR schedule] column per [[Thunderbird:Home#Releases|Thunderbird release info]].<br />
<br />
== Calendars ==<br />
<br />
This wiki page may not always have the most current information. Please refer to one of the following calendars for up-to-date scheduling:<br />
<br />
* [https://www.google.com/calendar/embed?src=mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com Firefox Merge/Release Dates] ([https://www.google.com/calendar/ical/mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com/public/basic.ics ICS for Thunderbird/Lightning or your calendar app]) (low noise)<br />
* [https://www.google.com/calendar/embed?src=bW96aWxsYS5jb21fZGJxODRhbnI5aTh0Y25taGFiYXRzdHY1Y29AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ Firefox Merge/Release Full Scheduling Calendar] ([https://calendar.google.com/calendar/ical/mozilla.com_dbq84anr9i8tcnmhabatstv5co%40group.calendar.google.com/public/basic.ics ICS]) (highly detailed - 99.99% up to date)<br />
<br />
== Future branch dates ==<br />
<big>[[Release_Management/Release_owners|Release Owners]]</big><br />
{| class="wikitable"<br />
|-<br />
!Quarter ||Soft Freeze ||Merge Date ||Nightly ||Beta ||Release Date ||Release ||ESR<br />
|-<br />
|rowspan="1"|Q4 2019<br />
!2019-11-25<br />
!2019-12-02<br />
|Firefox 73||Firefox 72<br />
!2019-12-03<br />
|Firefox 71<br />
|Firefox 68.3<br />
|-<br />
|rowspan="3"|Q1 2020<br />
!2020-01-02<br />
!2020-01-06<br />
|Firefox 74||Firefox 73<br />
!2020-01-07<br />
|Firefox 72<br />
|Firefox 68.4<br />
|-<br />
!2020-02-06<br />
!2020-02-10<br />
|Firefox 75||Firefox 74<br />
!2020-02-11<br />
|Firefox 73<br />
|Firefox 68.5<br />
|-<br />
!2020-03-05<br />
!2020-03-09<br />
|Firefox 76||Firefox 75<br />
!2020-03-10<br />
|Firefox 74<br />
|Firefox 68.6<br />
|-<br />
|rowspan="4"|Q2 2020<br />
!2020-04-02<br />
!2020-04-06<br />
|Firefox 77||Firefox 76<br />
!2020-04-07<br />
|Firefox 75<br />
|Firefox 68.7<br />
|-<br />
!2020-04-30<br />
!2020-05-04<br />
|Firefox 78||Firefox 77<br />
!2020-05-05<br />
|Firefox 76<br />
|Firefox 68.8<br />
|-<br />
!2020-05-28<br />
!2020-06-01<br />
|Firefox 79||Firefox 78<br />
!2020-06-02<br />
|Firefox 77<br />
|Firefox 68.9<br />
|-<br />
!2020-06-26<br />
!2020-06-29<br />
|Firefox 80||Firefox 79<br />
!2020-06-30<br />
|Firefox 78<br />
|Firefox 68.10; 78.0<br />
|-<br />
|rowspan="3"|Q3 2020<br />
!2020-07-23<br />
!2020-07-27<br />
|Firefox 81||Firefox 80<br />
!2020-07-28<br />
|Firefox 79<br />
|Firefox 78.3<br />
|-<br />
!2020-08-20<br />
!2020-08-24<br />
|Firefox 82||Firefox 81<br />
!2020-08-25<br />
|Firefox 80<br />
|Firefox 68.12; 78.2<br />
|-<br />
!2020-09-17<br />
!2020-09-21<br />
|Firefox 83||Firefox 82<br />
!2020-09-22<br />
|Firefox 81<br />
|Firefox 68.10; 78.1<br />
|-<br />
|}<br />
<br />
<p>The Nightly soft freeze is typically during the week prior to merge day. During this period, high-risk patches should avoid landing until after the Nightly version bump lands on mozilla-central on merge day.</p><br />
<br />
== Past branch dates ==<br />
More details on contents of releases can be found in the [https://www.mozilla.org/firefox/releases/ release notes archive] or [https://en.wikipedia.org/wiki/Firefox_version_history Wikipedia: Firefox version history].<br />
<br />
{| class="wikitable"<br />
|-<br />
!Soft Freeze||Merge Date||Central||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2019-10-14<br />
!2019-10-21<br />
|Firefox 72||Firefox 71<br />
!2019-10-22<br />
|Firefox 70<br />
|Firefox 68.2<br />
|-<br />
!2019-08-26<br />
!2019-09-02<br />
|Firefox 71||Firefox 70<br />
!2019-09-03<br />
|Firefox 69<br />
|Firefox 60.9; 68.1<br />
|-<br />
!2019-07-01<br />
!2019-07-08<br />
|Firefox 70||Firefox 69<br />
!2019-07-09<br />
|Firefox 68<br />
|Firefox 60.8; 68.0<br />
|-<br />
!2019-05-13<br />
!2019-05-20<br />
|Firefox 69||Firefox 68<br />
!2019-05-21<br />
|Firefox 67<br />
|Firefox 60.7<br />
|-<br />
!2019-03-11<br />
!2019-03-18<br />
|[https://docs.google.com/spreadsheets/d/1jtNuLGugHVgZTKR3NXQGngA_EjzSGxpRBzW-DvNK3EI/edit Firefox 68]||[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/edit Firefox 67]<br />
!2019-03-19<br />
|Firefox 66<br />
|Firefox 60.6<br />
|-<br />
!2019-01-21<br />
!2019-01-28<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/edit Firefox 67]||Firefox 66<br />
!2019-01-29<br />
|Firefox 65<br />
|Firefox 60.5<br />
|-<br />
!2018-12-03<br />
!2018-12-10<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/edit Firefox 66]||Firefox 65<br />
!2018-12-11<br />
|Firefox 64<br />
|Firefox 60.4<br />
|-<br />
!2018-10-15<br />
!2018-10-22<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit Firefox 65]||Firefox 64<br />
!2018-10-23<br />
|Firefox 63<br />
|Firefox 60.3<br />
|-<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
!Merge Date||Central||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2018-09-04<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit Firefox 64]||Firefox 63<br />
!2018-09-05<br />
|Firefox 62<br />
|Firefox 60.2<br />
|-<br />
!2018-06-25<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit Firefox 63]||Firefox 62<br />
!2018-06-26<br />
|Firefox 61<br />
|Firefox 52.9; 60.1<br />
|-<br />
!2018-05-07<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit Firefox 62]||Firefox 61<br />
!2018-05-09<br />
|Firefox 60<br />
|Firefox 52.8; 60.0<br />
|-<br />
!2018-03-12<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit Firefox 61]||Firefox 60<br />
!2018-03-13<br />
|Firefox 59<br />
|Firefox 52.7<br />
|-<br />
!2018-01-22<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit Firefox 60]||Firefox 59<br />
!2018-01-23<br />
|Firefox 58<br />
|Firefox 52.6<br />
|-<br />
!2017-11-13<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit Firefox 59]||Firefox 58<br />
!2017-11-14<br />
|Firefox 57<br />
|Firefox 52.5<br />
|-<br />
!2017-09-21<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit Firefox 58]||Firefox 57<br />
!2017-09-28<br />
|Firefox 56<br />
|Firefox 52.4<br />
|-<br />
!2017-08-02<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit Firefox 57]||Firefox 56<br />
!2017-08-08<br />
|Firefox 55<br />
|Firefox 52.3<br />
|-<br />
!2017-06-12<br />
|Firefox 56||Firefox 55<br />
!2017-06-13<br />
|Firefox 54<br />
|Firefox 52.2<br />
|-<br />
!2017-04-18<br />
|Firefox 55||Firefox 54<br />
!2017-04-19<br />
|Firefox 53<br />
|Firefox 45.9; 52.1<br />
|-<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
!Merge Date||Central||Aurora||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2017-03-06<br />
|Firefox 55||Firefox 54||Firefox 53<br />
!2017-03-07<br />
|Firefox 52<br />
|Firefox 45.8; 52.0<br />
|-<br />
!2017-01-23<br />
|Firefox 54||Firefox 53||Firefox 52<br />
!2017-01-24<br />
|Firefox 51<br />
|Firefox 45.7<br />
|-<br />
|<br />
|<br />
|<br />
|<br />
!2016-12-13<br />
|Firefox 50.1.0<br />
|Firefox 45.6<br />
|-<br />
!2016-11-14<br />
|Firefox 53||Firefox 52||Firefox 51<br />
!2016-11-15<br />
|Firefox 50<br />
|Firefox 45.5<br />
|-<br />
!2016-09-19<br />
|Firefox 52||Firefox 51||Firefox 50<br />
!2016-09-20<br />
|Firefox 49<br />
|Firefox 45.4<br />
|-<br />
!2016-08-01<br />
|Firefox 51||Firefox 50||Firefox 49<br />
!2016-08-02<br />
|Firefox 48<br />
|Firefox 45.3<br />
|-<br />
!2016-06-06<br />
|Firefox 50||Firefox 49||Firefox 48<br />
!2016-06-07<br />
|Firefox 47<br />
|Firefox 45.2<br />
|-<br />
!2016-04-25<br />
|Firefox 49||Firefox 48||Firefox 47<br />
!2016-04-26<br />
|Firefox 46<br />
|Firefox 38.8; 45.1<br />
|-<br />
!2016-03-07<br />
|Firefox 48||Firefox 47||Firefox 46<br />
!2016-03-08<br />
|Firefox 45<br />
|Firefox 38.7; 45.0<br />
|-<br />
!2016-01-25<br />
|Firefox 47||Firefox 46||Firefox 45<br />
!2016-01-26<br />
|Firefox 44<br />
|Firefox 38.6<br />
|-<br />
!2015-12-14<br />
|Firefox 46||Firefox 45||Firefox 44<br />
!2015-12-15<br />
|Firefox 43<br />
|Firefox 38.5<br />
|-<br />
!2015-10-29<br />
|Firefox 45||Firefox 44||Firefox 43<br />
!2015-11-03<br />
|Firefox 42<br />
|Firefox 38.4<br />
|-<br />
!2015-09-21<br />
|Firefox 44||Firefox 43||Firefox 42<br />
!2015-09-22<br />
|Firefox 41<br />
|Firefox 38.3<br />
|-<br />
!2015-08-10<br />
|Firefox 43||Firefox 42||Firefox 41<br />
!2015-08-11<br />
|Firefox 40<br />
|Firefox 38.2<br />
|-<br />
!2015-06-29<br />
|Firefox 42||Firefox 41||Firefox 40<br />
!2015-06-30<br />
|Firefox 39<br />
|Firefox 31.8; 38.1<br />
|-<br />
!<br />
| || || <br />
!2015-06-02<br />
|Firefox 38.0.5<br />
|-<br />
!2015-05-11*<br />
|Firefox 41||Firefox 40||Firefox 39<br />
!2015-05-12*<br />
|Firefox 38<br />
|Firefox 31.7; 38.0<br />
|-<br />
!2015-03-30*<br />
|Firefox 40||Firefox 39||Firefox 38<br />
!2015-03-31*<br />
|Firefox 37<br />
|Firefox 31.6<br />
|-<br />
!2015-02-23<br />
|Firefox 39||Firefox 38||Firefox 37<br />
!2015-02-24<br />
|Firefox 36<br />
|Firefox 31.5<br />
|-<br />
!2015-01-12*<br />
|Firefox 38||Firefox 37||Firefox 36<br />
!2015-01-13*<br />
|Firefox 35<br />
|Firefox 31.4<br />
|-<br />
!2014-11-28*<br />
|Firefox 37||Firefox 36||Firefox 35<br />
!2014-12-01*<br />
|Firefox 34<br />
|Firefox 31.3<br />
|-<br />
!2014-10-13 <br />
|Firefox 36||Firefox 35||Firefox 34<br />
!2014-10-14<br />
|Firefox 33<br />
|Firefox 31.2<br />
|-<br />
!2014-09-02*<br />
|Firefox 35||Firefox 34||Firefox 33<br />
!2014-09-02<br />
|Firefox 32<br />
|Firefox 24.8; 31.1<br />
|-<br />
!2014-07-21<br />
|Firefox 34||Firefox 33||Firefox 32<br />
!2014-07-22<br />
|Firefox 31<br />
|Firefox 24.7; 31.0<br />
|-<br />
!2014-06-09<br />
|Firefox 33||Firefox 32||Firefox 31<br />
!2014-06-10<br />
|Firefox 30<br />
|Firefox 24.6<br />
|-<br />
!2014-04-28<br />
|Firefox 32||Firefox 31||Firefox 30<br />
!2014-04-29<br />
|Firefox 29<br />
|Firefox 24.5<br />
|-<br />
!2014-03-17<br />
|Firefox 31||Firefox 30||Firefox 29<br />
!2014-03-18<br />
|Firefox 28<br />
|Firefox 24.4<br />
|-<br />
!2014-02-03*<br />
|Firefox 30||Firefox 29||Firefox 28<br />
!2014-02-04*<br />
|Firefox 27<br />
|Firefox 24.3<br />
|-<br />
!2013-12-09<br />
|Firefox 29||Firefox 28||Firefox 27<br />
!2013-12-10<br />
|Firefox 26<br />
|Firefox 24.2<br />
|-<br />
!2013-10-28<br />
|Firefox 28||Firefox 27||Firefox 26<br />
!2013-10-29<br />
|Firefox 25<br />
|Firefox 17.0.10; 24.1<br />
|-<br />
!2013-09-16<br />
|Firefox 27||Firefox 26||Firefox 25<br />
!2013-09-17<br />
|Firefox 24<br />
|Firefox 17.0.9; 24.0<br />
|-<br />
!2013-08-05<br />
|Firefox 26||Firefox 25||Firefox 24<br />
!2013-08-06<br />
|Firefox 23<br />
|Firefox 17.0.8<br />
|-<br />
!2013-06-24<br />
|Firefox 25||Firefox 24||Firefox 23<br />
!2013-06-25<br />
|Firefox 22<br />
|Firefox 17.0.7<br />
|-<br />
!2013-05-13<br />
|Firefox 24||Firefox 23||Firefox 22<br />
!2013-05-14<br />
|Firefox 21<br />
|Firefox 17.0.6<br />
|-<br />
!2013-04-01<br />
|Firefox 23||Firefox 22||Firefox 21<br />
!2013-04-02<br />
|Firefox 20<br />
|Firefox 17.0.5<br />
|-<br />
!2013-02-19*<br />
|Firefox 22||Firefox 21||Firefox 20<br />
!2013-02-19<br />
|Firefox 19<br />
|Firefox 17.0.3<br />
|-<br />
!2013-01-07<nowiki>*</nowiki><br />
|Firefox 21||Firefox 20||Firefox 19<br />
!2013-01-08<nowiki>*</nowiki><br />
|Firefox 18<br />
|Firefox 10.0.12; 17.0.2<br />
|-<br />
!2012-11-19<br />
|Firefox 20||Firefox 19||Firefox 18<br />
!2012-11-20<br />
|Firefox 17<br />
|Firefox 10.0.11; 17.0<br />
|-<br />
!2012-10-08<br />
|Firefox 19<br />
|Firefox 18<br />
|Firefox 17<br />
!2012-10-09<br />
|Firefox 16<br />
|Firefox 10.0.8<br />
|-<br />
!2012-08-27<br />
|Firefox 18<br />
|Firefox 17<br />
|Firefox 16<br />
!2012-08-28<br />
|Firefox 15<br />
|Firefox 10.0.7<br />
|-<br />
!2012-07-16<br />
|Firefox 17<br />
|Firefox 16<br />
|Firefox 15<br />
!2012-07-17<br />
|Firefox 14<br />
|Firefox 10.0.6<br />
|-<br />
!2012-06-05<br />
|Firefox 16<br />
|Firefox 15<br />
|Firefox 14<br />
!2012-06-05<br />
|Firefox 13<br />
|Firefox 10.0.5<br />
|-<br />
!2012-04-24<br />
|Firefox 15<br />
|Firefox 14<br />
|Firefox 13<br />
!2012-04-24<br />
|Firefox 12<br />
|Firefox 10.0.4<br />
|-<br />
!2012-03-13<br />
|Firefox 14<br />
|Firefox 13<br />
|Firefox 12<br />
!2012-03-13<br />
|Firefox 11<br />
|Firefox 10.0.3<br />
|-<br />
!2012-01-31<br />
|Firefox 13<br />
|Firefox 12<br />
|Firefox 11<br />
!2012-01-31<br />
|Firefox 10<br />
|Firefox 10.0<br />
|-<br />
!2011-12-20<br />
|Firefox 12<br />
|Firefox 11<br />
|Firefox 10<br />
!2011-12-20<br />
|Firefox 9<br />
|-<br />
!2011-11-08<br />
|Firefox 11<br />
|Firefox 10<br />
|Firefox 9<br />
!2011-11-08<br />
|Firefox 8<br />
|-<br />
!2011-09-27<br />
|Firefox 10<br />
|Firefox 9<br />
|Firefox 8<br />
!2011-09-27<br />
|Firefox 7<br />
|-<br />
!2011-08-16<br />
|Firefox 9<br />
|Firefox 8<br />
|Firefox 7<br />
!2011-08-16<br />
|Firefox 6<br />
|-<br />
!2011-07-05<br />
|Firefox 8||Firefox 7||Firefox 6<br />
!<br />
|<br />
|-<br />
!<br />
| || || <br />
!2011-06-21<br />
|Firefox 5<br />
|-<br />
!2011-05-24<br />
|Firefox 7||Firefox 6|| <br />
|-<br />
!2011-05-17<br />
| || ||Firefox 5<br />
|-<br />
!2011-04-12<br />
|Firefox 6||Firefox 5 <br />
|-<br />
|}<br />
<br />
<nowiki>*</nowiki>Some release dates and merge dates are rescheduled to avoid conflicts with holidays.<br />
<br />
Notes:<br />
* Irregular scheduling starting 2016.<br />
* Six week schedule from 2011 to 2015 (with some dates delayed to avoid conflicts with holidays).<br />
* Firefox 5 was on a slightly different schedule. It spent five weeks each on Aurora and Beta while later releases spent six weeks on each branch.<br />
<br />
[[category:Release_Management|R]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1219967
Release Management/Release owners
2019-11-07T20:48:18Z
<p>Ritu Kothari: Pascal will likely own ESR63.4</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Engineering REO<br />
!Release Duty¹ <br />
!Corresponding ESR<br />
!Release Date<br />
|-<br />
|[[Releases/Firefox 74|Firefox 74]]<br />
|Lizzard<br />
|<br />
|<br />
|<br />
|<br />
|2020-03-10<br />
|-<br />
|[[Releases/Firefox 73|Firefox 73]]<br />
|Ryan<br />
|<br />
|<br />
|<br />
|<br />
|2020-02-11<br />
|-<br />
|[[Releases/Firefox 72|Firefox 72]]<br />
|Julien<br />
|lizzard<br />
|Jim Mathies<br />
|<br />
|Pascal C (ESR68.4)<br />
|[https://docs.google.com/spreadsheets/d/10VEf3__QCWDb4EGom-W6qGPlu71R_fDQiTCLc-7Sggo/edit#gid=1793473785 2020-01-07]<br />
|-<br />
|[[Releases/Firefox 71|Firefox 71]]<br />
|Pascal<br />
|RyanVM<br />
|Florian Quèze<br />
|jlorenzo,jlund<br />
|lizzard (ESR68.3)<br />
|[https://docs.google.com/spreadsheets/d/1SCFDvnKGHSd7BvAvIAXA135IQnp0W4Mik9Y-jgImaJ8/edit#gid=1793473785 2019-12-03]<br />
|-<br />
|[[Releases/Firefox 70|Firefox 70]]<br />
|lizzard<br />
|Pascal<br />
|Janet Dragojevic<br />
|jlund<br />
|RyanVM (ESR68.2)<br />
|[https://docs.google.com/spreadsheets/d/1a0f8cDojanXaT44ATyK1KpK0OGcoI2eRIas4Mjk_C8Y/edit#gid=1793473785 2019-10-22] <br />
|-<br />
|[[Releases/Firefox 69|Firefox 69]]<br />
|RyanVM<br />
|lizzard<br />
|Kate Hudson<br />
|mhentges<br />
|Julien (ESR68.1)<br />
|[https://docs.google.com/spreadsheets/d/196B1HNyayCZx-JWcMqEHREY0oLIxhKqKx9ahU7p25Fw/edit#gid=1793473785 2019-09-03]<br />
|-<br />
|[[Releases/Firefox 68|Firefox 68 (ESR)]]<br />
|Julien<br />
|RyanVM<br />
|plawless<br />
|tomprince<br />
|Pascal (ESR68.0)<br />
|[https://docs.google.com/spreadsheets/d/1jtNuLGugHVgZTKR3NXQGngA_EjzSGxpRBzW-DvNK3EI/edit#gid=798712201 2019-07-09]<br />
|-<br />
<br />
|[[Releases/Firefox 67|Firefox 67]]<br />
|Pascal<br />
|lizzard<br />
|Neha Kochar<br />
|sfraser<br />
|lizzard<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/ 2019-05-21]<br />
<br />
|-<br />
|[[Releases/Firefox 66|Firefox 66]]<br />
|Lizzard<br />
|Pascal<br />
|Tim Spurway<br />
|mtabara, jlund<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/ 2019-03-19]<br />
<br />
|-<br />
|[[Releases/Firefox 65|Firefox 65]]<br />
|RyanVM<br />
|Lizzard<br />
|jaws<br />
|jlund, mtabara<br />
|JCristau<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit?usp=sharing 2019-01-29]<br />
|-<br />
<br />
|[[Releases/Firefox 64|Firefox 64]]<br />
|Julien<br />
|RyanVM<br />
|overholt<br />
|callek, sfraser<br />
|Liz<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit?usp=sharing 2018-12-11]<br />
|-<br />
|[[Releases/Firefox 63|Firefox 63]]<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit?usp=sharing 2018-10-23]<br />
|-<br />
|[[Releases/Firefox 62|Firefox 62]]<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit?usp=sharing 2018-09-05]<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit?usp=sharing 2018-06-26]<br />
|-<br />
|Firefox 60 (ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit?usp=sharing 2018-05-09]<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit?usp=sharing 2018-03-13]<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit?usp=sharing 2018-01-23]<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit?usp=sharing 2017-11-14]<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52 (ESR)<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1219965
Release Management/Release owners
2019-11-07T19:47:47Z
<p>Ritu Kothari: Adding a link to Fx72 milestone sheet</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Engineering REO<br />
!Release Duty¹ <br />
!Corresponding ESR<br />
!Release Date<br />
|-<br />
|[[Releases/Firefox 74|Firefox 74]]<br />
|Lizzard<br />
|<br />
|<br />
|<br />
|<br />
|2020-03-10<br />
|-<br />
|[[Releases/Firefox 73|Firefox 73]]<br />
|Ryan<br />
|<br />
|<br />
|<br />
|<br />
|2020-02-11<br />
|-<br />
|[[Releases/Firefox 72|Firefox 72]]<br />
|Julien<br />
|lizzard<br />
|Jim Mathies<br />
|<br />
|<br />
|[https://docs.google.com/spreadsheets/d/10VEf3__QCWDb4EGom-W6qGPlu71R_fDQiTCLc-7Sggo/edit#gid=1793473785 2020-01-07]<br />
|-<br />
|[[Releases/Firefox 71|Firefox 71]]<br />
|Pascal<br />
|RyanVM<br />
|Florian Quèze<br />
|jlorenzo,jlund<br />
|lizzard (ESR68.3)<br />
|[https://docs.google.com/spreadsheets/d/1SCFDvnKGHSd7BvAvIAXA135IQnp0W4Mik9Y-jgImaJ8/edit#gid=1793473785 2019-12-03]<br />
|-<br />
|[[Releases/Firefox 70|Firefox 70]]<br />
|lizzard<br />
|Pascal<br />
|Janet Dragojevic<br />
|jlund<br />
|RyanVM (ESR68.2)<br />
|[https://docs.google.com/spreadsheets/d/1a0f8cDojanXaT44ATyK1KpK0OGcoI2eRIas4Mjk_C8Y/edit#gid=1793473785 2019-10-22] <br />
|-<br />
|[[Releases/Firefox 69|Firefox 69]]<br />
|RyanVM<br />
|lizzard<br />
|Kate Hudson<br />
|mhentges<br />
|Julien (ESR68.1)<br />
|[https://docs.google.com/spreadsheets/d/196B1HNyayCZx-JWcMqEHREY0oLIxhKqKx9ahU7p25Fw/edit#gid=1793473785 2019-09-03]<br />
|-<br />
|[[Releases/Firefox 68|Firefox 68 (ESR)]]<br />
|Julien<br />
|RyanVM<br />
|plawless<br />
|tomprince<br />
|Pascal (ESR68.0)<br />
|[https://docs.google.com/spreadsheets/d/1jtNuLGugHVgZTKR3NXQGngA_EjzSGxpRBzW-DvNK3EI/edit#gid=798712201 2019-07-09]<br />
|-<br />
<br />
|[[Releases/Firefox 67|Firefox 67]]<br />
|Pascal<br />
|lizzard<br />
|Neha Kochar<br />
|sfraser<br />
|lizzard<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/ 2019-05-21]<br />
<br />
|-<br />
|[[Releases/Firefox 66|Firefox 66]]<br />
|Lizzard<br />
|Pascal<br />
|Tim Spurway<br />
|mtabara, jlund<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/ 2019-03-19]<br />
<br />
|-<br />
|[[Releases/Firefox 65|Firefox 65]]<br />
|RyanVM<br />
|Lizzard<br />
|jaws<br />
|jlund, mtabara<br />
|JCristau<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit?usp=sharing 2019-01-29]<br />
|-<br />
<br />
|[[Releases/Firefox 64|Firefox 64]]<br />
|Julien<br />
|RyanVM<br />
|overholt<br />
|callek, sfraser<br />
|Liz<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit?usp=sharing 2018-12-11]<br />
|-<br />
|[[Releases/Firefox 63|Firefox 63]]<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit?usp=sharing 2018-10-23]<br />
|-<br />
|[[Releases/Firefox 62|Firefox 62]]<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit?usp=sharing 2018-09-05]<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit?usp=sharing 2018-06-26]<br />
|-<br />
|Firefox 60 (ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit?usp=sharing 2018-05-09]<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit?usp=sharing 2018-03-13]<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit?usp=sharing 2018-01-23]<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit?usp=sharing 2017-11-14]<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52 (ESR)<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Onboarding&diff=1218695
Release Management/Onboarding
2019-10-07T20:21:55Z
<p>Ritu Kothari: /* IRC */ Updating a few IRC channels</p>
<hr />
<div>{{DISPLAYTITLE:Onboarding process in the Release Management team}}<br />
<p style="font-size: large; font-weight:bold;">Welcome to Release Management! Here is a list of accounts to set up, tools to check out, and any other details we can think of to help you start getting yourself set up.</p><br />
<br />
= Account Permissions =<br />
You'll want to make sure you have the necessary permissions to do the following and some will take longer than others to achieve so start early.<br />
<br />
== Bugzilla ==<br />
* Create a [https://bugzilla.mozilla.org/createaccount.cgi Bugzilla] account.<br />
* File a bug to request for your bugzilla account to be added to the <code>mozilla-next-drivers</code> and <code>mozilla-stable-branch-drivers</code> groups in order to set tracking flags (eg: {{bug|962151}}). Make sure you also have the <code>edit-bugs</code> and <code>canconfirm</code> permissions.<br />
* You can see security sensitive bugs if someone CCs you into the bug, or if you eventually join the security group list. [https://www.mozilla.org/en-US/about/governance/policies/security-group/bugs/#expanding Security permission] comes later.<br />
<br />
== Internal Documentation ==<br />
* Ask your manager for the permissions to access the [https://drive.google.com/open?id=0B0AhJMhJM7DnbXQ0NlplR0swdjQ|shared team Google drive folder].<br />
<br />
== VPN ==<br />
Configure your system to access to the Mozilla VPN in order to get access to internal tools like Ship-It.<br />
<br />
'''Documentation:'''<br />
* [https://mana.mozilla.org/wiki/pages/viewpage.action?pageId=30769829 VPN General Info]<br />
* [https://mana.mozilla.org/wiki/display/SD/Viscosity+Install+for+Windows Viscosity Install for Windows]<br />
* [https://mana.mozilla.org/wiki/display/SD/Viscosity+Install+for+Mac Viscosity Install for Mac].<br />
* [https://mana.mozilla.org/wiki/display/IT/Configuring+OpenVPN+on+Ubuntu OpenVPN Install for Linux]<br />
<br />
== Ship It ==<br />
[https://ship-it.mozilla.org/ Ship It] is available behind our VPN, note that you will need to use Mozilla DNS servers to resolve the url.<br />
<br />
File a bug ([https://bugzilla.mozilla.org/enter_bug.cgi?product=Infrastructure%20%26%20Operations&component=Infrastructure%3A%20LDAP Infrastructure & Operations::Infrastructure:LDAP]) to be added to the <code>shipit</code> and <code>vpn_shipit</code> groups. Example: {{Bug|1469544}}<br />
<br />
Once you are using the Mozilla VPN, you can access the application and use your LDAP account to log in.<br />
<br />
== Ubuntu Snaps ==<br />
We build and publish a [https://snapcraft.io/firefox Firefox Ubuntu snap package] ourselves.<br />
<br />
Release Engineering has [https://github.com/JohanLorenzo/releasewarrior-2.0/blob/b9db9be529e8e9fa7300bdad06862bcf6a651e17/docs/release-promotion/desktop/ubuntu-snap.md some documentation] on how we create and push snaps.<br />
<br />
The [https://dashboard.snapcraft.io/snaps/firefox/ Firefox Snaps Dashboard] to have a [https://login.ubuntu.com Ubuntu One developer account] and this account to be associated with your @mozilla.com email address. Your Ubuntu One account should have 2FA activated ([https://help.ubuntu.com/community/SSO/FAQs/2FA#How_do_I_add_a_new_authentication_device_and_start_using_2-factor_authentication.3F Ubuntu Specific instructions]).<br />
<br />
Once you have set up your Ubuntu One account and registered as a developer on Snapcraft with this account, ask Release Engineering (currently specifically Johan Lorenzo) to send you an invite to manage Firefox snaps. The Snap uploading process was defined in {{Bug|1467261}}.<br />
<br />
== Release Notes ==<br />
Request admin access to https://nucleus.mozilla.org by filing two bugs.<br />
<br />
First, one to get the Nucleus site added to your SSO account in [https://bugzilla.mozilla.org/enter_bug.cgi?product=Infrastructure%20%26%20Operations&component=Infrastructure%3A%20SSO Infrastructure & Operations::Infrastructure: SSO], Example: {{Bug|1351680}}.<br />
<br />
The second bug is to be added as admin in the Web App [https://bugzilla.mozilla.org/enter_bug.cgi?product=Websites&component=Nucleus Websites::Nucleus]. Example: {{Bug|1135186}}<br />
<br />
== Google Play Console ==<br />
Ask your manager to add you.<br />
<br />
== Balrog ==<br />
TBD<br />
<br />
== Socorro (crash-stats) ==<br />
TBD<br />
<br />
== Trello ==<br />
Trello is used to track the shipping of Firefox features in the [https://trello.com/b/8k1hT2vh/firefox Firefox Trello Board]. Ask Erin Lancaster (elan on IRC) for access.<br />
<br />
Each release has its own column listing the features planned for that specific version. Pro tip: subscribe to a column notification to receive updates given to all the cards in that column.<br />
<br />
Our team also has a [https://trello.com/b/D5vYvuGP/release-management Trello board ] but we currently do not use it.<br />
<br />
== Github ==<br />
Some of our tools are developped on Github, some Firefox features are also developped on Github and many teams use Github for development but also documentation, blogging, project management…<br />
<br />
* if you don't have an account, [https://github.com/join get one].<br />
* Ask your manager to add you to the Release management team on Github (https://github.com/orgs/mozilla/teams/release-management/members)<br />
<br />
Please note that although you can use Github to file bugs in Bugzilla, you should not use it as your work account because Github accounts on bugzilla can't access security and internal bugs.<br />
<br />
== Repositories ==<br />
* hg commit access (''scm_level3'') -- read https://www.mozilla.org/hacking/committer/, fill out a committer agreement, file a bug (eg: {{bug|738713}} except you'll request '''commit''' access, not elevation of current permissions). For this, you will need two [[Modules/All#Core | owners or peers for a core hg module]] to vouch for you as described in [https://www.mozilla.org/en-US/about/governance/policies/commit/access-policy/ Commit Access Policy]. (later)<br />
* Example of asking for level 1 commit access (which lets you push changes to the ''try'' server): {{bug|1116226}}. This is good to start with to get your SSH key and committer agreement set up. (earlier)<br />
* Socorro permissions: {{bug|1229732}}<br />
<br />
== PTO calendar ==<br />
Ask your manager to give you access to the Release Management PTO calendar where all release managers indicate when they are on PTO.<br />
<br />
== Other ==<br />
* This wiki! [[Special:RequestAccount | Create an account]] and update the [[Release_Management/Team_members | team members page]].<br />
<br />
= Communication Channels =<br />
== Release Calendar ==<br />
This page describes our release schedule: [[Release_Management/Calendar | Firefox Release Calendar]]. You should add these to your regular Google calender so you can easily see the state of any release.<br />
* This is the basic public calendar with release dates: https://www.google.com/calendar/embed?src=mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com<br />
* This is the release manager team with tons of detail: https://www.google.com/calendar/embed?src=bW96aWxsYS5jb21fZGJxODRhbnI5aTh0Y25taGFiYXRzdHY1Y29AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ - This is really helpful for the first managed release cycle.<br />
<br />
== E-Mail ==<br />
Note that some of these mailing lists need approval from an administrator.<br />
<br />
'''Our team lists '''<br />
* release-mgmt-team@mozilla.com: General discussions for the whole team<br />
* release-mgmt@mozilla.com: Discussions about releases, schedule…<br />
* release-mgmt-analysis@mozilla.com: Discussions about code coverage, machine learning/Artificial Intelligence, static analysis…<br />
<br />
''' Other useful lists '''<br />
You'll need to manually subscribe to:<br />
* [https://mail.mozilla.org/listinfo/release-drivers release-drivers]<br />
* [https://lists.mozilla.org/listinfo/dev-planning mozilla.dev.planning]<br />
* [https://lists.mozilla.org/listinfo/dev-platform mozilla.dev.platform]<br />
* [https://mail.mozilla.org/listinfo/enterprise Enterprise]<br />
* [https://mail.mozilla.org/listinfo/stability Stability]<br />
* [https://groups.google.com/a/mozilla.com/group/release-automation-notifications/ release-automation-notifications] (Contributors need aninvite)<br />
* [https://mail.mozilla.org/listinfo/security-group security-group] Check out the [https://www.mozilla.org/en-US/about/governance/policies/security-group/membership/ policy] for getting added to the security-group list.<br />
<br />
These are available as [news://news.mozilla.org nntp newsgroups], [https://groups.google.com/forum/#!overview Google groups], and [https://lists.mozilla.org/listinfo mailing](1), [https://mail.mozilla.org/ lists](2).<br />
<br />
== Websites ==<br />
* [https://crash-stats.mozilla.com/ Crash reports]<br />
<br />
== IRC ==<br />
[[IRC | IRC]] is our traditionnal chatting tool, we run our own server (irc.mozilla.org) with a thousand specialized chat rooms. Some people prefer Slack, other IRC so we have chatroom in both.<br />
<br />
* <code>airmozilla</code> - back channel for public broadcasts<br />
* <code>developers</code> - monitor check-ins and speak with devs<br />
* <code>fx-team</code> - good place to speak with desktop team<br />
* <code>mobile</code> - good place to speak with mobile devs<br />
* <code>moco</code> [access_key is here [https://mana.mozilla.org/wiki/display/AVSE/MoCo+Vidyo+Room+and+%23moco+IRC+Channel+Security]]<br />
* <code>planning</code> - back channel for product coordination meeting, good place to speak with broader product team<br />
* <code>pm</code> - Project management<br />
* <code>release-drivers</code> - release related discussions<br />
* <code>releng</code> - releng team channel<br />
* <code>releaseduty</code> - releng team's releaseduty channel<br />
* <code>release-mgmt</code> - our team channel, needs a password, ask relman team.<br />
* <code>security</code> (ask for channel key) - the security team's channel<br />
* <code>qa</code> - QE team channel<br />
* <code>www</code> - for speaking with the mozilla.org team in case a push breaks or otherwise doesn't work<br />
* http://chatzilla.hacksrus.com/faq/#connect<br />
<br />
Many folks uses IRC Cloud as Mozilla as an instance (request an account in Service Now), others run a BNC (an IRC bouncer) (e.g. znc) and/or <code>irssi</code> under screen to get continuous view of traffic.<br />
<br />
See [[#pastebin|below]] for a local pastebin install, so you don't paste huge amounts in channel.<br />
<br />
== Slack ==<br />
[https://mozilla.slack.com/ Mozilla Slack], you can login with [https://sso.mozilla.org sso].<br />
<br />
* <code>release-drivers</code> - release related discussions<br />
* <code>qa-coordination</code> - QE team channel<br />
* <code>release-coordination</code> - Cross functional coordination room during a release<br />
* <code>triage-and-tracking</code> - All things bugzilla<br />
* <code>release-notes</code> - coordination with release notes stakeholders, marketing and writers<br />
* <code>moco</code> - backchannel for meetings<br />
* <code>firefox</code> - firefox development room<br />
<br />
== Meetings ==<br />
As a release manager, you will need to attend recurrent meetings, here is the list:<br />
<br />
'''Tuesday:'''<br />
* 1st Channel meeting<br />
* Feature Deep Dive meeting<br />
'''Wednesday'''<br />
* Cross Functionnal meeting<br />
'''Thursday'''<br />
* 2nd Channel meeting<br />
* Our Team meeting<br />
<br />
Ask your manager and colleagues to invite you to these meetings.<br />
<br />
== EtherPad ==<br />
EtherPad is a great tool for dynamic collaboration during meetings, brainstorming, or other times when you need to collaborate:<br />
* https://public.etherpad-mozilla.org/ for general use<br />
* https://public.etherpad-mozilla.org/p/channel-meeting for release information<br />
* https://public.etherpad-mozilla.org/p/firefox43-worry-list Worry list specific to each release (change the version in the url as needed)<br />
<br />
== Pastebin ==<br />
There's a local pastebin instance at https://pastebin.mozilla.org/, so you don't need to paste multi-lines into a channel. Use this handy [https://hg.mozilla.org/build/braindump/file/tip/utils/pastebin helper script] to pipe to pastebin from terminal.<br />
<br />
it creates a new page from stdin, and outputs the url to stdout<br />
an argument will be interpretted as the syntax highlighting format to use<br />
sample usage: hg diff | pastebin python | pbcopy (last part mac specific)<br />
set & export PASTEBIN_NAME if you don't want to post as anonymous.<br />
<br />
== Planet ==<br />
Add a bug similar to {{bug|605709}} to get your blog syndicated on https://planet.mozilla.org. You can choose to send every post, or create a feed for a custom tag (eg: 'mozilla'). Having your blog syndicated to planet is a great channel for announcing new features (along with tweeting and posting to newsgroups).<br />
<br />
= Software =<br />
== Firefox ==<br />
# Please download & install Firefox [https://nightly.mozilla.org nightly], [https://beta.mozilla.org beta] and [https://firefox.com release]<br />
# [https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_creating-a-profile Create new profiles] for each version + your own profile. Read [https://developer.mozilla.org/en-US/docs/Mozilla/Multiple_Firefox_Profiles Multiple Firefox Profiles] for more help with the profile manager.<br />
<br />
= Handy Links =<br />
== How To and Oft-Used ==<br />
* [[Release_Management]]<br />
* [[Firefox/Channels/Meetings]]<br />
* [https://www.mozilla.org/en-US/firefox/organizations/faq/ ESR FAQ]<br />
* [[Enterprise/Firefox/ExtendedSupport:Proposal]]<br />
* [[Release_Management/ESR_Landing_Process]]<br />
<br />
General info on module owners and partners:<br />
* Module owners [[Modules/All | All Modules]]<br />
* Mozilla Partners [https://docs.google.com/spreadsheets/d/1H38b9RgunWtuUjuv0jc3wiSwcAbpc4Ee2T5egmEojQw/edit#gid=0 Partner Rolodex] - Request permissions to your manager if you can't access this document.<br />
<br />
== Bugzilla ==<br />
* Configure the [https://bugzilla.mozilla.org/userprefs.cgi?tab=securemail securemail] section if you want to see the content of security bugs in your email client. GPG key or [http://kb.mozillazine.org/Getting_an_SMIME_certificate SMIME certificate] are accepted.<br />
* If you don't mind receiving plenty of emails, you can [https://bugzilla.mozilla.org/show_bug.cgi?id=1144694 ask to the bugzilla admin to receive notifications] for Firefox uplift requests<br />
<br />
=== Reports ===<br />
* [https://bugzilla.mozilla.org/page.cgi?id=release_tracking_report.html release tracking report]<br />
=== Queries ===<br />
In your bugzilla preferences, under Saved Searches, you can add some of the following to your footer for quick access:<br />
* [https://bugzilla.mozilla.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=approval-beta%3F&sharer_id=272375 approval-beta?]<br />
* As an exercise, also create the query approval-release? (hint: edit the approval-beta? such, update the value and save it with the new name)<br />
* [https://bugzilla.mozilla.org/buglist.cgi?o1=equals&v1=%3F&known_name=tracking-ff32%3F&f1=cf_tracking_firefox37&query_based_on=tracking-ff32%3F&query_format=advanced&list_id=12037223 tracking_firefoxXY?] (adjust for current beta version as needed)<br />
* [https://bugzilla.mozilla.org/buglist.cgi?o5=notequals&v11=unaffected&j10=OR&o14=notequals&f13=OP&o2=equals&j16=OR&f23=cf_status_firefox50&f29=CP&v5=wontfix&f12=CP&j4=OR&f14=cf_status_firefox50&o17=notequals&o20=notequals&f24=CP&v2=%2B&f21=CP&known_name=Tracking50%2B-Remaining&f10=OP&f19=OP&f22=OP&f1=OP&f20=cf_status_firefox50&f0=OP&f8=cf_status_firefox50&j13=OR&j19=OR&o11=notequals&f18=CP&columnlist=bug_severity%2Cpriority%2Ccomponent%2Clast_visit_ts%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ccf_status_firefox47%2Ccf_status_firefox48%2Ccf_status_firefox49%2Ccf_status_firefox50%2Ccf_status_firefox51%2Ccf_status_firefox52&f15=CP&resolution=---&resolution=FIXED&query_based_on=Tracking50%2B-Remaining&f9=CP&j7=OR&v20=verified%20disabled&f4=OP&o23=notequals&query_format=advanced&v23=fix-optional&j1=OR&f3=CP&v17=disabled&f2=cf_tracking_firefox50&f11=cf_status_firefox50&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&f5=cf_status_firefox50&f17=cf_status_firefox50&v8=fixed&f6=CP&v14=verified&f7=OP&o8=notequals&f16=OP&list_id=13255854 Firefox XY tracked bugs] (Make sure to query for the resolved bugs as well as open ones)<br />
* [https://bugzilla.mozilla.org/buglist.cgi?o5=notequals&list_id=13255848&v11=unaffected&j10=OR&o14=notequals&f13=OP&o2=equals&j16=OR&f29=CP&v5=wontfix&f12=CP&j4=OR&f14=cf_status_firefox_esr45&o17=notequals&o20=notequals&f21=CP&v2=50%2B&known_name=Tracking-esr-50%2B-Remaining&f10=OP&f19=OP&f1=OP&f20=cf_status_firefox_esr45&j13=OR&f8=cf_status_firefox_esr45&f0=OP&j19=OR&o11=notequals&f18=CP&columnlist=bug_severity%2Cpriority%2Ccomponent%2Clast_visit_ts%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ccf_status_firefox40%2Ccf_status_firefox41%2Ccf_status_firefox42%2Ccf_status_firefox43%2Ccf_status_firefox44%2Ccf_status_firefox45%2Ccf_status_firefox46&f15=CP&resolution=---&resolution=FIXED&query_based_on=Tracking-esr-50%2B-Remaining&f9=CP&v20=verified%20disabled&j7=OR&f4=OP&query_format=advanced&j1=OR&v17=disabled&f3=CP&f2=cf_tracking_firefox_esr45&f11=cf_status_firefox_esr45&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&f5=cf_status_firefox_esr45&f17=cf_status_firefox_esr45&v8=fixed&v14=verified&f6=CP&f7=OP&o8=notequals&f16=OP ESR tracked list]<br />
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&keywords=regression%2C&keywords_type=allwords&list_id=13255849&v11=INCOMPLETE&j2=OR&o1=equals&o9=notequals&v10=WORKSFORME&f13=CP&v5=---&f12=resolution&v9=WONTFIX&o4=equals&o12=notequals&v1=affected&known_name=New-Regressions-50&v4=%3F&f10=resolution&f1=cf_status_firefox50&o3=equals&f8=resolution&v3=unaffected&o11=notequals&columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ccf_status_firefox48%2Ccf_status_firefox49%2Ccf_status_firefox50%2Ccf_status_firefox51%2Ccf_status_firefox52&query_based_on=New-Regressions-50&f9=resolution&f4=cf_status_firefox49&query_format=advanced&o10=notequals&f3=cf_status_firefox49&f2=OP&v12=EXPIRED&f11=resolution&f5=cf_status_firefox49&v8=INVALID&f6=CP&f7=OP&o8=notequals New regressions] - Note that fix-optional should be removed from this query<br />
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&n2=1&keywords=regression%2C&keywords_type=allwords&list_id=13255850&v11=INCOMPLETE&j2=OR&o1=equals&o9=notequals&v10=WORKSFORME&f13=CP&v5=---&f12=resolution&v9=WONTFIX&o4=equals&o12=notequals&v1=affected&known_name=Carryover-Regressions-50&v4=%3F&f10=resolution&f1=cf_status_firefox50&o3=equals&f8=resolution&o11=notequals&v3=unaffected&columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ccf_status_firefox47%2Ccf_status_firefox48%2Ccf_status_firefox49%2Ccf_status_firefox50%2Ccf_status_firefox51%2Ccf_status_firefox52&query_based_on=Carryover-Regressions-50&f9=resolution&f4=cf_status_firefox49&o10=notequals&query_format=advanced&f3=cf_status_firefox49&f2=OP&v12=EXPIRED&f11=resolution&f5=cf_status_firefox49&v8=INVALID&f6=CP&f7=OP&o8=notequals Carryover regressions] - Note that fix-optional should be removed from this query<br />
* [https://bugzilla.mozilla.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=relnote-firefox%3F&sharer_id=272375 relnote-firefox?]<br />
* Also create query for approval-esrXY<br />
<br />
= Tools =<br />
== Repos to check out if you are going to develop ==<br />
* [https://github.com/mozilla/relman-auto-nag Bugzilla nag tool]<br />
* [https://github.com/mozilla/ship-it/ ship-it]<br />
* [https://github.com/mozilla/rna Nucleus]<br />
* [https://github.com/mozilla/bedrock Bedrock] Mozilla website<br />
* [http://harthur.github.io/mozregression/ mozregression]<br />
* [https://github.com/mozilla-releng/mozapkpublisher/ mozapkpublisher]<br />
<br />
== Helpful webextensions ==<br />
* [https://addons.mozilla.org/en-US/firefox/addon/bugzilla-crash-stop/ Crash Stop] provides crash data in Bugzilla<br />
* [https://addons.mozilla.org/en-US/firefox/addon/gecko-code-coverage/ Gecko Code Coverage] provides code coverage info in Bugzilla, crash-stats, dxr, hg.m.o, ...<br />
<br />
= Community Contributors =<br />
Some of the above access & permissions will either not be accessible to community contributors or it might take a bit longer to achieve depending on the level & needs of the contributions being made.<br />
<br />
Currently when Early Feedback Community Release Managers are onboarded we're basing it on these [http://lukasblakk.com/contribution-opportunity-early-feedback-community-release-manager/ blog] [http://lukasblakk.com/contribution-opportunity-early-feedback-community-release-manager-2/ posts] (one was based on the other). The short version is that we're looking for people who are interested in understanding how Release Management in a major Open Source project works and our hope is that they learn while also helping us maintain a higher level of quality and visibility into release-affecting issues than a small team of employees can manage.<br />
<br />
How that can play out is in several ways. First, any new community member who wants to work with RelMan should have a very informal conversation with a current staff member to discuss their experience, interests, and then ultimately to come up with a good time for a regular meeting that can onboard them (if they're still interested) over a period of weeks & months.<br />
<br />
Depending on the volunteer's time availability, usually 1 or 2 hour-long triage sessions a week are feasible. Ideally these will at least sometimes include other members of the team so that the new contributor is getting to know the rest of the members. Eventually the contributor should also start getting invited to (and attending when possible) our 30 min weekly team meeting.<br />
<br />
== Links to get started ==<br />
* [[Release_Management/Queries/Nightly|Nightly Triage]]<br />
* [[Release_Management/Queries|All Queries]]<br />
* [[RapidRelease/LandingPlan|Landing Plan]]<br />
* [[Release_Management/aurora_Landing_Process|Aurora/DevEdition Landing Process]]<br />
* Article on our release process in [http://www.drdobbs.com/architecture-and-design/firefox-release-engineering/240168409 Dr. Dobbs] (mostly still true)<br />
<br />
= Fun Tips & Tricks =<br />
== Subcribe to fun stuff ==<br />
* Request here https://bugzilla.mozilla.org/show_bug.cgi?id=391268<br />
<br />
[[category:Release_Management|O]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Calendar&diff=1218679
Release Management/Calendar
2019-10-07T18:44:02Z
<p>Ritu Kothari: ESR 68.6 should be aligned with Fx74, fixing my typo from a few weeks back</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Calendar}}<br />
This schedule is based on the current [[RapidRelease]] plan. Future dates may change if the process changes. Code is not always released to users on the same day as the branch migration. The release to users may be a few days later, to allow for manual testing and sign-off. Thunderbird tracks the [https://www.mozilla.org/en-US/firefox/organizations/ ESR schedule] column per [[Thunderbird:Home#Releases|Thunderbird release info]].<br />
<br />
== Calendars ==<br />
<br />
This wiki page may not always have the most current information. Please refer to one of the following calendars for up-to-date scheduling:<br />
<br />
* [https://www.google.com/calendar/embed?src=mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com Firefox Merge/Release Dates] ([https://www.google.com/calendar/ical/mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com/public/basic.ics ICS for Thunderbird/Lightning or your calendar app]) (low noise)<br />
* [https://www.google.com/calendar/embed?src=bW96aWxsYS5jb21fZGJxODRhbnI5aTh0Y25taGFiYXRzdHY1Y29AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ Firefox Merge/Release Full Scheduling Calendar] ([https://calendar.google.com/calendar/ical/mozilla.com_dbq84anr9i8tcnmhabatstv5co%40group.calendar.google.com/public/basic.ics ICS]) (highly detailed - 99.99% up to date)<br />
<br />
== Future branch dates ==<br />
<big>[[Release_Management/Release_owners|Release Owners]]</big><br />
{| class="wikitable"<br />
|-<br />
!Quarter ||Soft Freeze ||Merge Date ||Nightly ||Beta ||Release Date ||Release ||ESR<br />
|-<br />
|rowspan="2"|Q4 2019<br />
!2019-10-14<br />
!2019-10-21<br />
|Firefox 72||Firefox 71<br />
!2019-10-22<br />
|Firefox 70<br />
|Firefox 68.2<br />
|-<br />
!2019-11-25<br />
!2019-12-02<br />
|Firefox 73||Firefox 72<br />
!2019-12-03<br />
|Firefox 71<br />
|Firefox 68.3<br />
|-<br />
|rowspan="3"|Q1 2020<br />
!2020-01-02<br />
!2020-01-06<br />
|Firefox 74||Firefox 73<br />
!2020-01-07<br />
|Firefox 72<br />
|Firefox 68.4<br />
|-<br />
!2020-02-06<br />
!2020-02-10<br />
|Firefox 75||Firefox 74<br />
!2020-02-11<br />
|Firefox 73<br />
|Firefox 68.5<br />
|-<br />
!2020-03-05<br />
!2020-03-09<br />
|Firefox 76||Firefox 75<br />
!2020-03-10<br />
|Firefox 74<br />
|Firefox 68.6<br />
|-<br />
|}<br />
<br />
<p>The Nightly soft freeze is typically during the week prior to merge day. During this period, high-risk patches should avoid landing until after the Nightly version bump lands on mozilla-central on merge day.</p><br />
<br />
== Past branch dates ==<br />
More details on contents of releases can be found in the [https://www.mozilla.org/firefox/releases/ release notes archive] or [https://en.wikipedia.org/wiki/Firefox_version_history Wikipedia: Firefox version history].<br />
<br />
{| class="wikitable"<br />
|-<br />
!Soft Freeze||Merge Date||Central||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2019-08-26<br />
!2019-09-02<br />
|Firefox 71||Firefox 70<br />
!2019-09-03<br />
|Firefox 69<br />
|Firefox 60.9; 68.1<br />
|-<br />
!2019-07-01<br />
!2019-07-08<br />
|Firefox 70||Firefox 69<br />
!2019-07-09<br />
|Firefox 68<br />
|Firefox 60.8; 68.0<br />
|-<br />
!2019-05-13<br />
!2019-05-20<br />
|Firefox 69||Firefox 68<br />
!2019-05-21<br />
|Firefox 67<br />
|Firefox 60.7<br />
|-<br />
!2019-03-11<br />
!2019-03-18<br />
|[https://docs.google.com/spreadsheets/d/1jtNuLGugHVgZTKR3NXQGngA_EjzSGxpRBzW-DvNK3EI/edit Firefox 68]||[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/edit Firefox 67]<br />
!2019-03-19<br />
|Firefox 66<br />
|Firefox 60.6<br />
|-<br />
!2019-01-21<br />
!2019-01-28<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/edit Firefox 67]||Firefox 66<br />
!2019-01-29<br />
|Firefox 65<br />
|Firefox 60.5<br />
|-<br />
!2018-12-03<br />
!2018-12-10<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/edit Firefox 66]||Firefox 65<br />
!2018-12-11<br />
|Firefox 64<br />
|Firefox 60.4<br />
|-<br />
!2018-10-15<br />
!2018-10-22<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit Firefox 65]||Firefox 64<br />
!2018-10-23<br />
|Firefox 63<br />
|Firefox 60.3<br />
|-<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
!Merge Date||Central||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2018-09-04<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit Firefox 64]||Firefox 63<br />
!2018-09-05<br />
|Firefox 62<br />
|Firefox 60.2<br />
|-<br />
!2018-06-25<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit Firefox 63]||Firefox 62<br />
!2018-06-26<br />
|Firefox 61<br />
|Firefox 52.9; 60.1<br />
|-<br />
!2018-05-07<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit Firefox 62]||Firefox 61<br />
!2018-05-09<br />
|Firefox 60<br />
|Firefox 52.8; 60.0<br />
|-<br />
!2018-03-12<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit Firefox 61]||Firefox 60<br />
!2018-03-13<br />
|Firefox 59<br />
|Firefox 52.7<br />
|-<br />
!2018-01-22<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit Firefox 60]||Firefox 59<br />
!2018-01-23<br />
|Firefox 58<br />
|Firefox 52.6<br />
|-<br />
!2017-11-13<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit Firefox 59]||Firefox 58<br />
!2017-11-14<br />
|Firefox 57<br />
|Firefox 52.5<br />
|-<br />
!2017-09-21<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit Firefox 58]||Firefox 57<br />
!2017-09-28<br />
|Firefox 56<br />
|Firefox 52.4<br />
|-<br />
!2017-08-02<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit Firefox 57]||Firefox 56<br />
!2017-08-08<br />
|Firefox 55<br />
|Firefox 52.3<br />
|-<br />
!2017-06-12<br />
|Firefox 56||Firefox 55<br />
!2017-06-13<br />
|Firefox 54<br />
|Firefox 52.2<br />
|-<br />
!2017-04-18<br />
|Firefox 55||Firefox 54<br />
!2017-04-19<br />
|Firefox 53<br />
|Firefox 45.9; 52.1<br />
|-<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
!Merge Date||Central||Aurora||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2017-03-06<br />
|Firefox 55||Firefox 54||Firefox 53<br />
!2017-03-07<br />
|Firefox 52<br />
|Firefox 45.8; 52.0<br />
|-<br />
!2017-01-23<br />
|Firefox 54||Firefox 53||Firefox 52<br />
!2017-01-24<br />
|Firefox 51<br />
|Firefox 45.7<br />
|-<br />
|<br />
|<br />
|<br />
|<br />
!2016-12-13<br />
|Firefox 50.1.0<br />
|Firefox 45.6<br />
|-<br />
!2016-11-14<br />
|Firefox 53||Firefox 52||Firefox 51<br />
!2016-11-15<br />
|Firefox 50<br />
|Firefox 45.5<br />
|-<br />
!2016-09-19<br />
|Firefox 52||Firefox 51||Firefox 50<br />
!2016-09-20<br />
|Firefox 49<br />
|Firefox 45.4<br />
|-<br />
!2016-08-01<br />
|Firefox 51||Firefox 50||Firefox 49<br />
!2016-08-02<br />
|Firefox 48<br />
|Firefox 45.3<br />
|-<br />
!2016-06-06<br />
|Firefox 50||Firefox 49||Firefox 48<br />
!2016-06-07<br />
|Firefox 47<br />
|Firefox 45.2<br />
|-<br />
!2016-04-25<br />
|Firefox 49||Firefox 48||Firefox 47<br />
!2016-04-26<br />
|Firefox 46<br />
|Firefox 38.8; 45.1<br />
|-<br />
!2016-03-07<br />
|Firefox 48||Firefox 47||Firefox 46<br />
!2016-03-08<br />
|Firefox 45<br />
|Firefox 38.7; 45.0<br />
|-<br />
!2016-01-25<br />
|Firefox 47||Firefox 46||Firefox 45<br />
!2016-01-26<br />
|Firefox 44<br />
|Firefox 38.6<br />
|-<br />
!2015-12-14<br />
|Firefox 46||Firefox 45||Firefox 44<br />
!2015-12-15<br />
|Firefox 43<br />
|Firefox 38.5<br />
|-<br />
!2015-10-29<br />
|Firefox 45||Firefox 44||Firefox 43<br />
!2015-11-03<br />
|Firefox 42<br />
|Firefox 38.4<br />
|-<br />
!2015-09-21<br />
|Firefox 44||Firefox 43||Firefox 42<br />
!2015-09-22<br />
|Firefox 41<br />
|Firefox 38.3<br />
|-<br />
!2015-08-10<br />
|Firefox 43||Firefox 42||Firefox 41<br />
!2015-08-11<br />
|Firefox 40<br />
|Firefox 38.2<br />
|-<br />
!2015-06-29<br />
|Firefox 42||Firefox 41||Firefox 40<br />
!2015-06-30<br />
|Firefox 39<br />
|Firefox 31.8; 38.1<br />
|-<br />
!<br />
| || || <br />
!2015-06-02<br />
|Firefox 38.0.5<br />
|-<br />
!2015-05-11*<br />
|Firefox 41||Firefox 40||Firefox 39<br />
!2015-05-12*<br />
|Firefox 38<br />
|Firefox 31.7; 38.0<br />
|-<br />
!2015-03-30*<br />
|Firefox 40||Firefox 39||Firefox 38<br />
!2015-03-31*<br />
|Firefox 37<br />
|Firefox 31.6<br />
|-<br />
!2015-02-23<br />
|Firefox 39||Firefox 38||Firefox 37<br />
!2015-02-24<br />
|Firefox 36<br />
|Firefox 31.5<br />
|-<br />
!2015-01-12*<br />
|Firefox 38||Firefox 37||Firefox 36<br />
!2015-01-13*<br />
|Firefox 35<br />
|Firefox 31.4<br />
|-<br />
!2014-11-28*<br />
|Firefox 37||Firefox 36||Firefox 35<br />
!2014-12-01*<br />
|Firefox 34<br />
|Firefox 31.3<br />
|-<br />
!2014-10-13 <br />
|Firefox 36||Firefox 35||Firefox 34<br />
!2014-10-14<br />
|Firefox 33<br />
|Firefox 31.2<br />
|-<br />
!2014-09-02*<br />
|Firefox 35||Firefox 34||Firefox 33<br />
!2014-09-02<br />
|Firefox 32<br />
|Firefox 24.8; 31.1<br />
|-<br />
!2014-07-21<br />
|Firefox 34||Firefox 33||Firefox 32<br />
!2014-07-22<br />
|Firefox 31<br />
|Firefox 24.7; 31.0<br />
|-<br />
!2014-06-09<br />
|Firefox 33||Firefox 32||Firefox 31<br />
!2014-06-10<br />
|Firefox 30<br />
|Firefox 24.6<br />
|-<br />
!2014-04-28<br />
|Firefox 32||Firefox 31||Firefox 30<br />
!2014-04-29<br />
|Firefox 29<br />
|Firefox 24.5<br />
|-<br />
!2014-03-17<br />
|Firefox 31||Firefox 30||Firefox 29<br />
!2014-03-18<br />
|Firefox 28<br />
|Firefox 24.4<br />
|-<br />
!2014-02-03*<br />
|Firefox 30||Firefox 29||Firefox 28<br />
!2014-02-04*<br />
|Firefox 27<br />
|Firefox 24.3<br />
|-<br />
!2013-12-09<br />
|Firefox 29||Firefox 28||Firefox 27<br />
!2013-12-10<br />
|Firefox 26<br />
|Firefox 24.2<br />
|-<br />
!2013-10-28<br />
|Firefox 28||Firefox 27||Firefox 26<br />
!2013-10-29<br />
|Firefox 25<br />
|Firefox 17.0.10; 24.1<br />
|-<br />
!2013-09-16<br />
|Firefox 27||Firefox 26||Firefox 25<br />
!2013-09-17<br />
|Firefox 24<br />
|Firefox 17.0.9; 24.0<br />
|-<br />
!2013-08-05<br />
|Firefox 26||Firefox 25||Firefox 24<br />
!2013-08-06<br />
|Firefox 23<br />
|Firefox 17.0.8<br />
|-<br />
!2013-06-24<br />
|Firefox 25||Firefox 24||Firefox 23<br />
!2013-06-25<br />
|Firefox 22<br />
|Firefox 17.0.7<br />
|-<br />
!2013-05-13<br />
|Firefox 24||Firefox 23||Firefox 22<br />
!2013-05-14<br />
|Firefox 21<br />
|Firefox 17.0.6<br />
|-<br />
!2013-04-01<br />
|Firefox 23||Firefox 22||Firefox 21<br />
!2013-04-02<br />
|Firefox 20<br />
|Firefox 17.0.5<br />
|-<br />
!2013-02-19*<br />
|Firefox 22||Firefox 21||Firefox 20<br />
!2013-02-19<br />
|Firefox 19<br />
|Firefox 17.0.3<br />
|-<br />
!2013-01-07<nowiki>*</nowiki><br />
|Firefox 21||Firefox 20||Firefox 19<br />
!2013-01-08<nowiki>*</nowiki><br />
|Firefox 18<br />
|Firefox 10.0.12; 17.0.2<br />
|-<br />
!2012-11-19<br />
|Firefox 20||Firefox 19||Firefox 18<br />
!2012-11-20<br />
|Firefox 17<br />
|Firefox 10.0.11; 17.0<br />
|-<br />
!2012-10-08<br />
|Firefox 19<br />
|Firefox 18<br />
|Firefox 17<br />
!2012-10-09<br />
|Firefox 16<br />
|Firefox 10.0.8<br />
|-<br />
!2012-08-27<br />
|Firefox 18<br />
|Firefox 17<br />
|Firefox 16<br />
!2012-08-28<br />
|Firefox 15<br />
|Firefox 10.0.7<br />
|-<br />
!2012-07-16<br />
|Firefox 17<br />
|Firefox 16<br />
|Firefox 15<br />
!2012-07-17<br />
|Firefox 14<br />
|Firefox 10.0.6<br />
|-<br />
!2012-06-05<br />
|Firefox 16<br />
|Firefox 15<br />
|Firefox 14<br />
!2012-06-05<br />
|Firefox 13<br />
|Firefox 10.0.5<br />
|-<br />
!2012-04-24<br />
|Firefox 15<br />
|Firefox 14<br />
|Firefox 13<br />
!2012-04-24<br />
|Firefox 12<br />
|Firefox 10.0.4<br />
|-<br />
!2012-03-13<br />
|Firefox 14<br />
|Firefox 13<br />
|Firefox 12<br />
!2012-03-13<br />
|Firefox 11<br />
|Firefox 10.0.3<br />
|-<br />
!2012-01-31<br />
|Firefox 13<br />
|Firefox 12<br />
|Firefox 11<br />
!2012-01-31<br />
|Firefox 10<br />
|Firefox 10.0<br />
|-<br />
!2011-12-20<br />
|Firefox 12<br />
|Firefox 11<br />
|Firefox 10<br />
!2011-12-20<br />
|Firefox 9<br />
|-<br />
!2011-11-08<br />
|Firefox 11<br />
|Firefox 10<br />
|Firefox 9<br />
!2011-11-08<br />
|Firefox 8<br />
|-<br />
!2011-09-27<br />
|Firefox 10<br />
|Firefox 9<br />
|Firefox 8<br />
!2011-09-27<br />
|Firefox 7<br />
|-<br />
!2011-08-16<br />
|Firefox 9<br />
|Firefox 8<br />
|Firefox 7<br />
!2011-08-16<br />
|Firefox 6<br />
|-<br />
!2011-07-05<br />
|Firefox 8||Firefox 7||Firefox 6<br />
!<br />
|<br />
|-<br />
!<br />
| || || <br />
!2011-06-21<br />
|Firefox 5<br />
|-<br />
!2011-05-24<br />
|Firefox 7||Firefox 6|| <br />
|-<br />
!2011-05-17<br />
| || ||Firefox 5<br />
|-<br />
!2011-04-12<br />
|Firefox 6||Firefox 5 <br />
|-<br />
|}<br />
<br />
<nowiki>*</nowiki>Some release dates and merge dates are rescheduled to avoid conflicts with holidays.<br />
<br />
Notes:<br />
* Irregular scheduling starting 2016.<br />
* Six week schedule from 2011 to 2015 (with some dates delayed to avoid conflicts with holidays).<br />
* Firefox 5 was on a slightly different schedule. It spent five weeks each on Aurora and Beta while later releases spent six weeks on each branch.<br />
<br />
[[category:Release_Management|R]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Calendar&diff=1217924
Release Management/Calendar
2019-09-16T19:51:07Z
<p>Ritu Kothari: /* Future branch dates */ Adding launch dates for Q1 2020</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Calendar}}<br />
This schedule is based on the current [[RapidRelease]] plan. Future dates may change if the process changes. Code is not always released to users on the same day as the branch migration. The release to users may be a few days later, to allow for manual testing and sign-off. Thunderbird tracks the [https://www.mozilla.org/en-US/firefox/organizations/ ESR schedule] column per [[Thunderbird:Home#Releases|Thunderbird release info]].<br />
<br />
== Calendars ==<br />
<br />
This wiki page may not always have the most current information. Please refer to one of the following calendars for up-to-date scheduling:<br />
<br />
* [https://www.google.com/calendar/embed?src=mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com Firefox Merge/Release Dates] ([https://www.google.com/calendar/ical/mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com/public/basic.ics ICS for Thunderbird/Lightning or your calendar app]) (low noise)<br />
* [https://www.google.com/calendar/embed?src=bW96aWxsYS5jb21fZGJxODRhbnI5aTh0Y25taGFiYXRzdHY1Y29AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ Firefox Merge/Release Full Scheduling Calendar] ([https://calendar.google.com/calendar/ical/mozilla.com_dbq84anr9i8tcnmhabatstv5co%40group.calendar.google.com/public/basic.ics ICS]) (highly detailed - 99.99% up to date)<br />
<br />
== Future branch dates ==<br />
<big>[[Release_Management/Release_owners|Release Owners]]</big><br />
{| class="wikitable"<br />
|-<br />
!Quarter ||Soft Freeze ||Merge Date ||Nightly ||Beta ||Release Date ||Release ||ESR<br />
|-<br />
|rowspan="2"|Q4 2019<br />
!2019-10-14<br />
!2019-10-21<br />
|Firefox 72||Firefox 71<br />
!2019-10-22<br />
|Firefox 70<br />
|Firefox 68.2<br />
|-<br />
!2019-11-25<br />
!2019-12-02<br />
|Firefox 73||Firefox 72<br />
!2019-12-03<br />
|Firefox 71<br />
|Firefox 68.3<br />
|-<br />
|rowspan="3"|Q1 2020<br />
!2020-01-02<br />
!2020-01-06<br />
|Firefox 74||Firefox 73<br />
!2020-01-07<br />
|Firefox 72<br />
|Firefox 68.4<br />
|-<br />
!2020-02-06<br />
!2020-02-10<br />
|Firefox 75||Firefox 74<br />
!2020-02-11<br />
|Firefox 73<br />
|Firefox 68.5<br />
|-<br />
!2020-03-05<br />
!2020-03-09<br />
|Firefox 76||Firefox 75<br />
!2020-03-10<br />
|Firefox 74<br />
|Firefox 68.5<br />
|-<br />
|}<br />
<br />
<p>The Nightly soft freeze is typically during the week prior to merge day. During this period, high-risk patches should avoid landing until after the Nightly version bump lands on mozilla-central on merge day.</p><br />
<br />
== Past branch dates ==<br />
More details on contents of releases can be found in the [https://www.mozilla.org/firefox/releases/ release notes archive] or [https://en.wikipedia.org/wiki/Firefox_version_history Wikipedia: Firefox version history].<br />
<br />
{| class="wikitable"<br />
|-<br />
!Soft Freeze||Merge Date||Central||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2019-08-26<br />
!2019-09-02<br />
|Firefox 71||Firefox 70<br />
!2019-09-03<br />
|Firefox 69<br />
|Firefox 60.9; 68.1<br />
|-<br />
!2019-07-01<br />
!2019-07-08<br />
|Firefox 70||Firefox 69<br />
!2019-07-09<br />
|Firefox 68<br />
|Firefox 60.8; 68.0<br />
|-<br />
!2019-05-13<br />
!2019-05-20<br />
|Firefox 69||Firefox 68<br />
!2019-05-21<br />
|Firefox 67<br />
|Firefox 60.7<br />
|-<br />
!2019-03-11<br />
!2019-03-18<br />
|[https://docs.google.com/spreadsheets/d/1jtNuLGugHVgZTKR3NXQGngA_EjzSGxpRBzW-DvNK3EI/edit Firefox 68]||[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/edit Firefox 67]<br />
!2019-03-19<br />
|Firefox 66<br />
|Firefox 60.6<br />
|-<br />
!2019-01-21<br />
!2019-01-28<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/edit Firefox 67]||Firefox 66<br />
!2019-01-29<br />
|Firefox 65<br />
|Firefox 60.5<br />
|-<br />
!2018-12-03<br />
!2018-12-10<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/edit Firefox 66]||Firefox 65<br />
!2018-12-11<br />
|Firefox 64<br />
|Firefox 60.4<br />
|-<br />
!2018-10-15<br />
!2018-10-22<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit Firefox 65]||Firefox 64<br />
!2018-10-23<br />
|Firefox 63<br />
|Firefox 60.3<br />
|-<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
!Merge Date||Central||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2018-09-04<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit Firefox 64]||Firefox 63<br />
!2018-09-05<br />
|Firefox 62<br />
|Firefox 60.2<br />
|-<br />
!2018-06-25<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit Firefox 63]||Firefox 62<br />
!2018-06-26<br />
|Firefox 61<br />
|Firefox 52.9; 60.1<br />
|-<br />
!2018-05-07<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit Firefox 62]||Firefox 61<br />
!2018-05-09<br />
|Firefox 60<br />
|Firefox 52.8; 60.0<br />
|-<br />
!2018-03-12<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit Firefox 61]||Firefox 60<br />
!2018-03-13<br />
|Firefox 59<br />
|Firefox 52.7<br />
|-<br />
!2018-01-22<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit Firefox 60]||Firefox 59<br />
!2018-01-23<br />
|Firefox 58<br />
|Firefox 52.6<br />
|-<br />
!2017-11-13<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit Firefox 59]||Firefox 58<br />
!2017-11-14<br />
|Firefox 57<br />
|Firefox 52.5<br />
|-<br />
!2017-09-21<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit Firefox 58]||Firefox 57<br />
!2017-09-28<br />
|Firefox 56<br />
|Firefox 52.4<br />
|-<br />
!2017-08-02<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit Firefox 57]||Firefox 56<br />
!2017-08-08<br />
|Firefox 55<br />
|Firefox 52.3<br />
|-<br />
!2017-06-12<br />
|Firefox 56||Firefox 55<br />
!2017-06-13<br />
|Firefox 54<br />
|Firefox 52.2<br />
|-<br />
!2017-04-18<br />
|Firefox 55||Firefox 54<br />
!2017-04-19<br />
|Firefox 53<br />
|Firefox 45.9; 52.1<br />
|-<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
!Merge Date||Central||Aurora||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2017-03-06<br />
|Firefox 55||Firefox 54||Firefox 53<br />
!2017-03-07<br />
|Firefox 52<br />
|Firefox 45.8; 52.0<br />
|-<br />
!2017-01-23<br />
|Firefox 54||Firefox 53||Firefox 52<br />
!2017-01-24<br />
|Firefox 51<br />
|Firefox 45.7<br />
|-<br />
|<br />
|<br />
|<br />
|<br />
!2016-12-13<br />
|Firefox 50.1.0<br />
|Firefox 45.6<br />
|-<br />
!2016-11-14<br />
|Firefox 53||Firefox 52||Firefox 51<br />
!2016-11-15<br />
|Firefox 50<br />
|Firefox 45.5<br />
|-<br />
!2016-09-19<br />
|Firefox 52||Firefox 51||Firefox 50<br />
!2016-09-20<br />
|Firefox 49<br />
|Firefox 45.4<br />
|-<br />
!2016-08-01<br />
|Firefox 51||Firefox 50||Firefox 49<br />
!2016-08-02<br />
|Firefox 48<br />
|Firefox 45.3<br />
|-<br />
!2016-06-06<br />
|Firefox 50||Firefox 49||Firefox 48<br />
!2016-06-07<br />
|Firefox 47<br />
|Firefox 45.2<br />
|-<br />
!2016-04-25<br />
|Firefox 49||Firefox 48||Firefox 47<br />
!2016-04-26<br />
|Firefox 46<br />
|Firefox 38.8; 45.1<br />
|-<br />
!2016-03-07<br />
|Firefox 48||Firefox 47||Firefox 46<br />
!2016-03-08<br />
|Firefox 45<br />
|Firefox 38.7; 45.0<br />
|-<br />
!2016-01-25<br />
|Firefox 47||Firefox 46||Firefox 45<br />
!2016-01-26<br />
|Firefox 44<br />
|Firefox 38.6<br />
|-<br />
!2015-12-14<br />
|Firefox 46||Firefox 45||Firefox 44<br />
!2015-12-15<br />
|Firefox 43<br />
|Firefox 38.5<br />
|-<br />
!2015-10-29<br />
|Firefox 45||Firefox 44||Firefox 43<br />
!2015-11-03<br />
|Firefox 42<br />
|Firefox 38.4<br />
|-<br />
!2015-09-21<br />
|Firefox 44||Firefox 43||Firefox 42<br />
!2015-09-22<br />
|Firefox 41<br />
|Firefox 38.3<br />
|-<br />
!2015-08-10<br />
|Firefox 43||Firefox 42||Firefox 41<br />
!2015-08-11<br />
|Firefox 40<br />
|Firefox 38.2<br />
|-<br />
!2015-06-29<br />
|Firefox 42||Firefox 41||Firefox 40<br />
!2015-06-30<br />
|Firefox 39<br />
|Firefox 31.8; 38.1<br />
|-<br />
!<br />
| || || <br />
!2015-06-02<br />
|Firefox 38.0.5<br />
|-<br />
!2015-05-11*<br />
|Firefox 41||Firefox 40||Firefox 39<br />
!2015-05-12*<br />
|Firefox 38<br />
|Firefox 31.7; 38.0<br />
|-<br />
!2015-03-30*<br />
|Firefox 40||Firefox 39||Firefox 38<br />
!2015-03-31*<br />
|Firefox 37<br />
|Firefox 31.6<br />
|-<br />
!2015-02-23<br />
|Firefox 39||Firefox 38||Firefox 37<br />
!2015-02-24<br />
|Firefox 36<br />
|Firefox 31.5<br />
|-<br />
!2015-01-12*<br />
|Firefox 38||Firefox 37||Firefox 36<br />
!2015-01-13*<br />
|Firefox 35<br />
|Firefox 31.4<br />
|-<br />
!2014-11-28*<br />
|Firefox 37||Firefox 36||Firefox 35<br />
!2014-12-01*<br />
|Firefox 34<br />
|Firefox 31.3<br />
|-<br />
!2014-10-13 <br />
|Firefox 36||Firefox 35||Firefox 34<br />
!2014-10-14<br />
|Firefox 33<br />
|Firefox 31.2<br />
|-<br />
!2014-09-02*<br />
|Firefox 35||Firefox 34||Firefox 33<br />
!2014-09-02<br />
|Firefox 32<br />
|Firefox 24.8; 31.1<br />
|-<br />
!2014-07-21<br />
|Firefox 34||Firefox 33||Firefox 32<br />
!2014-07-22<br />
|Firefox 31<br />
|Firefox 24.7; 31.0<br />
|-<br />
!2014-06-09<br />
|Firefox 33||Firefox 32||Firefox 31<br />
!2014-06-10<br />
|Firefox 30<br />
|Firefox 24.6<br />
|-<br />
!2014-04-28<br />
|Firefox 32||Firefox 31||Firefox 30<br />
!2014-04-29<br />
|Firefox 29<br />
|Firefox 24.5<br />
|-<br />
!2014-03-17<br />
|Firefox 31||Firefox 30||Firefox 29<br />
!2014-03-18<br />
|Firefox 28<br />
|Firefox 24.4<br />
|-<br />
!2014-02-03*<br />
|Firefox 30||Firefox 29||Firefox 28<br />
!2014-02-04*<br />
|Firefox 27<br />
|Firefox 24.3<br />
|-<br />
!2013-12-09<br />
|Firefox 29||Firefox 28||Firefox 27<br />
!2013-12-10<br />
|Firefox 26<br />
|Firefox 24.2<br />
|-<br />
!2013-10-28<br />
|Firefox 28||Firefox 27||Firefox 26<br />
!2013-10-29<br />
|Firefox 25<br />
|Firefox 17.0.10; 24.1<br />
|-<br />
!2013-09-16<br />
|Firefox 27||Firefox 26||Firefox 25<br />
!2013-09-17<br />
|Firefox 24<br />
|Firefox 17.0.9; 24.0<br />
|-<br />
!2013-08-05<br />
|Firefox 26||Firefox 25||Firefox 24<br />
!2013-08-06<br />
|Firefox 23<br />
|Firefox 17.0.8<br />
|-<br />
!2013-06-24<br />
|Firefox 25||Firefox 24||Firefox 23<br />
!2013-06-25<br />
|Firefox 22<br />
|Firefox 17.0.7<br />
|-<br />
!2013-05-13<br />
|Firefox 24||Firefox 23||Firefox 22<br />
!2013-05-14<br />
|Firefox 21<br />
|Firefox 17.0.6<br />
|-<br />
!2013-04-01<br />
|Firefox 23||Firefox 22||Firefox 21<br />
!2013-04-02<br />
|Firefox 20<br />
|Firefox 17.0.5<br />
|-<br />
!2013-02-19*<br />
|Firefox 22||Firefox 21||Firefox 20<br />
!2013-02-19<br />
|Firefox 19<br />
|Firefox 17.0.3<br />
|-<br />
!2013-01-07<nowiki>*</nowiki><br />
|Firefox 21||Firefox 20||Firefox 19<br />
!2013-01-08<nowiki>*</nowiki><br />
|Firefox 18<br />
|Firefox 10.0.12; 17.0.2<br />
|-<br />
!2012-11-19<br />
|Firefox 20||Firefox 19||Firefox 18<br />
!2012-11-20<br />
|Firefox 17<br />
|Firefox 10.0.11; 17.0<br />
|-<br />
!2012-10-08<br />
|Firefox 19<br />
|Firefox 18<br />
|Firefox 17<br />
!2012-10-09<br />
|Firefox 16<br />
|Firefox 10.0.8<br />
|-<br />
!2012-08-27<br />
|Firefox 18<br />
|Firefox 17<br />
|Firefox 16<br />
!2012-08-28<br />
|Firefox 15<br />
|Firefox 10.0.7<br />
|-<br />
!2012-07-16<br />
|Firefox 17<br />
|Firefox 16<br />
|Firefox 15<br />
!2012-07-17<br />
|Firefox 14<br />
|Firefox 10.0.6<br />
|-<br />
!2012-06-05<br />
|Firefox 16<br />
|Firefox 15<br />
|Firefox 14<br />
!2012-06-05<br />
|Firefox 13<br />
|Firefox 10.0.5<br />
|-<br />
!2012-04-24<br />
|Firefox 15<br />
|Firefox 14<br />
|Firefox 13<br />
!2012-04-24<br />
|Firefox 12<br />
|Firefox 10.0.4<br />
|-<br />
!2012-03-13<br />
|Firefox 14<br />
|Firefox 13<br />
|Firefox 12<br />
!2012-03-13<br />
|Firefox 11<br />
|Firefox 10.0.3<br />
|-<br />
!2012-01-31<br />
|Firefox 13<br />
|Firefox 12<br />
|Firefox 11<br />
!2012-01-31<br />
|Firefox 10<br />
|Firefox 10.0<br />
|-<br />
!2011-12-20<br />
|Firefox 12<br />
|Firefox 11<br />
|Firefox 10<br />
!2011-12-20<br />
|Firefox 9<br />
|-<br />
!2011-11-08<br />
|Firefox 11<br />
|Firefox 10<br />
|Firefox 9<br />
!2011-11-08<br />
|Firefox 8<br />
|-<br />
!2011-09-27<br />
|Firefox 10<br />
|Firefox 9<br />
|Firefox 8<br />
!2011-09-27<br />
|Firefox 7<br />
|-<br />
!2011-08-16<br />
|Firefox 9<br />
|Firefox 8<br />
|Firefox 7<br />
!2011-08-16<br />
|Firefox 6<br />
|-<br />
!2011-07-05<br />
|Firefox 8||Firefox 7||Firefox 6<br />
!<br />
|<br />
|-<br />
!<br />
| || || <br />
!2011-06-21<br />
|Firefox 5<br />
|-<br />
!2011-05-24<br />
|Firefox 7||Firefox 6|| <br />
|-<br />
!2011-05-17<br />
| || ||Firefox 5<br />
|-<br />
!2011-04-12<br />
|Firefox 6||Firefox 5 <br />
|-<br />
|}<br />
<br />
<nowiki>*</nowiki>Some release dates and merge dates are rescheduled to avoid conflicts with holidays.<br />
<br />
Notes:<br />
* Irregular scheduling starting 2016.<br />
* Six week schedule from 2011 to 2015 (with some dates delayed to avoid conflicts with holidays).<br />
* Firefox 5 was on a slightly different schedule. It spent five weeks each on Aurora and Beta while later releases spent six weeks on each branch.<br />
<br />
[[category:Release_Management|R]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1216877
Release Management/Release owners
2019-08-20T20:47:26Z
<p>Ritu Kothari: /* Release Owners */ Adding a link to the 71 milestones doc</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Engineering REO<br />
!Release Duty¹ <br />
!Corresponding ESR<br />
!Release Date<br />
|-<br />
|[[Releases/Firefox 71|Firefox 71]]<br />
|Pascal<br />
|RyanVM<br />
|<br />
|<br />
|<br />
|[https://docs.google.com/spreadsheets/d/1SCFDvnKGHSd7BvAvIAXA135IQnp0W4Mik9Y-jgImaJ8/edit#gid=1793473785 2019-12-10]<br />
|-<br />
|[[Releases/Firefox 70|Firefox 70]]<br />
|lizzard<br />
|Pascal<br />
|Janet Dragojevic<br />
|<br />
|RyanVM (ESR68.2)<br />
|[https://docs.google.com/spreadsheets/d/1a0f8cDojanXaT44ATyK1KpK0OGcoI2eRIas4Mjk_C8Y/edit#gid=1793473785 2019-10-22] <br />
|-<br />
|[[Releases/Firefox 69|Firefox 69]]<br />
|RyanVM<br />
|lizzard<br />
|Kate Hudson<br />
|mhentges<br />
|Julien (ESR68.1)<br />
|[https://docs.google.com/spreadsheets/d/196B1HNyayCZx-JWcMqEHREY0oLIxhKqKx9ahU7p25Fw/edit#gid=1793473785 2019-09-03]<br />
|-<br />
|[[Releases/Firefox 68|Firefox 68 (ESR)]]<br />
|Julien<br />
|RyanVM<br />
|plawless<br />
|tomprince<br />
|Pascal (ESR68.0)<br />
|[https://docs.google.com/spreadsheets/d/1jtNuLGugHVgZTKR3NXQGngA_EjzSGxpRBzW-DvNK3EI/edit#gid=798712201 2019-07-09]<br />
|-<br />
<br />
|[[Releases/Firefox 67|Firefox 67]]<br />
|Pascal<br />
|lizzard<br />
|Neha Kochar<br />
|sfraser<br />
|lizzard<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/ 2019-05-21]<br />
<br />
|-<br />
|[[Releases/Firefox 66|Firefox 66]]<br />
|Lizzard<br />
|Pascal<br />
|Tim Spurway<br />
|mtabara, jlund<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/ 2019-03-19]<br />
<br />
|-<br />
|[[Releases/Firefox 65|Firefox 65]]<br />
|RyanVM<br />
|Lizzard<br />
|jaws<br />
|jlund, mtabara<br />
|JCristau<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit?usp=sharing 2019-01-29]<br />
|-<br />
<br />
|[[Releases/Firefox 64|Firefox 64]]<br />
|Julien<br />
|RyanVM<br />
|overholt<br />
|callek, sfraser<br />
|Liz<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit?usp=sharing 2018-12-11]<br />
|-<br />
|[[Releases/Firefox 63|Firefox 63]]<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit?usp=sharing 2018-10-23]<br />
|-<br />
|[[Releases/Firefox 62|Firefox 62]]<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit?usp=sharing 2018-09-05]<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit?usp=sharing 2018-06-26]<br />
|-<br />
|Firefox 60 (ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit?usp=sharing 2018-05-09]<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit?usp=sharing 2018-03-13]<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit?usp=sharing 2018-01-23]<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit?usp=sharing 2017-11-14]<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52 (ESR)<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1216871
Release Management/Release owners
2019-08-20T19:56:07Z
<p>Ritu Kothari: Adding a link to Fx70 milestones spreadsheet</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Engineering REO<br />
!Release Duty¹ <br />
!Corresponding ESR<br />
!Release Date<br />
|-<br />
|[[Releases/Firefox 71|Firefox 71]]<br />
|Pascal<br />
|RyanVM<br />
|<br />
|<br />
|<br />
|2019-12-10<br />
|-<br />
|[[Releases/Firefox 70|Firefox 70]]<br />
|lizzard<br />
|Pascal<br />
|Janet Dragojevic<br />
|<br />
|RyanVM (ESR68.2)<br />
|[https://docs.google.com/spreadsheets/d/1a0f8cDojanXaT44ATyK1KpK0OGcoI2eRIas4Mjk_C8Y/edit#gid=1793473785 2019-10-22] <br />
|-<br />
|[[Releases/Firefox 69|Firefox 69]]<br />
|RyanVM<br />
|lizzard<br />
|Kate Hudson<br />
|mhentges<br />
|Julien (ESR68.1)<br />
|[https://docs.google.com/spreadsheets/d/196B1HNyayCZx-JWcMqEHREY0oLIxhKqKx9ahU7p25Fw/edit#gid=1793473785 2019-09-03]<br />
|-<br />
|[[Releases/Firefox 68|Firefox 68 (ESR)]]<br />
|Julien<br />
|RyanVM<br />
|plawless<br />
|tomprince<br />
|Pascal (ESR68.0)<br />
|[https://docs.google.com/spreadsheets/d/1jtNuLGugHVgZTKR3NXQGngA_EjzSGxpRBzW-DvNK3EI/edit#gid=798712201 2019-07-09]<br />
|-<br />
<br />
|[[Releases/Firefox 67|Firefox 67]]<br />
|Pascal<br />
|lizzard<br />
|Neha Kochar<br />
|sfraser<br />
|lizzard<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/ 2019-05-21]<br />
<br />
|-<br />
|[[Releases/Firefox 66|Firefox 66]]<br />
|Lizzard<br />
|Pascal<br />
|Tim Spurway<br />
|mtabara, jlund<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/ 2019-03-19]<br />
<br />
|-<br />
|[[Releases/Firefox 65|Firefox 65]]<br />
|RyanVM<br />
|Lizzard<br />
|jaws<br />
|jlund, mtabara<br />
|JCristau<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit?usp=sharing 2019-01-29]<br />
|-<br />
<br />
|[[Releases/Firefox 64|Firefox 64]]<br />
|Julien<br />
|RyanVM<br />
|overholt<br />
|callek, sfraser<br />
|Liz<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit?usp=sharing 2018-12-11]<br />
|-<br />
|[[Releases/Firefox 63|Firefox 63]]<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit?usp=sharing 2018-10-23]<br />
|-<br />
|[[Releases/Firefox 62|Firefox 62]]<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit?usp=sharing 2018-09-05]<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit?usp=sharing 2018-06-26]<br />
|-<br />
|Firefox 60 (ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit?usp=sharing 2018-05-09]<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit?usp=sharing 2018-03-13]<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit?usp=sharing 2018-01-23]<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit?usp=sharing 2017-11-14]<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52 (ESR)<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1216870
Release Management/Release owners
2019-08-20T19:18:46Z
<p>Ritu Kothari: RyanVM will be 71 secondary</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Engineering REO<br />
!Release Duty¹ <br />
!Corresponding ESR<br />
!Release Date<br />
|-<br />
|[[Releases/Firefox 71|Firefox 71]]<br />
|Pascal<br />
|RyanVM<br />
|<br />
|<br />
|<br />
|2019-12-10<br />
|-<br />
|[[Releases/Firefox 70|Firefox 70]]<br />
|lizzard<br />
|Pascal<br />
|Janet Dragojevic<br />
|<br />
|RyanVM (ESR68.2)<br />
|2019-10-22 <br />
|-<br />
|[[Releases/Firefox 69|Firefox 69]]<br />
|RyanVM<br />
|lizzard<br />
|Kate Hudson<br />
|mhentges<br />
|Julien (ESR68.1)<br />
|[https://docs.google.com/spreadsheets/d/196B1HNyayCZx-JWcMqEHREY0oLIxhKqKx9ahU7p25Fw/edit#gid=1793473785 2019-09-03]<br />
|-<br />
|[[Releases/Firefox 68|Firefox 68 (ESR)]]<br />
|Julien<br />
|RyanVM<br />
|plawless<br />
|tomprince<br />
|Pascal (ESR68.0)<br />
|[https://docs.google.com/spreadsheets/d/1jtNuLGugHVgZTKR3NXQGngA_EjzSGxpRBzW-DvNK3EI/edit#gid=798712201 2019-07-09]<br />
|-<br />
<br />
|[[Releases/Firefox 67|Firefox 67]]<br />
|Pascal<br />
|lizzard<br />
|Neha Kochar<br />
|sfraser<br />
|lizzard<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/ 2019-05-21]<br />
<br />
|-<br />
|[[Releases/Firefox 66|Firefox 66]]<br />
|Lizzard<br />
|Pascal<br />
|Tim Spurway<br />
|mtabara, jlund<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/ 2019-03-19]<br />
<br />
|-<br />
|[[Releases/Firefox 65|Firefox 65]]<br />
|RyanVM<br />
|Lizzard<br />
|jaws<br />
|jlund, mtabara<br />
|JCristau<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit?usp=sharing 2019-01-29]<br />
|-<br />
<br />
|[[Releases/Firefox 64|Firefox 64]]<br />
|Julien<br />
|RyanVM<br />
|overholt<br />
|callek, sfraser<br />
|Liz<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit?usp=sharing 2018-12-11]<br />
|-<br />
|[[Releases/Firefox 63|Firefox 63]]<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit?usp=sharing 2018-10-23]<br />
|-<br />
|[[Releases/Firefox 62|Firefox 62]]<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit?usp=sharing 2018-09-05]<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit?usp=sharing 2018-06-26]<br />
|-<br />
|Firefox 60 (ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit?usp=sharing 2018-05-09]<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit?usp=sharing 2018-03-13]<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit?usp=sharing 2018-01-23]<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit?usp=sharing 2017-11-14]<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52 (ESR)<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_Process_Checklist_Documentation&diff=1216386
Release Management/Release Process Checklist Documentation
2019-08-12T20:07:40Z
<p>Ritu Kothari: Updating to reflect that milestones document is now a tab in release tracking spreadsheet</p>
<hr />
<div>The goal of this page is to document the [https://docs.google.com/spreadsheets/d/1Kexb-hd8chGEN63zZKqkBSxREe7nR_A2Ai2OuehaBaM/edit?usp=sharing 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.<br />
<br />
= Nightly Checklist =<br />
<br />
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.<br />
<br />
Prior to the start of the cycle, the follow tasks need to be performed:<br />
* '''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. <br />
* '''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.<br />
* '''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.<br />
<br />
On a daily (or thereabouts) basis, the following items should be monitored:<br />
* '''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)<br />
* '''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.<br />
* '''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.<br />
* '''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.<br />
<br />
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.<br />
[[Image:RelMan Process Trello.png|450px|center|middle]]<br />
<br />
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.<br />
<br />
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.<br />
<br />
Near the end of the cycle, the following actions must be performed:<br />
* '''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.<br />
* '''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.<br />
* '''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)<br />
<br />
= Beta Checklist =<br />
<br />
== Ongoing Tasks ==<br />
<br />
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. <br />
<br />
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.<br />
<br />
== Release Tasks ==<br />
<br />
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.<br />
* '''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.<br />
* '''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.<br />
* '''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.'''<br />
[[Image:RelMan Process Ship-It v2 1.png|600px|center|middle]]<br />
[[Image:RelMan Process Ship-It v2 2.png|450px|center|middle]]<br />
<br />
Standard practice is that the first two Betas are created for the DevEdition release only during the soft freeze week when mozilla-central and mozilla-beta are sharing a common Gecko version. The first desktop Firefox Beta release is therefore b3. Also, due to limited QA resources, Fennec betas are typically only created for odd-numbered builds. However, it is within the release manager’s discretion to create an even-numbered Fennec beta build when warranted. In that situation, QA must be informed of the coming build so they can plan accordingly.<br />
* '''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.'''<br />
* '''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.<br />
[[Image:RelMan Process Ship-It v2 3.png|600px|center|middle]]<br />
<br />
* '''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. <br />
* '''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]". <br />
* '''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.<br />
[[Image:RelMan Process Ship-It v2 4.png|600px|center|middle]] <br />
<br />
* '''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".<br />
* '''QA manual testing signoff for Desktop/DevEdition.''' Ask in the #qa-coordination Slack channel if there are questions about progress.<br />
* '''Update test on beta-cdntest.''' Once QA has performed update testing on the cdntest update channel, the builds are ready to ship.<br />
mil* '''Push Desktop/DevEdition to Beta.''' The release is scheduled in ship-it by pushing the '''ship''' button for each release.<br />
[[Image:RelMan Process Ship-It v2 5.png|600px|center|middle]]<br />
<br />
* '''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.<br />
[[Image:RelMan Process Balrog 1.png|600px|center|middle]]<br />
<br />
* '''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.<br />
[[Image:RelMan Process Balrog 2.png|600px|center|middle]]<br />
<br />
* '''QA manual testing signoff for Fennec.''' Ask in the #qa-coordination Slack channel if there are questions about progress.<br />
* '''Push Fennec to Play Store.''' This is done within ship-it.<br />
[[Image:RelMan Process Ship-It v2 6.png|600px|center|middle]]<br />
# Numbered list item<br />
* '''Verify that new release is live on Google Play at desired rollout %.''' By default, Beta will default to a 10% rollout when publishing to the Play Store. Needs to be adjusted after pushing to the rollout % specified in the milestones doc.<br />
[[Image:RelMan Process Google Play 1.png|600px|center|middle]]<br />
[[Image:RelMan Process Google Play 2.png|600px|center|middle]]<br />
[[Image:RelMan Process Google Play 3.png|600px|center|middle]]<br />
[[Image:RelMan Process Google Play 4.png|600px|center|middle]]<br />
<br />
Once we’ve reached a point in the cycle where 100% rollout is desired as the default behavior, a commit like the one below should be pushed to the Beta repository to update the default behavior.<br />
<div style="text-align:center;margin-left:0.5in;margin-right:0in;">[https://hg.mozilla.org/releases/mozilla-beta/rev/8eb44d31050e https://hg.mozilla.org/releases/mozilla-beta/rev/8eb44d31050e]</div><br />
* '''Email release-signoff with confirmation that updates are live.''' This is generally just a reply to QA’s “please push to Beta/Aurora” email. Be sure to note the rollout % as well.<br />
* '''Update tests on Aurora & Beta.''' Final verification by QA that updates are working on the live update channels.<br />
<br />
== Summary of email notifications for QA/relman ==<br />
Here is an example of the subject lines of emails to expect on release-signoff, and what they mean.<br />
<br />
* 1. [desktop] Build of firefox 67.0b16 build 2<br />
: 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. <br />
* 2. firefox 67.0b16 build2/mozilla-beta is in the candidates directory<br />
: Sent when all the builds are complete. These builds can be used for manual/functional testing.<br />
* 3. firefox 67.0b16 build2/mozilla-beta has been pushed to cdntest<br />
: When this email is sent, the builds are ready for update testing on the beta-cdntest channel. <br />
* 4. firefox 67.0b16 build2/mozilla-beta updates are ready for signoff in Balrog!<br />
: 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). <br />
* 5. [desktop] Please push firefox and devedition 67.0b16 to beta and aurora, respectively<br />
: 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.<br />
* 6. Reply to the above "Please push" email<br />
: 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. <br />
* 7. [desktop] Firefox 67.0b16 - Updates on Beta Channel signed off by QA<br />
: This email is sent by a QA lead, to report the results for update testing after the release is live.<br />
<br />
= RC Uplifts =<br />
<br />
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:<br />
* Track whether there are any drivers for a respin of the RC builds during RC week.<br />
* Assess whether Desktop, Fennec, or both are affected by the issues noted.<br />
* Verify that all drivers have had an explicit decision made.<br />
<br />
= RC Checklist =<br />
<br />
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.<br />
<br />
* 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.<br />
** Sample partials (for 66.0 RC): 65.0.2build1,65.0.1build2,65.0build2,64.0.2build1,66.0b14build1<br />
* '''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.<br />
* '''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.<br />
* '''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.<br />
* '''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.<br />
<br />
RC week is also the time to finalize release notes and begin gathering feedback from the #release-notes Slack channel.<br />
<br />
= WNP Checklist =<br />
<br />
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.<br />
<br />
= Go-Live Checklist =<br />
<br />
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.<br />
<br />
== Prior To Launch Day ==<br />
* '''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.<br />
* '''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).<br />
* '''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.<br />
* '''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.<br />
<br />
== Launch Day ==<br />
* '''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.<br />
* '''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.<br />
* '''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.<br />
* '''Bump Fennec update rate to 25% in Play Store.''' Should have been at 5% previously.<br />
* '''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.<br />
* '''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 %.<br />
* '''Update tests on Release; WNP testing on Release.''' QA will send a sign-off email when this is completed.<br />
* '''Verify that the release notes are live.'''<br />
* '''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.<br />
* '''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.<br />
* 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].<br />
* '''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.<br />
<br />
== Post-Launch ==<br />
* '''(Launch Day +1) Verify Desktop update rate at 0% in Balrog.'''<br />
* '''(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.<br />
* '''(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.<br />
* '''(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.<br />
* '''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.<br />
* '''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.<br />
<br />
<div style="text-align:center;margin-left:0.5in;margin-right:0in;"><screenshot here></div><br />
<br />
* '''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.<br />
* '''Upload Fennec in the Samsung store.''' This is handled manually by Sylvestre at the moment. Ryan or Liz can also do this. <br />
** Login at https://seller.samsungapps.com/join/joinNow.as. <br />
** download the apk, example, <br />
https://archive.mozilla.org/pub/mobile/releases/66.0.2/android-api-16/multi/<br />
Should be ~50MB<br />
** Rename the file to replace dots with underscores (except the .apk of course)<br />
** example: fennec-64_0_2-multi-android-arm.apk<br />
** upload it, stick with defaults for various choices<br />
** Then delete the old one. <br />
<br />
<br />
* '''(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.<br />
<br />
= Off-train Rollouts =<br />
<br />
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]].<br />
<br />
= Dot Release Uplifts =<br />
<br />
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.<br />
<br />
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.<br />
<br />
= Dot Release Checklist =<br />
<br />
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).<br />
<br />
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.</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_Days&diff=1216382
Release Management/Release Days
2019-08-12T18:25:36Z
<p>Ritu Kothari: /* Release day */ Updating steps to move sec adv push to happen right after relnotes are made public. Both will be done by release owner</p>
<hr />
<div>{{DISPLAYTITLE:Release Days}}<br />
<br />
= Release Day =<br />
== Previous day ==<br />
<br />
* Wait for QA to sign off ''QA signs off for Firefox {{RELEASE_VERSION}}''<br />
* Send an email to r-d asking to push the file to the CDN<br />
Subject: [desktop] Please push Firefox {{RELEASE_VERSION}}.0 (build#X) to the release-cdntest channel<br />
To: r-d<br />
* QA should sign-off channel updates<br />
* Release notes signed off<br />
* File a bug under BMO:Administration asking for new version's bugzilla flags (status, tracking). Don't forget new ESR flags when major releases come out.<br />
<br />
[[Release_Management/Merge_Documentation#Merge_Day_.28Central.2C_Aurora.2C_Beta.29|About merge day]]<br />
<br />
== Release day ==<br />
* Join #www, #releng, #release-drivers, #planning and #releaseduty to make sure people can contact you and you can ask questions or ping people<br />
* Also join #release-coordination on slack<br />
<br />
* Send instructions to r-d to upload Firefox for Android with a staged roll out to 10% (around ''7 PST''):<br />
Subject: [mobile] Please upload Firefox Android / Fennec {{RELEASE_VERSION}}.0 (build #X) - 10% staged roll out<br />
To: r-d<br />
<br />
Please upload Firefox Android / Fennec {{RELEASE_VERSION}} (build #X) - 10% update rate.<br />
<br />
{YOUR NAME}<br />
<br />
In the past, uploads were done by hand by release manager (or with mozapkpublisher).<br />
If a different update percentage is needed, a release manager will have to log in to the Google play interface and change it.<br />
<br />
* Then for Desktop<br />
Subject: [desktop] Please push Firefox for Desktop {{RELEASE_VERSION}}.0 (build #X) to the release channel - 25% update rate (24h)<br />
To: r-d<br />
<br />
Please upload Firefox for Desktop / {{RELEASE_VERSION}} (build #X) - 25% update rate for 24 hours<br />
<br />
{YOUR NAME}<br />
<br />
<br />
<br />
* RelEng automation will automatically publish the updates, RelEng will announce to release-drivers.<br />
** If the release should not be published, revoke your signoff from the [https://aus4-admin.mozilla.org/rules/scheduled_changes Scheduled Change in Balrog].<br />
<br />
* Switch the release notes to public in [https://nucleus.mozilla.org/ Nucleus]<br />
** Confirm that the security release note has been added<br />
** Confirm that the known issues from the previous release are either marked as fixed or carried over<br />
** Confirm that the new Mozillian thank you note has been added<br />
* Release owner (from relman team) will push security advisories live.<br />
* Once releng has marked the release as shipped, check that the correct versions appear here: https://product-details.mozilla.org/1.0/firefox_versions.json & https://product-details.mozilla.org/1.0/mobile_versions.json<br />
* Since version 56, the Mozilla.org website should have the correct version as soon as updates are live. <br />
<br />
<br />
* Check the results:<br />
** https://www.mozilla.org/en-US/firefox/all/<br />
** https://www.mozilla.org/en-US/firefox/channel/#firefox<br />
** http://www.mozilla.org/firefox/new/ <br />
<br />
* QA sign-off on updates for Desktop<br />
* Let PMM (communications@mozilla.com) know they can push blog posts and start communicating to Press <br />
* Update [[Releases#Previous_Releases]]<br />
* Send announcement of new release to announce@lists.mozilla.org:<br />
** Note: You will need to approve your post to this list in the [https://lists.mozilla.org/admin/announce admin interface]<br />
Subject: Firefox {{RELEASE_VERSION}} is now available<br />
To: announce@lists.mozilla.org<br />
<br />
Firefox {{RELEASE_VERSION}} is now available as a free download for Windows, Mac OS X, GNU/Linux, and Android from http://www.mozilla.org/firefox/new/.<br />
<br />
We recommend that users keep up to date with the newest version of Firefox for the latest features and fixes.<br />
<br />
This release contains {FOR MAJOR RELEASE, TRY TO LIST 3 ITEMS FROM RELNOTES | FOR MINOR RELEASE, TRY TO SUMMARIZE LIKE "security and stability fixes"}<br />
<br />
The release notes for this release are available at:<br />
Desktop: http://www.mozilla.org/firefox/notes<br />
Mobile: http://www.mozilla.org/mobile/notes<br />
<br />
{YOUR NAME}<br />
Firefox Release Manager<br />
<br />
<br />
* Once an ESR is released, you can push <br />
<br />
Subject: Firefox ESR {{ESR_VERSION}} Released<br />
To: enterprise@mozilla.org<br />
<br />
Firefox ESR {{ESR_VERSION}} is now available for download at https://www.mozilla.org/en-US/firefox/organizations/all.html. <br />
<br />
As always, we recommend that users keep up to date with the newest version of Firefox ESR for the latest stability and security fixes.<br />
<br />
Release notes for Firefox {{ESR_VERSION}} are available at:<br />
https://www.mozilla.org/en-US/firefox/{{ESR_VERSION}}/releasenotes/<br />
<br />
Associated security advisories will be posted once available at:<br />
https://www.mozilla.org/security/known-vulnerabilities/firefoxESR.html<br />
<br />
{YOUR NAME}<br />
Firefox Release Manager<br />
<br />
* If you've just released a new X.2 version of ESR, that means that the previous (X-1) is no longer maintained. Make sure that it is no longer proposed to download by doing a PR link this one: https://github.com/mozilla-releng/ship-it/pull/177<br />
<br />
== The day after ==<br />
* Releng tooling will disable updates automatically after 24 hours. Make sure that you received the email notifying this.<br />
<br />
If you want to turn off or moderate manual updates as well as background updates, instead ask: <br />
<br />
Please disable updates for Firefox {{RELEASE_VERSION}}.<br />
<br />
* For Fennec, if there are no critical issues after 48 hours, please change Play Store staged rollout rate from 10% to 100%. See steps at [https://support.google.com/googleplay/android-developer/answer/6346149?hl=en Increase your staged rollout percentage]<br />
<br />
* For Desktop, send an email to r-d to turn on updates when confident that no dot releases will be mandatory<br />
<br />
==Dot releases and chemspills==<br />
In a "[[Release Management/Chemspill|chemspill]]" situation we release on whichever channels necessary, with only the necessary patch(es), as fast as possible. This is usually reserved for situations where a critical security exploit is public. <br />
<br />
Taking other patches increases the risk of delay (since tests or builds may fail, or manual testing may find new problems). <br />
<br />
For a "dot release" we may need to release on multiple versions. <br />
Or, we may need only a Fennec or Desktop version and not both.<br />
If, after that, we need a new dot release, it is best to keep the numbers consistent if the Gecko version is the same, rather than having the numbering "out of sync". <br />
<br />
The product team has requested that we serve what's new pages (WNP) to desktop users for the first dot release after a major release (so, users will see the WNP twice during a cycle) as of Firefox 55. <br />
<br />
Since you will likely be handling from 3 to 5 simultaneous releases, it helps even more than usual to have a checklist for each one, using a table or spreadsheet to track each step for each channel. <br />
<br />
Example items for checklist for 53.0.2 dot release :<br />
<br />
* Check availability, heads up to key staff from QA, relman, releng, sec team<br />
* Check ops page for planned maintenance to infrastructure https://mozilla2.statuspage.io/ Talk with ops staff from #moc privately if needed<br />
* Ask for sec advisory draft if needed<br />
* List patches that need to land<br />
* All patches have landed<br />
* Write release notes<br />
* Tests and builds are ok on treeherder<br />
* Start build from ship-it<br />
* Releng notice that builds completed<br />
* QE signoff, manual testing<br />
* Release-localtest update tests<br />
* Send email to push to cdntest<br />
** * If there's a What's New Page for desktop, remind releng (in the push request)<br />
* Releng response<br />
* cdntest update tests<br />
* Send email to push live<br />
* Releng response<br />
* Adjust rollout % for fennec if needed<br />
* Set relnotes public<br />
* Make sure sec advisories are live<br />
<br />
[[category:Release_Management|Release Days]]<br />
[[Category:Release_Management:Processes|Release Days]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_Process_Checklist_Documentation&diff=1216381
Release Management/Release Process Checklist Documentation
2019-08-12T18:23:21Z
<p>Ritu Kothari: /* Launch Day */ Updating sec adv push ownership</p>
<hr />
<div>The goal of this page is to document the [https://docs.google.com/spreadsheets/d/1Kexb-hd8chGEN63zZKqkBSxREe7nR_A2Ai2OuehaBaM/edit?usp=sharing 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.<br />
<br />
= Nightly Checklist =<br />
<br />
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.<br />
<br />
Prior to the start of the cycle, the follow tasks need to be performed:<br />
* '''Create a milestones document.''' 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. There is not currently a template for this document because it’s still evolving from release to release, so it is advised to use the document from the previous release as a starting point. <br />
* '''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.<br />
* '''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.<br />
<br />
On a daily (or thereabouts) basis, the following items should be monitored:<br />
* '''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)<br />
* '''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.<br />
* '''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.<br />
* '''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.<br />
<br />
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.<br />
[[Image:RelMan Process Trello.png|450px|center|middle]]<br />
<br />
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.<br />
<br />
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.<br />
<br />
Near the end of the cycle, the following actions must be performed:<br />
* '''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.<br />
* '''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.<br />
* '''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)<br />
<br />
= Beta Checklist =<br />
<br />
== Ongoing Tasks ==<br />
<br />
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. <br />
<br />
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.<br />
<br />
== Release Tasks ==<br />
<br />
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.<br />
* '''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.<br />
* '''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.<br />
* '''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.'''<br />
[[Image:RelMan Process Ship-It v2 1.png|600px|center|middle]]<br />
[[Image:RelMan Process Ship-It v2 2.png|450px|center|middle]]<br />
<br />
Standard practice is that the first two Betas are created for the DevEdition release only during the soft freeze week when mozilla-central and mozilla-beta are sharing a common Gecko version. The first desktop Firefox Beta release is therefore b3. Also, due to limited QA resources, Fennec betas are typically only created for odd-numbered builds. However, it is within the release manager’s discretion to create an even-numbered Fennec beta build when warranted. In that situation, QA must be informed of the coming build so they can plan accordingly.<br />
* '''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.'''<br />
* '''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.<br />
[[Image:RelMan Process Ship-It v2 3.png|600px|center|middle]]<br />
<br />
* '''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. <br />
* '''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]". <br />
* '''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.<br />
[[Image:RelMan Process Ship-It v2 4.png|600px|center|middle]] <br />
<br />
* '''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".<br />
* '''QA manual testing signoff for Desktop/DevEdition.''' Ask in the #qa-coordination Slack channel if there are questions about progress.<br />
* '''Update test on beta-cdntest.''' Once QA has performed update testing on the cdntest update channel, the builds are ready to ship.<br />
* '''Push Desktop/DevEdition to Beta.''' The release is scheduled in ship-it by pushing the '''ship''' button for each release.<br />
[[Image:RelMan Process Ship-It v2 5.png|600px|center|middle]]<br />
<br />
* '''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.<br />
[[Image:RelMan Process Balrog 1.png|600px|center|middle]]<br />
<br />
* '''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.<br />
[[Image:RelMan Process Balrog 2.png|600px|center|middle]]<br />
<br />
* '''QA manual testing signoff for Fennec.''' Ask in the #qa-coordination Slack channel if there are questions about progress.<br />
* '''Push Fennec to Play Store.''' This is done within ship-it.<br />
[[Image:RelMan Process Ship-It v2 6.png|600px|center|middle]]<br />
# Numbered list item<br />
* '''Verify that new release is live on Google Play at desired rollout %.''' By default, Beta will default to a 10% rollout when publishing to the Play Store. Needs to be adjusted after pushing to the rollout % specified in the milestones doc.<br />
[[Image:RelMan Process Google Play 1.png|600px|center|middle]]<br />
[[Image:RelMan Process Google Play 2.png|600px|center|middle]]<br />
[[Image:RelMan Process Google Play 3.png|600px|center|middle]]<br />
[[Image:RelMan Process Google Play 4.png|600px|center|middle]]<br />
<br />
Once we’ve reached a point in the cycle where 100% rollout is desired as the default behavior, a commit like the one below should be pushed to the Beta repository to update the default behavior.<br />
<div style="text-align:center;margin-left:0.5in;margin-right:0in;">[https://hg.mozilla.org/releases/mozilla-beta/rev/8eb44d31050e https://hg.mozilla.org/releases/mozilla-beta/rev/8eb44d31050e]</div><br />
* '''Email release-signoff with confirmation that updates are live.''' This is generally just a reply to QA’s “please push to Beta/Aurora” email. Be sure to note the rollout % as well.<br />
* '''Update tests on Aurora & Beta.''' Final verification by QA that updates are working on the live update channels.<br />
<br />
== Summary of email notifications for QA/relman ==<br />
Here is an example of the subject lines of emails to expect on release-signoff, and what they mean.<br />
<br />
* 1. [desktop] Build of firefox 67.0b16 build 2<br />
: 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. <br />
* 2. firefox 67.0b16 build2/mozilla-beta is in the candidates directory<br />
: Sent when all the builds are complete. These builds can be used for manual/functional testing.<br />
* 3. firefox 67.0b16 build2/mozilla-beta has been pushed to cdntest<br />
: When this email is sent, the builds are ready for update testing on the beta-cdntest channel. <br />
* 4. firefox 67.0b16 build2/mozilla-beta updates are ready for signoff in Balrog!<br />
: 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). <br />
* 5. [desktop] Please push firefox and devedition 67.0b16 to beta and aurora, respectively<br />
: 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.<br />
* 6. Reply to the above "Please push" email<br />
: 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. <br />
* 7. [desktop] Firefox 67.0b16 - Updates on Beta Channel signed off by QA<br />
: This email is sent by a QA lead, to report the results for update testing after the release is live.<br />
<br />
= RC Uplifts =<br />
<br />
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:<br />
* Track whether there are any drivers for a respin of the RC builds during RC week.<br />
* Assess whether Desktop, Fennec, or both are affected by the issues noted.<br />
* Verify that all drivers have had an explicit decision made.<br />
<br />
= RC Checklist =<br />
<br />
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.<br />
<br />
* 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.<br />
** Sample partials (for 66.0 RC): 65.0.2build1,65.0.1build2,65.0build2,64.0.2build1,66.0b14build1<br />
* '''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.<br />
* '''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.<br />
* '''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.<br />
* '''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.<br />
<br />
RC week is also the time to finalize release notes and begin gathering feedback from the #release-notes Slack channel.<br />
<br />
= WNP Checklist =<br />
<br />
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.<br />
<br />
= Go-Live Checklist =<br />
<br />
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.<br />
<br />
== Prior To Launch Day ==<br />
* '''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.<br />
* '''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).<br />
* '''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.<br />
* '''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.<br />
<br />
== Launch Day ==<br />
* '''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.<br />
* '''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.<br />
* '''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.<br />
* '''Bump Fennec update rate to 25% in Play Store.''' Should have been at 5% previously.<br />
* '''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.<br />
* '''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 %.<br />
* '''Update tests on Release; WNP testing on Release.''' QA will send a sign-off email when this is completed.<br />
* '''Verify that the release notes are live.'''<br />
* '''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.<br />
* '''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.<br />
* 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].<br />
* '''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.<br />
<br />
== Post-Launch ==<br />
* '''(Launch Day +1) Verify Desktop update rate at 0% in Balrog.'''<br />
* '''(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.<br />
* '''(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.<br />
* '''(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.<br />
* '''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.<br />
* '''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.<br />
<br />
<div style="text-align:center;margin-left:0.5in;margin-right:0in;"><screenshot here></div><br />
<br />
* '''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.<br />
* '''Upload Fennec in the Samsung store.''' This is handled manually by Sylvestre at the moment. Ryan or Liz can also do this. <br />
** Login at https://seller.samsungapps.com/join/joinNow.as. <br />
** download the apk, example, <br />
https://archive.mozilla.org/pub/mobile/releases/66.0.2/android-api-16/multi/<br />
Should be ~50MB<br />
** Rename the file to replace dots with underscores (except the .apk of course)<br />
** example: fennec-64_0_2-multi-android-arm.apk<br />
** upload it, stick with defaults for various choices<br />
** Then delete the old one. <br />
<br />
<br />
* '''(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.<br />
<br />
= Off-train Rollouts =<br />
<br />
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]].<br />
<br />
= Dot Release Uplifts =<br />
<br />
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.<br />
<br />
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.<br />
<br />
= Dot Release Checklist =<br />
<br />
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).<br />
<br />
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.</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1216186
Release Management/Release owners
2019-08-08T20:27:11Z
<p>Ritu Kothari: CPeterson said ESR owner could be clarified with ESR version, editing it to reflect that.</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Engineering REO<br />
!Release Duty¹ <br />
!Corresponding ESR<br />
!Release Date<br />
|-<br />
|[[Releases/Firefox 71|Firefox 71]]<br />
|Pascal<br />
|<br />
|<br />
|<br />
|<br />
|2019-12-10<br />
|-<br />
|[[Releases/Firefox 70|Firefox 70]]<br />
|lizzard<br />
|Pascal<br />
|Janet Dragojevic<br />
|<br />
|RyanVM (ESR68.2)<br />
|2019-10-22 <br />
|-<br />
|[[Releases/Firefox 69|Firefox 69]]<br />
|RyanVM<br />
|lizzard<br />
|Kate Hudson<br />
|mhentges<br />
|Julien (ESR68.1)<br />
|[https://docs.google.com/spreadsheets/d/196B1HNyayCZx-JWcMqEHREY0oLIxhKqKx9ahU7p25Fw/edit#gid=1793473785 2019-09-03]<br />
|-<br />
|[[Releases/Firefox 68|Firefox 68 (ESR)]]<br />
|Julien<br />
|RyanVM<br />
|plawless<br />
|tomprince<br />
|Pascal (ESR68.0)<br />
|[https://docs.google.com/spreadsheets/d/1jtNuLGugHVgZTKR3NXQGngA_EjzSGxpRBzW-DvNK3EI/edit#gid=798712201 2019-07-09]<br />
|-<br />
<br />
|[[Releases/Firefox 67|Firefox 67]]<br />
|Pascal<br />
|lizzard<br />
|Neha Kochar<br />
|sfraser<br />
|lizzard<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/ 2019-05-21]<br />
<br />
|-<br />
|[[Releases/Firefox 66|Firefox 66]]<br />
|Lizzard<br />
|Pascal<br />
|Tim Spurway<br />
|mtabara, jlund<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/ 2019-03-19]<br />
<br />
|-<br />
|[[Releases/Firefox 65|Firefox 65]]<br />
|RyanVM<br />
|Lizzard<br />
|jaws<br />
|jlund, mtabara<br />
|JCristau<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit?usp=sharing 2019-01-29]<br />
|-<br />
<br />
|[[Releases/Firefox 64|Firefox 64]]<br />
|Julien<br />
|RyanVM<br />
|overholt<br />
|callek, sfraser<br />
|Liz<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit?usp=sharing 2018-12-11]<br />
|-<br />
|[[Releases/Firefox 63|Firefox 63]]<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit?usp=sharing 2018-10-23]<br />
|-<br />
|[[Releases/Firefox 62|Firefox 62]]<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit?usp=sharing 2018-09-05]<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit?usp=sharing 2018-06-26]<br />
|-<br />
|Firefox 60 (ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit?usp=sharing 2018-05-09]<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit?usp=sharing 2018-03-13]<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit?usp=sharing 2018-01-23]<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit?usp=sharing 2017-11-14]<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52 (ESR)<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1210261
Release Management/Release owners
2019-04-08T21:22:35Z
<p>Ritu Kothari: Nominating liz to own ESR60.7</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Engineering REO<br />
!Release Duty¹ <br />
!Corresponding ESR<br />
!Release Date<br />
|-<br />
|[[Releases/Firefox 70|Firefox 70]]<br />
|lizzard<br />
|<br />
|<br />
|<br />
|<br />
|2019-XX-XX<br />
|-<br />
|[[Releases/Firefox 69|Firefox 69]]<br />
|RyanVM<br />
|lizzard<br />
|<br />
|<br />
|<br />
|2019-XX-XX<br />
|-<br />
|[[Releases/Firefox 68|Firefox 68]]<br />
|Julien<br />
|RyanVM<br />
|plawless<br />
|tomprince<br />
|<br />
|2019-07-01<br />
|-<br />
<br />
|[[Releases/Firefox 67|Firefox 67]]<br />
|Pascal<br />
|lizzard<br />
|Neha Kochar<br />
|sfraser<br />
|lizzard<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/ 2019-05-14]<br />
<br />
|-<br />
|[[Releases/Firefox 66|Firefox 66]]<br />
|Lizzard<br />
|Pascal<br />
|Tim Spurway<br />
|mtabara, jlund<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/ 2019-03-19]<br />
<br />
|-<br />
|[[Releases/Firefox 65|Firefox 65]]<br />
|RyanVM<br />
|Lizzard<br />
|jaws<br />
|jlund, mtabara<br />
|JCristau<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit?usp=sharing 2019-01-29]<br />
|-<br />
<br />
|[[Releases/Firefox 64|Firefox 64]]<br />
|Julien<br />
|RyanVM<br />
|overholt<br />
|callek, sfraser<br />
|Liz<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit?usp=sharing 2018-12-11]<br />
|-<br />
|[[Releases/Firefox 63|Firefox 63]]<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit?usp=sharing 2018-10-23]<br />
|-<br />
|[[Releases/Firefox 62|Firefox 62]]<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit?usp=sharing 2018-09-05]<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit?usp=sharing 2018-06-26]<br />
|-<br />
|Firefox 60 (an ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit?usp=sharing 2018-05-09]<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit?usp=sharing 2018-03-13]<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit?usp=sharing 2018-01-23]<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit?usp=sharing 2017-11-14]<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Tracking_rules&diff=1207664
Release Management/Tracking rules
2019-02-12T22:24:24Z
<p>Ritu Kothari: /* Not a regression: Request tracking */ adding bugzilla</p>
<hr />
<div>{{DISPLAYTITLE:Release tracking rules}}<br />
This page describes the rules applied by the Release Team to track or not a bug for a release.<br />
<br />
[[Releases/Flags|Tracking flags]] are set to manage a list of release critical bugs but also the bugs / features that the Release Team wants to keep on their radar.<br />
<br />
= Regressions: Status flags + keyword =<br />
'''Please mark regressions with the keyword "regression" and the status flag.'''<br />
<br />
For example, a bug which is a new regression in 57 should be flagged:<br />
status-firefox56: unaffected <br />
status-firefox57: affected<br />
<br />
Add the keyword "regression" to the keyword field. <br />
<br />
Bugs with these flags and keyword will be triaged by relman and a team of engineering managers.<br />
They'll show up on this Release Health dashboard: https://mozilla.github.io/releasehealth/?channel=beta<br />
<br />
= Not a regression: Request tracking =<br />
<br />
Tracking requests are made by changing "tracking flags" -> "tracking-firefoxN" flag to "?" and updating "status-firefixN" flag to "affected" on a bug in bugzilla.<br />
<br />
When dealing with new features, this case is common. <br />
<br />
Tracking is recommended if:<br />
* You want to escalate quickly to get a fix in an important, unassigned bug. Relman will work to find an assignee.<br />
* High volume crashes. For example, bugs with keyword ''topcrash*'' are usually tracked. <br />
* High impact on web compatibility<br />
* Add-on compatibility implications<br />
* Introduced a new feature which may need to be backed out<br />
* The bug is sec-critical <br />
<br />
If there is no patch on a critical or high-impact bug report, then tracking is recommended.<br />
<br />
If the patch has already landed in Mozilla-central for a few days and an uplift request has been filled (or already applied), tracking is not necessary (except for high risk changes). <br />
<br />
What does it mean for a bug to be tracked? Release management will triage it about once a week, will follow up with developers, QE, managers, project managers, and product teams to get it fixed, tested, and in affected releases as soon as possible. <br />
<br />
Not every regression can or should be tracked. We can trust to the regression triage team (which includes relman).<br />
<br />
For a very serious issue that would block either a release, or the release of a feature, relman can mark the tracking flag as "blocking".<br />
<br />
= Misc =<br />
<br />
The tracking flag ''tracking-fennec'' is not managed by the release team. This flag is used by the mobile team.<br />
<br />
Fennec bugs should be marked with status flags, the same as for Desktop. <br />
<br />
= Disabling a Feature =<br />
<br />
* separate bugs for "disable feature X" are always clearer than attaching patches/getting approvals in meta or other bugs with confusing summaries (e.g. it's hard to tell that bug 994589 resulted in a feature disabling after the fact without hunting through the comments, that bug is tracking something else overall)<br />
<br />
* the "disabled" value of the status flags should be set on bugs whose functionality is being disabled, not on bugs where the disabling took place. For example, in this case, bug 619558 (and maybe other trackers?) should be marked "status-firefox31: disabled" (the feature is disabled on 31), and bug 994589 should be marked as "status-firefox31: fixed" (the crashes are fixed by the disabling - a comment indicating that is also useful).<br />
<br />
<br />
[[category:Release_Management|T]]<br />
[[Category:Release_Management:Processes|Tracking]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Tracking_rules&diff=1207662
Release Management/Tracking rules
2019-02-12T22:23:30Z
<p>Ritu Kothari: /* Not a regression: Request tracking */ Adding a link on how to make a tracking request</p>
<hr />
<div>{{DISPLAYTITLE:Release tracking rules}}<br />
This page describes the rules applied by the Release Team to track or not a bug for a release.<br />
<br />
[[Releases/Flags|Tracking flags]] are set to manage a list of release critical bugs but also the bugs / features that the Release Team wants to keep on their radar.<br />
<br />
= Regressions: Status flags + keyword =<br />
'''Please mark regressions with the keyword "regression" and the status flag.'''<br />
<br />
For example, a bug which is a new regression in 57 should be flagged:<br />
status-firefox56: unaffected <br />
status-firefox57: affected<br />
<br />
Add the keyword "regression" to the keyword field. <br />
<br />
Bugs with these flags and keyword will be triaged by relman and a team of engineering managers.<br />
They'll show up on this Release Health dashboard: https://mozilla.github.io/releasehealth/?channel=beta<br />
<br />
= Not a regression: Request tracking =<br />
<br />
Tracking requests are made by changing "tracking flags" -> "tracking-firefoxN" flag to "?" and updating "status-firefixN" flag to "affected"<br />
<br />
When dealing with new features, this case is common. <br />
<br />
Tracking is recommended if:<br />
* You want to escalate quickly to get a fix in an important, unassigned bug. Relman will work to find an assignee.<br />
* High volume crashes. For example, bugs with keyword ''topcrash*'' are usually tracked. <br />
* High impact on web compatibility<br />
* Add-on compatibility implications<br />
* Introduced a new feature which may need to be backed out<br />
* The bug is sec-critical <br />
<br />
If there is no patch on a critical or high-impact bug report, then tracking is recommended.<br />
<br />
If the patch has already landed in Mozilla-central for a few days and an uplift request has been filled (or already applied), tracking is not necessary (except for high risk changes). <br />
<br />
What does it mean for a bug to be tracked? Release management will triage it about once a week, will follow up with developers, QE, managers, project managers, and product teams to get it fixed, tested, and in affected releases as soon as possible. <br />
<br />
Not every regression can or should be tracked. We can trust to the regression triage team (which includes relman).<br />
<br />
For a very serious issue that would block either a release, or the release of a feature, relman can mark the tracking flag as "blocking".<br />
<br />
= Misc =<br />
<br />
The tracking flag ''tracking-fennec'' is not managed by the release team. This flag is used by the mobile team.<br />
<br />
Fennec bugs should be marked with status flags, the same as for Desktop. <br />
<br />
= Disabling a Feature =<br />
<br />
* separate bugs for "disable feature X" are always clearer than attaching patches/getting approvals in meta or other bugs with confusing summaries (e.g. it's hard to tell that bug 994589 resulted in a feature disabling after the fact without hunting through the comments, that bug is tracking something else overall)<br />
<br />
* the "disabled" value of the status flags should be set on bugs whose functionality is being disabled, not on bugs where the disabling took place. For example, in this case, bug 619558 (and maybe other trackers?) should be marked "status-firefox31: disabled" (the feature is disabled on 31), and bug 994589 should be marked as "status-firefox31: fixed" (the crashes are fixed by the disabling - a comment indicating that is also useful).<br />
<br />
<br />
[[category:Release_Management|T]]<br />
[[Category:Release_Management:Processes|Tracking]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1206565
Release Management/Process coordination for handling off-train releases
2019-01-22T23:20:29Z
<p>Ritu Kothari: /* Extra steps */ reformatting sub-items</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
# By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers with the bug number<br />
# Releng owner to configure balrog rules and sign offs<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers to explain the change<br />
# The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
# Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
# File a bug for handling the rollout (example: {{bug|1467514}})<br />
# Development owner (likely mythmon) configures the recipe in Normandy to flip pref for targeted end-users<br />
# Release owner reviews, approves and publishes recipe<br />
# Feature team, release owner monitor data to verify:<br />
## Recipe uptake is going as planned<br />
## Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
# Release owner drafts release notes and shares for review.<br />
# Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
# Security owner drafts security advisory as needed and shares for review.<br />
# Create a CVE if necessary<br />
# Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Calendar&diff=1206395
Release Management/Calendar
2019-01-18T17:46:20Z
<p>Ritu Kothari: Adding links to 67 milestone document</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Calendar}}<br />
This schedule is based on the current [[RapidRelease]] plan. Future dates may change if the process changes. Code is not always released to users on the same day as the branch migration. The release to users may be a few days later, to allow for manual testing and sign-off. Thunderbird tracks the [https://www.mozilla.org/en-US/firefox/organizations/ ESR schedule] column per [[Thunderbird:Home#Releases|Thunderbird release info]].<br />
<br />
== Calendars ==<br />
<br />
This wiki page may not always have the most current information. Please refer to one of the following calendars for up-to-date scheduling:<br />
<br />
* [https://www.google.com/calendar/embed?src=mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com Firefox Merge/Release Dates] ([https://www.google.com/calendar/ical/mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com/public/basic.ics ICS for Thunderbird/Lightning or your calendar app]) (low noise)<br />
* [https://www.google.com/calendar/embed?src=bW96aWxsYS5jb21fZGJxODRhbnI5aTh0Y25taGFiYXRzdHY1Y29AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ Firefox Merge/Release Full Scheduling Calendar] ([https://calendar.google.com/calendar/ical/mozilla.com_dbq84anr9i8tcnmhabatstv5co%40group.calendar.google.com/public/basic.ics ICS]) (highly detailed - 99.99% up to date)<br />
<br />
== Future branch dates ==<br />
<big>[[Release_Management/Release_owners|Release Owners]]</big><br />
{| class="wikitable"<br />
|-<br />
!Quarter ||Soft Freeze ||Merge Date ||Central ||Beta ||Release Date ||Release ||ESR<br />
|-<br />
|rowspan="2"|Q1<br />
!2019-01-21<br />
!2019-01-28<br />
|[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/edit Firefox 67]||Firefox 66<br />
!2019-01-29<br />
|Firefox 65<br />
|Firefox 60.5<br />
|-<br />
!2019-03-11<br />
!2019-03-18<br />
|Firefox 68||[https://docs.google.com/document/d/1feDkXleRXMJJS9lxP_vbyBApIDoEr44KchAZoYHkS54/edit Firefox 67]<br />
!2019-03-19<br />
|Firefox 66<br />
|Firefox 60.6<br />
|-<br />
|rowspan="1"|Q2<br />
!2019-05-06<br />
!2019-05-13<br />
|Firefox 69||Firefox 68<br />
!2019-05-14<br />
|Firefox 67<br />
|Firefox 60.7<br />
|-<br />
|rowspan="2"|Q3<br />
!2019-07-01<br />
!2019-07-08<br />
|Firefox 70||Firefox 69<br />
!2019-07-09<br />
|Firefox 68<br />
|Firefox 60.8; 68.0<br />
|-<br />
!2019-08-26<br />
!2019-09-02<br />
|Firefox 71||Firefox 70<br />
!2019-09-03<br />
|Firefox 69<br />
|Firefox 60.9; 68.1<br />
|-<br />
|rowspan="2"|Q4<br />
!2019-10-14<br />
!2019-10-21<br />
|Firefox 72||Firefox 71<br />
!2019-10-22<br />
|Firefox 70<br />
|Firefox 68.2<br />
|-<br />
!2019-12-02<br />
!2019-12-09<br />
|Firefox 73||Firefox 72<br />
!2019-12-10<br />
|Firefox 71<br />
|Firefox 68.3<br />
|-<br />
<br />
|}<br />
<br />
<p>The Nightly soft freeze is typically during the week prior to merge day. During this period, high-risk patches should avoid landing until after the Nightly version bump lands on mozilla-central on merge day.</p><br />
<br />
== Past branch dates ==<br />
More details on contents of releases can be found in the [https://www.mozilla.org/firefox/releases/ release notes archive] or [https://en.wikipedia.org/wiki/Firefox_release_history Wikipedia: Firefox release history].<br />
<br />
{| class="wikitable"<br />
|-<br />
!Soft Freeze||Merge Date||Central||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2018-12-03<br />
!2018-12-10<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/edit Firefox 66]||Firefox 65<br />
!2018-12-11<br />
|Firefox 64<br />
|Firefox 60.4<br />
|-<br />
!2018-10-15<br />
!2018-10-22<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit Firefox 65]||Firefox 64<br />
!2018-10-23<br />
|Firefox 63<br />
|Firefox 60.3<br />
|-<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
!Merge Date||Central||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2018-09-04<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit Firefox 64]||Firefox 63<br />
!2018-09-05<br />
|Firefox 62<br />
|Firefox 60.2<br />
|-<br />
!2018-06-25<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit Firefox 63]||Firefox 62<br />
!2018-06-26<br />
|Firefox 61<br />
|Firefox 52.9; 60.1<br />
|-<br />
!2018-05-07<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit Firefox 62]||Firefox 61<br />
!2018-05-09<br />
|Firefox 60<br />
|Firefox 52.8; 60.0<br />
|-<br />
!2018-03-12<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit Firefox 61]||Firefox 60<br />
!2018-03-13<br />
|Firefox 59<br />
|Firefox 52.7<br />
|-<br />
!2018-01-22<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit Firefox 60]||Firefox 59<br />
!2018-01-23<br />
|Firefox 58<br />
|Firefox 52.6<br />
|-<br />
!2017-11-13<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit Firefox 59]||Firefox 58<br />
!2017-11-14<br />
|Firefox 57<br />
|Firefox 52.5<br />
|-<br />
!2017-09-21<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit Firefox 58]||Firefox 57<br />
!2017-09-28<br />
|Firefox 56<br />
|Firefox 52.4<br />
|-<br />
!2017-08-02<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit Firefox 57]||Firefox 56<br />
!2017-08-08<br />
|Firefox 55<br />
|Firefox 52.3<br />
|-<br />
!2017-06-12<br />
|Firefox 56||Firefox 55<br />
!2017-06-13<br />
|Firefox 54<br />
|Firefox 52.2<br />
|-<br />
!2017-04-18<br />
|Firefox 55||Firefox 54<br />
!2017-04-19<br />
|Firefox 53<br />
|Firefox 45.9; 52.1<br />
|-<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
!Merge Date||Central||Aurora||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2017-03-06<br />
|Firefox 55||Firefox 54||Firefox 53<br />
!2017-03-07<br />
|Firefox 52<br />
|Firefox 45.8; 52.0<br />
|-<br />
!2017-01-23<br />
|Firefox 54||Firefox 53||Firefox 52<br />
!2017-01-24<br />
|Firefox 51<br />
|Firefox 45.7<br />
|-<br />
|<br />
|<br />
|<br />
|<br />
!2016-12-13<br />
|Firefox 50.1.0<br />
|Firefox 45.6<br />
|-<br />
!2016-11-14<br />
|Firefox 53||Firefox 52||Firefox 51<br />
!2016-11-15<br />
|Firefox 50<br />
|Firefox 45.5<br />
|-<br />
!2016-09-19<br />
|Firefox 52||Firefox 51||Firefox 50<br />
!2016-09-20<br />
|Firefox 49<br />
|Firefox 45.4<br />
|-<br />
!2016-08-01<br />
|Firefox 51||Firefox 50||Firefox 49<br />
!2016-08-02<br />
|Firefox 48<br />
|Firefox 45.3<br />
|-<br />
!2016-06-06<br />
|Firefox 50||Firefox 49||Firefox 48<br />
!2016-06-07<br />
|Firefox 47<br />
|Firefox 45.2<br />
|-<br />
!2016-04-25<br />
|Firefox 49||Firefox 48||Firefox 47<br />
!2016-04-26<br />
|Firefox 46<br />
|Firefox 38.8; 45.1<br />
|-<br />
!2016-03-07<br />
|Firefox 48||Firefox 47||Firefox 46<br />
!2016-03-08<br />
|Firefox 45<br />
|Firefox 38.7; 45.0<br />
|-<br />
!2016-01-25<br />
|Firefox 47||Firefox 46||Firefox 45<br />
!2016-01-26<br />
|Firefox 44<br />
|Firefox 38.6<br />
|-<br />
!2015-12-14<br />
|Firefox 46||Firefox 45||Firefox 44<br />
!2015-12-15<br />
|Firefox 43<br />
|Firefox 38.5<br />
|-<br />
!2015-10-29<br />
|Firefox 45||Firefox 44||Firefox 43<br />
!2015-11-03<br />
|Firefox 42<br />
|Firefox 38.4<br />
|-<br />
!2015-09-21<br />
|Firefox 44||Firefox 43||Firefox 42<br />
!2015-09-22<br />
|Firefox 41<br />
|Firefox 38.3<br />
|-<br />
!2015-08-10<br />
|Firefox 43||Firefox 42||Firefox 41<br />
!2015-08-11<br />
|Firefox 40<br />
|Firefox 38.2<br />
|-<br />
!2015-06-29<br />
|Firefox 42||Firefox 41||Firefox 40<br />
!2015-06-30<br />
|Firefox 39<br />
|Firefox 31.8; 38.1<br />
|-<br />
!<br />
| || || <br />
!2015-06-02<br />
|Firefox 38.0.5<br />
|-<br />
!2015-05-11*<br />
|Firefox 41||Firefox 40||Firefox 39<br />
!2015-05-12*<br />
|Firefox 38<br />
|Firefox 31.7; 38.0<br />
|-<br />
!2015-03-30*<br />
|Firefox 40||Firefox 39||Firefox 38<br />
!2015-03-31*<br />
|Firefox 37<br />
|Firefox 31.6<br />
|-<br />
!2015-02-23<br />
|Firefox 39||Firefox 38||Firefox 37<br />
!2015-02-24<br />
|Firefox 36<br />
|Firefox 31.5<br />
|-<br />
!2015-01-12*<br />
|Firefox 38||Firefox 37||Firefox 36<br />
!2015-01-13*<br />
|Firefox 35<br />
|Firefox 31.4<br />
|-<br />
!2014-11-28*<br />
|Firefox 37||Firefox 36||Firefox 35<br />
!2014-12-01*<br />
|Firefox 34<br />
|Firefox 31.3<br />
|-<br />
!2014-10-13 <br />
|Firefox 36||Firefox 35||Firefox 34<br />
!2014-10-14<br />
|Firefox 33<br />
|Firefox 31.2<br />
|-<br />
!2014-09-02*<br />
|Firefox 35||Firefox 34||Firefox 33<br />
!2014-09-02<br />
|Firefox 32<br />
|Firefox 24.8; 31.1<br />
|-<br />
!2014-07-21<br />
|Firefox 34||Firefox 33||Firefox 32<br />
!2014-07-22<br />
|Firefox 31<br />
|Firefox 24.7; 31.0<br />
|-<br />
!2014-06-09<br />
|Firefox 33||Firefox 32||Firefox 31<br />
!2014-06-10<br />
|Firefox 30<br />
|Firefox 24.6<br />
|-<br />
!2014-04-28<br />
|Firefox 32||Firefox 31||Firefox 30<br />
!2014-04-29<br />
|Firefox 29<br />
|Firefox 24.5<br />
|-<br />
!2014-03-17<br />
|Firefox 31||Firefox 30||Firefox 29<br />
!2014-03-18<br />
|Firefox 28<br />
|Firefox 24.4<br />
|-<br />
!2014-02-03*<br />
|Firefox 30||Firefox 29||Firefox 28<br />
!2014-02-04*<br />
|Firefox 27<br />
|Firefox 24.3<br />
|-<br />
!2013-12-09<br />
|Firefox 29||Firefox 28||Firefox 27<br />
!2013-12-10<br />
|Firefox 26<br />
|Firefox 24.2<br />
|-<br />
!2013-10-28<br />
|Firefox 28||Firefox 27||Firefox 26<br />
!2013-10-29<br />
|Firefox 25<br />
|Firefox 17.0.10; 24.1<br />
|-<br />
!2013-09-16<br />
|Firefox 27||Firefox 26||Firefox 25<br />
!2013-09-17<br />
|Firefox 24<br />
|Firefox 17.0.9; 24.0<br />
|-<br />
!2013-08-05<br />
|Firefox 26||Firefox 25||Firefox 24<br />
!2013-08-06<br />
|Firefox 23<br />
|Firefox 17.0.8<br />
|-<br />
!2013-06-24<br />
|Firefox 25||Firefox 24||Firefox 23<br />
!2013-06-25<br />
|Firefox 22<br />
|Firefox 17.0.7<br />
|-<br />
!2013-05-13<br />
|Firefox 24||Firefox 23||Firefox 22<br />
!2013-05-14<br />
|Firefox 21<br />
|Firefox 17.0.6<br />
|-<br />
!2013-04-01<br />
|Firefox 23||Firefox 22||Firefox 21<br />
!2013-04-02<br />
|Firefox 20<br />
|Firefox 17.0.5<br />
|-<br />
!2013-02-19*<br />
|Firefox 22||Firefox 21||Firefox 20<br />
!2013-02-19<br />
|Firefox 19<br />
|Firefox 17.0.3<br />
|-<br />
!2013-01-07<nowiki>*</nowiki><br />
|Firefox 21||Firefox 20||Firefox 19<br />
!2013-01-08<nowiki>*</nowiki><br />
|Firefox 18<br />
|Firefox 10.0.12; 17.0.2<br />
|-<br />
!2012-11-19<br />
|Firefox 20||Firefox 19||Firefox 18<br />
!2012-11-20<br />
|Firefox 17<br />
|Firefox 10.0.11; 17.0<br />
|-<br />
!2012-10-08<br />
|Firefox 19<br />
|Firefox 18<br />
|Firefox 17<br />
!2012-10-09<br />
|Firefox 16<br />
|Firefox 10.0.8<br />
|-<br />
!2012-08-27<br />
|Firefox 18<br />
|Firefox 17<br />
|Firefox 16<br />
!2012-08-28<br />
|Firefox 15<br />
|Firefox 10.0.7<br />
|-<br />
!2012-07-16<br />
|Firefox 17<br />
|Firefox 16<br />
|Firefox 15<br />
!2012-07-17<br />
|Firefox 14<br />
|Firefox 10.0.6<br />
|-<br />
!2012-06-05<br />
|Firefox 16<br />
|Firefox 15<br />
|Firefox 14<br />
!2012-06-05<br />
|Firefox 13<br />
|Firefox 10.0.5<br />
|-<br />
!2012-04-24<br />
|Firefox 15<br />
|Firefox 14<br />
|Firefox 13<br />
!2012-04-24<br />
|Firefox 12<br />
|Firefox 10.0.4<br />
|-<br />
!2012-03-13<br />
|Firefox 14<br />
|Firefox 13<br />
|Firefox 12<br />
!2012-03-13<br />
|Firefox 11<br />
|Firefox 10.0.3<br />
|-<br />
!2012-01-31<br />
|Firefox 13<br />
|Firefox 12<br />
|Firefox 11<br />
!2012-01-31<br />
|Firefox 10<br />
|Firefox 10.0<br />
|-<br />
!2011-12-20<br />
|Firefox 12<br />
|Firefox 11<br />
|Firefox 10<br />
!2011-12-20<br />
|Firefox 9<br />
|-<br />
!2011-11-08<br />
|Firefox 11<br />
|Firefox 10<br />
|Firefox 9<br />
!2011-11-08<br />
|Firefox 8<br />
|-<br />
!2011-09-27<br />
|Firefox 10<br />
|Firefox 9<br />
|Firefox 8<br />
!2011-09-27<br />
|Firefox 7<br />
|-<br />
!2011-08-16<br />
|Firefox 9<br />
|Firefox 8<br />
|Firefox 7<br />
!2011-08-16<br />
|Firefox 6<br />
|-<br />
!2011-07-05<br />
|Firefox 8||Firefox 7||Firefox 6<br />
!<br />
|<br />
|-<br />
!<br />
| || || <br />
!2011-06-21<br />
|Firefox 5<br />
|-<br />
!2011-05-24<br />
|Firefox 7||Firefox 6|| <br />
|-<br />
!2011-05-17<br />
| || ||Firefox 5<br />
|-<br />
!2011-04-12<br />
|Firefox 6||Firefox 5 <br />
|-<br />
|}<br />
<br />
<nowiki>*</nowiki>Some release dates and merge dates are rescheduled to avoid conflicts with holidays.<br />
<br />
Notes:<br />
* Irregular scheduling starting 2016.<br />
* Six week schedule from 2011 to 2015 (with some dates delayed to avoid conflicts with holidays).<br />
* Firefox 5 was on a slightly different schedule. It spent five weeks each on Aurora and Beta while later releases spent six weeks on each branch.<br />
<br />
[[category:Release_Management|R]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Calendar&diff=1206180
Release Management/Calendar
2019-01-15T00:06:57Z
<p>Ritu Kothari: Adding a link to 66 milestones document</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Calendar}}<br />
This schedule is based on the current [[RapidRelease]] plan. Future dates may change if the process changes. Code is not always released to users on the same day as the branch migration. The release to users may be a few days later, to allow for manual testing and sign-off. Thunderbird tracks the [https://www.mozilla.org/en-US/firefox/organizations/ ESR schedule] column per [[Thunderbird:Home#Releases|Thunderbird release info]].<br />
<br />
== Calendars ==<br />
<br />
This wiki page may not always have the most current information. Please refer to one of the following calendars for up-to-date scheduling:<br />
<br />
* [https://www.google.com/calendar/embed?src=mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com Firefox Merge/Release Dates] ([https://www.google.com/calendar/ical/mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com/public/basic.ics ICS for Thunderbird/Lightning or your calendar app]) (low noise)<br />
* [https://www.google.com/calendar/embed?src=bW96aWxsYS5jb21fZGJxODRhbnI5aTh0Y25taGFiYXRzdHY1Y29AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ Firefox Merge/Release Full Scheduling Calendar] ([https://calendar.google.com/calendar/ical/mozilla.com_dbq84anr9i8tcnmhabatstv5co%40group.calendar.google.com/public/basic.ics ICS]) (highly detailed - 99.99% up to date)<br />
<br />
== Future branch dates ==<br />
<big>[[Release_Management/Release_owners|Release Owners]]</big><br />
{| class="wikitable"<br />
|-<br />
!Quarter ||Soft Freeze ||Merge Date ||Central ||Beta ||Release Date ||Release ||ESR<br />
|-<br />
|rowspan="2"|Q1<br />
!2019-01-21<br />
!2019-01-28<br />
|Firefox 67||Firefox 66<br />
!2019-01-29<br />
|Firefox 65<br />
|Firefox 60.5<br />
|-<br />
!2019-03-11<br />
!2019-03-18<br />
|Firefox 68||Firefox 67<br />
!2019-03-19<br />
|Firefox 66<br />
|Firefox 60.6<br />
|-<br />
|rowspan="1"|Q2<br />
!2019-05-06<br />
!2019-05-13<br />
|Firefox 69||Firefox 68<br />
!2019-05-14<br />
|Firefox 67<br />
|Firefox 60.7<br />
|-<br />
|rowspan="2"|Q3<br />
!2019-07-01<br />
!2019-07-08<br />
|Firefox 70||Firefox 69<br />
!2019-07-09<br />
|Firefox 68<br />
|Firefox 60.8; 68.0<br />
|-<br />
!2019-08-26<br />
!2019-09-02<br />
|Firefox 71||Firefox 70<br />
!2019-09-03<br />
|Firefox 69<br />
|Firefox 60.9; 68.1<br />
|-<br />
|rowspan="2"|Q4<br />
!2019-10-14<br />
!2019-10-21<br />
|Firefox 72||Firefox 71<br />
!2019-10-22<br />
|Firefox 70<br />
|Firefox 68.2<br />
|-<br />
!2019-12-02<br />
!2019-12-09<br />
|Firefox 73||Firefox 72<br />
!2019-12-10<br />
|Firefox 71<br />
|Firefox 68.3<br />
|-<br />
<br />
|}<br />
<br />
<p>The Nightly soft freeze is typically during the week prior to merge day. During this period, high-risk patches should avoid landing until after the Nightly version bump lands on mozilla-central on merge day.</p><br />
<br />
== Past branch dates ==<br />
More details on contents of releases can be found in the [https://www.mozilla.org/firefox/releases/ release notes archive] or [https://en.wikipedia.org/wiki/Firefox_release_history Wikipedia: Firefox release history].<br />
<br />
{| class="wikitable"<br />
|-<br />
!Soft Freeze||Merge Date||Central||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2018-12-03<br />
!2018-12-10<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/edit Firefox 66]||Firefox 65<br />
!2018-12-11<br />
|Firefox 64<br />
|Firefox 60.4<br />
|-<br />
!2018-10-15<br />
!2018-10-22<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit Firefox 65]||Firefox 64<br />
!2018-10-23<br />
|Firefox 63<br />
|Firefox 60.3<br />
|-<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
!Merge Date||Central||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2018-09-04<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit Firefox 64]||Firefox 63<br />
!2018-09-05<br />
|Firefox 62<br />
|Firefox 60.2<br />
|-<br />
!2018-06-25<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit Firefox 63]||Firefox 62<br />
!2018-06-26<br />
|Firefox 61<br />
|Firefox 52.9; 60.1<br />
|-<br />
!2018-05-07<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit Firefox 62]||Firefox 61<br />
!2018-05-09<br />
|Firefox 60<br />
|Firefox 52.8; 60.0<br />
|-<br />
!2018-03-12<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit Firefox 61]||Firefox 60<br />
!2018-03-13<br />
|Firefox 59<br />
|Firefox 52.7<br />
|-<br />
!2018-01-22<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit Firefox 60]||Firefox 59<br />
!2018-01-23<br />
|Firefox 58<br />
|Firefox 52.6<br />
|-<br />
!2017-11-13<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit Firefox 59]||Firefox 58<br />
!2017-11-14<br />
|Firefox 57<br />
|Firefox 52.5<br />
|-<br />
!2017-09-21<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit Firefox 58]||Firefox 57<br />
!2017-09-28<br />
|Firefox 56<br />
|Firefox 52.4<br />
|-<br />
!2017-08-02<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit Firefox 57]||Firefox 56<br />
!2017-08-08<br />
|Firefox 55<br />
|Firefox 52.3<br />
|-<br />
!2017-06-12<br />
|Firefox 56||Firefox 55<br />
!2017-06-13<br />
|Firefox 54<br />
|Firefox 52.2<br />
|-<br />
!2017-04-18<br />
|Firefox 55||Firefox 54<br />
!2017-04-19<br />
|Firefox 53<br />
|Firefox 45.9; 52.1<br />
|-<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
!Merge Date||Central||Aurora||Beta<br />
!Release Date||Release||ESR<br />
|-<br />
!2017-03-06<br />
|Firefox 55||Firefox 54||Firefox 53<br />
!2017-03-07<br />
|Firefox 52<br />
|Firefox 45.8; 52.0<br />
|-<br />
!2017-01-23<br />
|Firefox 54||Firefox 53||Firefox 52<br />
!2017-01-24<br />
|Firefox 51<br />
|Firefox 45.7<br />
|-<br />
|<br />
|<br />
|<br />
|<br />
!2016-12-13<br />
|Firefox 50.1.0<br />
|Firefox 45.6<br />
|-<br />
!2016-11-14<br />
|Firefox 53||Firefox 52||Firefox 51<br />
!2016-11-15<br />
|Firefox 50<br />
|Firefox 45.5<br />
|-<br />
!2016-09-19<br />
|Firefox 52||Firefox 51||Firefox 50<br />
!2016-09-20<br />
|Firefox 49<br />
|Firefox 45.4<br />
|-<br />
!2016-08-01<br />
|Firefox 51||Firefox 50||Firefox 49<br />
!2016-08-02<br />
|Firefox 48<br />
|Firefox 45.3<br />
|-<br />
!2016-06-06<br />
|Firefox 50||Firefox 49||Firefox 48<br />
!2016-06-07<br />
|Firefox 47<br />
|Firefox 45.2<br />
|-<br />
!2016-04-25<br />
|Firefox 49||Firefox 48||Firefox 47<br />
!2016-04-26<br />
|Firefox 46<br />
|Firefox 38.8; 45.1<br />
|-<br />
!2016-03-07<br />
|Firefox 48||Firefox 47||Firefox 46<br />
!2016-03-08<br />
|Firefox 45<br />
|Firefox 38.7; 45.0<br />
|-<br />
!2016-01-25<br />
|Firefox 47||Firefox 46||Firefox 45<br />
!2016-01-26<br />
|Firefox 44<br />
|Firefox 38.6<br />
|-<br />
!2015-12-14<br />
|Firefox 46||Firefox 45||Firefox 44<br />
!2015-12-15<br />
|Firefox 43<br />
|Firefox 38.5<br />
|-<br />
!2015-10-29<br />
|Firefox 45||Firefox 44||Firefox 43<br />
!2015-11-03<br />
|Firefox 42<br />
|Firefox 38.4<br />
|-<br />
!2015-09-21<br />
|Firefox 44||Firefox 43||Firefox 42<br />
!2015-09-22<br />
|Firefox 41<br />
|Firefox 38.3<br />
|-<br />
!2015-08-10<br />
|Firefox 43||Firefox 42||Firefox 41<br />
!2015-08-11<br />
|Firefox 40<br />
|Firefox 38.2<br />
|-<br />
!2015-06-29<br />
|Firefox 42||Firefox 41||Firefox 40<br />
!2015-06-30<br />
|Firefox 39<br />
|Firefox 31.8; 38.1<br />
|-<br />
!<br />
| || || <br />
!2015-06-02<br />
|Firefox 38.0.5<br />
|-<br />
!2015-05-11*<br />
|Firefox 41||Firefox 40||Firefox 39<br />
!2015-05-12*<br />
|Firefox 38<br />
|Firefox 31.7; 38.0<br />
|-<br />
!2015-03-30*<br />
|Firefox 40||Firefox 39||Firefox 38<br />
!2015-03-31*<br />
|Firefox 37<br />
|Firefox 31.6<br />
|-<br />
!2015-02-23<br />
|Firefox 39||Firefox 38||Firefox 37<br />
!2015-02-24<br />
|Firefox 36<br />
|Firefox 31.5<br />
|-<br />
!2015-01-12*<br />
|Firefox 38||Firefox 37||Firefox 36<br />
!2015-01-13*<br />
|Firefox 35<br />
|Firefox 31.4<br />
|-<br />
!2014-11-28*<br />
|Firefox 37||Firefox 36||Firefox 35<br />
!2014-12-01*<br />
|Firefox 34<br />
|Firefox 31.3<br />
|-<br />
!2014-10-13 <br />
|Firefox 36||Firefox 35||Firefox 34<br />
!2014-10-14<br />
|Firefox 33<br />
|Firefox 31.2<br />
|-<br />
!2014-09-02*<br />
|Firefox 35||Firefox 34||Firefox 33<br />
!2014-09-02<br />
|Firefox 32<br />
|Firefox 24.8; 31.1<br />
|-<br />
!2014-07-21<br />
|Firefox 34||Firefox 33||Firefox 32<br />
!2014-07-22<br />
|Firefox 31<br />
|Firefox 24.7; 31.0<br />
|-<br />
!2014-06-09<br />
|Firefox 33||Firefox 32||Firefox 31<br />
!2014-06-10<br />
|Firefox 30<br />
|Firefox 24.6<br />
|-<br />
!2014-04-28<br />
|Firefox 32||Firefox 31||Firefox 30<br />
!2014-04-29<br />
|Firefox 29<br />
|Firefox 24.5<br />
|-<br />
!2014-03-17<br />
|Firefox 31||Firefox 30||Firefox 29<br />
!2014-03-18<br />
|Firefox 28<br />
|Firefox 24.4<br />
|-<br />
!2014-02-03*<br />
|Firefox 30||Firefox 29||Firefox 28<br />
!2014-02-04*<br />
|Firefox 27<br />
|Firefox 24.3<br />
|-<br />
!2013-12-09<br />
|Firefox 29||Firefox 28||Firefox 27<br />
!2013-12-10<br />
|Firefox 26<br />
|Firefox 24.2<br />
|-<br />
!2013-10-28<br />
|Firefox 28||Firefox 27||Firefox 26<br />
!2013-10-29<br />
|Firefox 25<br />
|Firefox 17.0.10; 24.1<br />
|-<br />
!2013-09-16<br />
|Firefox 27||Firefox 26||Firefox 25<br />
!2013-09-17<br />
|Firefox 24<br />
|Firefox 17.0.9; 24.0<br />
|-<br />
!2013-08-05<br />
|Firefox 26||Firefox 25||Firefox 24<br />
!2013-08-06<br />
|Firefox 23<br />
|Firefox 17.0.8<br />
|-<br />
!2013-06-24<br />
|Firefox 25||Firefox 24||Firefox 23<br />
!2013-06-25<br />
|Firefox 22<br />
|Firefox 17.0.7<br />
|-<br />
!2013-05-13<br />
|Firefox 24||Firefox 23||Firefox 22<br />
!2013-05-14<br />
|Firefox 21<br />
|Firefox 17.0.6<br />
|-<br />
!2013-04-01<br />
|Firefox 23||Firefox 22||Firefox 21<br />
!2013-04-02<br />
|Firefox 20<br />
|Firefox 17.0.5<br />
|-<br />
!2013-02-19*<br />
|Firefox 22||Firefox 21||Firefox 20<br />
!2013-02-19<br />
|Firefox 19<br />
|Firefox 17.0.3<br />
|-<br />
!2013-01-07<nowiki>*</nowiki><br />
|Firefox 21||Firefox 20||Firefox 19<br />
!2013-01-08<nowiki>*</nowiki><br />
|Firefox 18<br />
|Firefox 10.0.12; 17.0.2<br />
|-<br />
!2012-11-19<br />
|Firefox 20||Firefox 19||Firefox 18<br />
!2012-11-20<br />
|Firefox 17<br />
|Firefox 10.0.11; 17.0<br />
|-<br />
!2012-10-08<br />
|Firefox 19<br />
|Firefox 18<br />
|Firefox 17<br />
!2012-10-09<br />
|Firefox 16<br />
|Firefox 10.0.8<br />
|-<br />
!2012-08-27<br />
|Firefox 18<br />
|Firefox 17<br />
|Firefox 16<br />
!2012-08-28<br />
|Firefox 15<br />
|Firefox 10.0.7<br />
|-<br />
!2012-07-16<br />
|Firefox 17<br />
|Firefox 16<br />
|Firefox 15<br />
!2012-07-17<br />
|Firefox 14<br />
|Firefox 10.0.6<br />
|-<br />
!2012-06-05<br />
|Firefox 16<br />
|Firefox 15<br />
|Firefox 14<br />
!2012-06-05<br />
|Firefox 13<br />
|Firefox 10.0.5<br />
|-<br />
!2012-04-24<br />
|Firefox 15<br />
|Firefox 14<br />
|Firefox 13<br />
!2012-04-24<br />
|Firefox 12<br />
|Firefox 10.0.4<br />
|-<br />
!2012-03-13<br />
|Firefox 14<br />
|Firefox 13<br />
|Firefox 12<br />
!2012-03-13<br />
|Firefox 11<br />
|Firefox 10.0.3<br />
|-<br />
!2012-01-31<br />
|Firefox 13<br />
|Firefox 12<br />
|Firefox 11<br />
!2012-01-31<br />
|Firefox 10<br />
|Firefox 10.0<br />
|-<br />
!2011-12-20<br />
|Firefox 12<br />
|Firefox 11<br />
|Firefox 10<br />
!2011-12-20<br />
|Firefox 9<br />
|-<br />
!2011-11-08<br />
|Firefox 11<br />
|Firefox 10<br />
|Firefox 9<br />
!2011-11-08<br />
|Firefox 8<br />
|-<br />
!2011-09-27<br />
|Firefox 10<br />
|Firefox 9<br />
|Firefox 8<br />
!2011-09-27<br />
|Firefox 7<br />
|-<br />
!2011-08-16<br />
|Firefox 9<br />
|Firefox 8<br />
|Firefox 7<br />
!2011-08-16<br />
|Firefox 6<br />
|-<br />
!2011-07-05<br />
|Firefox 8||Firefox 7||Firefox 6<br />
!<br />
|<br />
|-<br />
!<br />
| || || <br />
!2011-06-21<br />
|Firefox 5<br />
|-<br />
!2011-05-24<br />
|Firefox 7||Firefox 6|| <br />
|-<br />
!2011-05-17<br />
| || ||Firefox 5<br />
|-<br />
!2011-04-12<br />
|Firefox 6||Firefox 5 <br />
|-<br />
|}<br />
<br />
<nowiki>*</nowiki>Some release dates and merge dates are rescheduled to avoid conflicts with holidays.<br />
<br />
Notes:<br />
* Irregular scheduling starting 2016.<br />
* Six week schedule from 2011 to 2015 (with some dates delayed to avoid conflicts with holidays).<br />
* Firefox 5 was on a slightly different schedule. It spent five weeks each on Aurora and Beta while later releases spent six weeks on each branch.<br />
<br />
[[category:Release_Management|R]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1205289
Release Management/Release owners
2018-12-18T18:29:38Z
<p>Ritu Kothari: /* Release Owners */ Pascal offered to own 67</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Engineering REO<br />
!Release Duty¹ <br />
!Corresponding ESR<br />
!Release Date<br />
|-<br />
|[[Releases/Firefox 67|Firefox 67]]<br />
|Pascal<br />
|<br />
|<br />
|<br />
|<br />
|2019-05-07<br />
<br />
|-<br />
|[[Releases/Firefox 66|Firefox 66]]<br />
|Lizzard<br />
|Pascal<br />
|Tim Spurway<br />
|jlorenzo, tomprince<br />
|??<br />
|[https://docs.google.com/document/d/1KnDiM3UmLbCPrc3UVZq6Z5Tdb2jnTfjpdyahSqgSGNE/ 2019-03-19]<br />
<br />
|-<br />
|[[Releases/Firefox 65|Firefox 65]]<br />
|RyanVM<br />
|Lizzard<br />
|jaws<br />
|jlund, mtabara<br />
|JCristau<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit?usp=sharing 2019-01-29]<br />
|-<br />
<br />
|[[Releases/Firefox 64|Firefox 64]]<br />
|Julien<br />
|RyanVM<br />
|??<br />
|callek, sfraser<br />
|Liz<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit?usp=sharing 2018-12-11]<br />
|-<br />
|[[Releases/Firefox 63|Firefox 63]]<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit?usp=sharing 2018-10-23]<br />
|-<br />
|[[Releases/Firefox 62|Firefox 62]]<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit?usp=sharing 2018-09-05]<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit?usp=sharing 2018-06-26]<br />
|-<br />
|Firefox 60 (an ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit?usp=sharing 2018-05-09]<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit?usp=sharing 2018-03-13]<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit?usp=sharing 2018-01-23]<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit?usp=sharing 2017-11-14]<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203864
Release Management/Process coordination for handling off-train releases
2018-11-13T20:55:12Z
<p>Ritu Kothari: /* Extra steps */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
# By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers with the bug number<br />
# Releng owner to configure balrog rules and sign offs<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers to explain the change<br />
# The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
# Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
# Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
# Release owner reviews, approves and publishes recipe<br />
# Feature team, release owner monitor data to verify:<br />
# Recipe uptake is going as planned<br />
# Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
# Release owner drafts release notes and shares for review.<br />
# Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
# Security owner drafts security advisory as needed and shares for review.<br />
# Create a CVE if necessary<br />
# Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203863
Release Management/Process coordination for handling off-train releases
2018-11-13T20:54:43Z
<p>Ritu Kothari: /* Extra steps */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
# By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers with the bug number<br />
# Releng owner to configure balrog rules and sign offs<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers to explain the change<br />
# The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
# Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
# Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
# Release owner reviews, approves and publishes recipe<br />
# Feature team, release owner monitor data to verify:<br />
# Recipe uptake is going as planned<br />
# Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
# Release owner drafts release notes and shares for review.<br />
# Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203862
Release Management/Process coordination for handling off-train releases
2018-11-13T20:52:27Z
<p>Ritu Kothari: /* Extra steps */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
# By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers with the bug number<br />
# Releng owner to configure balrog rules and sign offs<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers to explain the change<br />
# The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
# Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
# Release owner drafts release notes and shares for review.<br />
# Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203861
Release Management/Process coordination for handling off-train releases
2018-11-13T20:52:08Z
<p>Ritu Kothari: /* Extra steps */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
# By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers with the bug number<br />
# Releng owner to configure balrog rules and sign offs<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers to explain the change<br />
# The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
# Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
* Release owner drafts release notes and shares for review.<br />
* Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203860
Release Management/Process coordination for handling off-train releases
2018-11-13T20:51:39Z
<p>Ritu Kothari: /* Extra steps */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
# By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers with the bug number<br />
# Releng owner to configure balrog rules and sign offs<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers to explain the change<br />
# The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
* Release owner drafts release notes and shares for review.<br />
* Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203859
Release Management/Process coordination for handling off-train releases
2018-11-13T20:51:21Z
<p>Ritu Kothari: /* Extra steps */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
# By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== Extra steps ==<br />
<br />
# Intent to ship email to release-drivers with the bug number<br />
# Releng owner to configure balrog rules and sign offs<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
* Release owner drafts release notes and shares for review.<br />
* Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203858
Release Management/Process coordination for handling off-train releases
2018-11-13T20:51:01Z
<p>Ritu Kothari: /* Extra steps */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
# By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
* Release owner drafts release notes and shares for review.<br />
* Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203857
Release Management/Process coordination for handling off-train releases
2018-11-13T20:50:07Z
<p>Ritu Kothari: /* 2 General process */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
* Release owner drafts release notes and shares for review.<br />
* Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203856
Release Management/Process coordination for handling off-train releases
2018-11-13T20:49:45Z
<p>Ritu Kothari: /* 5 Process: Funnelcake release */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
* Release owner drafts release notes and shares for review.<br />
* Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203855
Release Management/Process coordination for handling off-train releases
2018-11-13T20:49:10Z
<p>Ritu Kothari: /* 4 Process: GoFaster release Ship a new system add-on (SAO) or update an existing one */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= 5 Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== 5.1 Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== 5.2 Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== 5.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== 5.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
* Release owner drafts release notes and shares for review.<br />
* Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203854
Release Management/Process coordination for handling off-train releases
2018-11-13T20:48:40Z
<p>Ritu Kothari: /* 3 Process: Shipping a New Mozilla Webextension */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= 4 Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== 4.1 Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.2 Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== 4.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= 5 Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== 5.1 Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== 5.2 Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== 5.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== 5.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
* Release owner drafts release notes and shares for review.<br />
* Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203853
Release Management/Process coordination for handling off-train releases
2018-11-13T20:46:40Z
<p>Ritu Kothari: /* Process: Chemspills */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== 3.1 Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== 3.3 Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= 4 Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== 4.1 Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.2 Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== 4.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= 5 Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== 5.1 Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== 5.2 Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== 5.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== 5.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
* Release owner drafts release notes and shares for review.<br />
* Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* sec advisories, comms plan<br />
<br />
== Extra steps ==<br />
* Security owner drafts security advisory as needed and shares for review.<br />
* Create a CVE if necessary<br />
* Reach out to partners and/or other projects impacted if needed<br />
<br />
== Checklist ==<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203852
Release Management/Process coordination for handling off-train releases
2018-11-13T20:45:08Z
<p>Ritu Kothari: /* Process Dot Release */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== 3.1 Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== 3.3 Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= 4 Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== 4.1 Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.2 Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== 4.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= 5 Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== 5.1 Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== 5.2 Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== 5.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== 5.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release and/or ESR end-user users to mitigate release blocking issues.<br />
<br />
== Decisions ==<br />
<br />
* Timeline</div><br />
* Bugs that are dot release drivers and ride-alongs<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
* Release notes, sec advisories, comms plan, What’s New Page<br />
<br />
== Extra steps ==<br />
* Release owner drafts release notes and shares for review.<br />
* Security owner drafts security advisory as needed and shares for review.<br />
<br />
== Checklist ==<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist]<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203851
Release Management/Process coordination for handling off-train releases
2018-11-13T20:43:16Z
<p>Ritu Kothari: /* Process: Feature rollout via Normandy */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== 3.1 Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== 3.3 Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= 4 Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== 4.1 Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.2 Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== 4.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= 5 Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== 5.1 Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== 5.2 Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== 5.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== 5.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* Timeline<br />
* Products affected: Desktop, Fennec, ESR?<br />
* Platforms affected: All, Windows, Mac, Linux?<br />
* Rollout strategy<br />
<br />
<br />
== Extra steps ==<br />
* Development owner configures the recipe in Normandy to flip pref for targeted end-users<br />
* Release owner reviews, approves and publishes recipe<br />
* Feature team, release owner monitor data to verify:<br />
** Recipe uptake is going as planned<br />
** Feature is having the intended effect on end-users<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203850
Release Management/Process coordination for handling off-train releases
2018-11-13T20:38:24Z
<p>Ritu Kothari: /* Process: Shield studies */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== 3.1 Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== 3.3 Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= 4 Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== 4.1 Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.2 Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== 4.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= 5 Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== 5.1 Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== 5.2 Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== 5.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== 5.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
* Target channel<br />
* Rollout plan (channel, user population, test/control channel breakdown)<br />
* Timeline<br />
* Data/Legal review<br />
<br />
== Extra steps ==<br />
<br />
* Product Hypothesis Doc (Phd) review<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
Useful links<br />
* [https://docs.google.com/document/d/1MQKsT1pNR30Qtc6B7a_1egcnOt7ft-fJhelrQZUrre8/edit?usp=sharing Release management risk assessment criteria] <br />
* [https://wiki.mozilla.org/Firefox/Shield/Shield_Studies https://wiki.mozilla.org/Firefox/Shield/Shield_Studies]<br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203849
Release Management/Process coordination for handling off-train releases
2018-11-13T20:35:47Z
<p>Ritu Kothari: /* Extra steps */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== 3.1 Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== 3.3 Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= 4 Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== 4.1 Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.2 Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== 4.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= 5 Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== 5.1 Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== 5.2 Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== 5.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== 5.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
* Intent to ship email to release-drivers to explain the change<br />
* The change should be published on the relevant platform<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203848
Release Management/Process coordination for handling off-train releases
2018-11-13T20:34:11Z
<p>Ritu Kothari: /* Process: Funnelcake release */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== 3.1 Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== 3.3 Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= 4 Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== 4.1 Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.2 Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== 4.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= 5 Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== 5.1 Decisions ==<br />
<br />
* Timeline<br />
* Team<br />
* Scope<br />
* New User population that will be targeted<br />
* Release readiness criteria<br />
** QA<br />
** Perf<br />
** Security review<br />
** Data & Privacy review<br />
<br />
== 5.2 Extra steps ==<br />
<br />
* Intent to ship email to release-drivers with the bug number<br />
* Releng owner to configure balrog rules and sign offs<br />
<br />
== 5.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== 5.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div><br />
<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203847
Release Management/Process coordination for handling off-train releases
2018-11-13T20:32:01Z
<p>Ritu Kothari: /* Process: GoFaster release Ship a new system add-on (SAO) or update an existing one */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== 3.1 Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== 3.3 Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= 4 Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== 4.1 Decisions ==<br />
<br />
* Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
* By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.2 Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== 4.3 Checklists ==<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== 4.4 Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process]<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Team</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Scope</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">New User population that will be targeted</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release readiness criteria</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">QA</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Perf</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Security review</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Data & Privacy review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
Intent to ship email to release-drivers with the bug number<br />
<br />
Releng owner to configure balrog rules and sign offs<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div><br />
<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203846
Release Management/Process coordination for handling off-train releases
2018-11-13T20:29:32Z
<p>Ritu Kothari: /* 3.2 Extra steps */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== 3.1 Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
== 3.3 Checklist ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
3 Checklists<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process] <br />
<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Team</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Scope</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">New User population that will be targeted</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release readiness criteria</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">QA</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Perf</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Security review</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Data & Privacy review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
Intent to ship email to release-drivers with the bug number<br />
<br />
Releng owner to configure balrog rules and sign offs<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div><br />
<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203845
Release Management/Process coordination for handling off-train releases
2018-11-13T20:28:36Z
<p>Ritu Kothari: /* General process */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= 2 General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
# Kick-off email thread or meeting to establish scope, owners and timeline.<br />
# Identify which off-train release vehicle to use. E.g. Controlled rollout or dot release or chemspill or shield study.<br />
# Create checklist, find owners and track items on the checklist.<br />
# Requirement doc - defines the goal of the change, why we are doing it and what will be done<br />
# Test plan - Using the requirement doc, the QA owner will draft the test plan. Test plan to be reviewed by product owner, eng owner.<br />
# Prepare the technical changes (code, pref change, etc)<br />
# “Build it” process (including signature if needed)<br />
# QA sign off - Formal QA sign off.<br />
# Rollout plan and timing - From the kick-off meeting to daily stand-ups, keep the team aligned on rollout plan and timing.<br />
# Communication - Do we need to communicate on the change? Release notes? Blog? If yes, identify owner and timeline to publish blog live.<br />
# Publication of the change<br />
# QA sign off of the publication of the change<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== 3.1 Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
3 Checklists<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process] <br />
<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Team</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Scope</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">New User population that will be targeted</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release readiness criteria</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">QA</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Perf</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Security review</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Data & Privacy review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
Intent to ship email to release-drivers with the bug number<br />
<br />
Releng owner to configure balrog rules and sign offs<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div><br />
<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203844
Release Management/Process coordination for handling off-train releases
2018-11-13T20:27:02Z
<p>Ritu Kothari: /* Decisions */ reformatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Kick-off email thread or meeting to establish scope, owners and timeline.</div><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create checklist, find owners and track items on the checklist.</div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Prepare the technical changes (code, pref change, etc)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">“Build it” process (including signature if needed)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off - Formal QA sign off. </div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Publication of the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off of the publication of the change</div><br />
<br />
<br />
<br />
<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== 3.1 Decisions ==<br />
<br />
* Products supported: Desktop / Fennec / both<br />
* Platforms supported<br />
* Firefox versions supported<br />
* Release readiness criteria<br />
** QA <br />
** Performance<br />
** Security review<br />
* What kind of telemetry data will this webext capture and send to Mozilla?<br />
* Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
3 Checklists<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process] <br />
<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Team</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Scope</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">New User population that will be targeted</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release readiness criteria</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">QA</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Perf</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Security review</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Data & Privacy review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
Intent to ship email to release-drivers with the bug number<br />
<br />
Releng owner to configure balrog rules and sign offs<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div><br />
<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203843
Release Management/Process coordination for handling off-train releases
2018-11-13T20:26:05Z
<p>Ritu Kothari: /* Process: Shipping a New Mozilla Webextension */ adding the section number</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Kick-off email thread or meeting to establish scope, owners and timeline.</div><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create checklist, find owners and track items on the checklist.</div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Prepare the technical changes (code, pref change, etc)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">“Build it” process (including signature if needed)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off - Formal QA sign off. </div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Publication of the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off of the publication of the change</div><br />
<br />
<br />
<br />
<br />
<br />
= 3 Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
Products supported: Desktop / Fennec / both<br />
<br />
Platforms supported<br />
<br />
Firefox versions supported<br />
<br />
Release readiness criteria<br />
* QA <br />
* Performance<br />
* Security review<br />
<br />
<br />
<br />
What kind of telemetry data will this webext capture and send to Mozilla?<br />
<br />
Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
3 Checklists<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process] <br />
<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Team</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Scope</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">New User population that will be targeted</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release readiness criteria</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">QA</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Perf</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Security review</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Data & Privacy review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
Intent to ship email to release-drivers with the bug number<br />
<br />
Releng owner to configure balrog rules and sign offs<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div><br />
<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203842
Release Management/Process coordination for handling off-train releases
2018-11-13T20:25:05Z
<p>Ritu Kothari: /* Extra steps */ removing gdoc comment</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Kick-off email thread or meeting to establish scope, owners and timeline.</div><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create checklist, find owners and track items on the checklist.</div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Prepare the technical changes (code, pref change, etc)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">“Build it” process (including signature if needed)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off - Formal QA sign off. </div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Publication of the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off of the publication of the change</div><br />
<br />
<br />
<br />
<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
Products supported: Desktop / Fennec / both<br />
<br />
Platforms supported<br />
<br />
Firefox versions supported<br />
<br />
Release readiness criteria<br />
* QA <br />
* Performance<br />
* Security review<br />
<br />
<br />
<br />
What kind of telemetry data will this webext capture and send to Mozilla?<br />
<br />
Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
3 Checklists<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process] <br />
<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Team</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Scope</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">New User population that will be targeted</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release readiness criteria</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">QA</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Perf</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Security review</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Data & Privacy review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
Intent to ship email to release-drivers with the bug number<br />
<br />
Releng owner to configure balrog rules and sign offs<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div><br />
<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203841
Release Management/Process coordination for handling off-train releases
2018-11-13T20:24:13Z
<p>Ritu Kothari: /* 3.2 Extra steps */ fixing list formating</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Kick-off email thread or meeting to establish scope, owners and timeline.</div><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create checklist, find owners and track items on the checklist.</div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Prepare the technical changes (code, pref change, etc)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">“Build it” process (including signature if needed)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off - Formal QA sign off. </div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Publication of the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off of the publication of the change</div><br />
<br />
<br />
<br />
<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
Products supported: Desktop / Fennec / both<br />
<br />
Platforms supported<br />
<br />
Firefox versions supported<br />
<br />
Release readiness criteria<br />
* QA <br />
* Performance<br />
* Security review<br />
<br />
<br />
<br />
What kind of telemetry data will this webext capture and send to Mozilla?<br />
<br />
Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# 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.<br />
# Security review - Security team within Product Integrity (PI) group will review and sign off on webext<br />
# Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext<br />
# Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
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<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process] <br />
<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Team</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Scope</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">New User population that will be targeted</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release readiness criteria</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">QA</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Perf</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Security review</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Data & Privacy review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
Intent to ship email to release-drivers with the bug number<br />
<br />
Releng owner to configure balrog rules and sign offs<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div><br />
<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203840
Release Management/Process coordination for handling off-train releases
2018-11-13T20:22:53Z
<p>Ritu Kothari: /* Decisions */ fixing bullet point formatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Kick-off email thread or meeting to establish scope, owners and timeline.</div><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create checklist, find owners and track items on the checklist.</div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Prepare the technical changes (code, pref change, etc)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">“Build it” process (including signature if needed)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off - Formal QA sign off. </div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Publication of the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off of the publication of the change</div><br />
<br />
<br />
<br />
<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
Products supported: Desktop / Fennec / both<br />
<br />
Platforms supported<br />
<br />
Firefox versions supported<br />
<br />
Release readiness criteria<br />
* QA <br />
* Performance<br />
* Security review<br />
<br />
<br />
<br />
What kind of telemetry data will this webext capture and send to Mozilla?<br />
<br />
Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">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.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security review - Security team within Product Integrity (PI) group will review and sign off on webext</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext</div><br />
<br />
<br />
<br />
<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.3 Checklists<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
<br />
<br />
<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
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<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process] <br />
<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Team</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Scope</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">New User population that will be targeted</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release readiness criteria</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">QA</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Perf</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Security review</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Data & Privacy review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
Intent to ship email to release-drivers with the bug number<br />
<br />
Releng owner to configure balrog rules and sign offs<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div><br />
<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Process_coordination_for_handling_off-train_releases&diff=1203839
Release Management/Process coordination for handling off-train releases
2018-11-13T20:21:57Z
<p>Ritu Kothari: /* Goal */ Fixing bullet point formatting</p>
<hr />
<div>= Goal =<br />
<br />
This document lists the high-level process (purpose, decisions, triggers, steps and people involved) for handling off-train release requests. <br />
<br />
<br />
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.<br />
<br />
<br />
The list of off-train release requests include (but are not limited to):<br />
* Shipping a new Mozilla webextension<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process GoFaster] for shipping new system add-ons<br />
* [https://wiki.mozilla.org/Blocklisting Blocklisting]<br />
* Shield studies<br />
* Feature toggle (enable/disable) [https://wiki.mozilla.org/Firefox/Normandy/PreferenceRollout via Normandy]<br />
* Dot releases<br />
* [https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspills]<br />
<br />
<br />
<br />
Many of these processes have similar workflow and teams of people involved.<br />
<br />
For every process, the following roles will be involved in shipping the change:<br />
<br />
✅ Development owner<br />
✅ QA owner<br />
✅ Release owner<br />
<br />
<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:100%;"<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| '''Off-train release'''<br />
| align=center| '''Purpose'''<br />
| align=center| '''Trigger'''<br />
| align=center| '''Extra people involved'''<br />
| align=center| '''Checklist'''<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| New Mozilla webext<br />
|| A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
''Example:'' Facebook container<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| TODO add a link to a template for the process<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| GoFaster<br />
|| Ship a new system add-on (SAO) or update an existing one<br />
<br />
<br />
<u>Time-to-ship SAO</u>: days to week depending on urgency<br />
<br />
<u>Time-to-ship update</u>: 5 days<br />
|| An Intent to Implement email is sent to release-drivers by Product or Engineering<br />
<br />
<br />
<u>Driver</u>: Dev owner<br />
|| ✅ Product owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Funnelcake builds<br />
|| [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.<br />
<br />
<br />
''Example:'' Onboarding<br />
<br />
<br />
<u>Typical time-to-ship</u>: Weeks<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Funnelcake owner<br />
|| ✅ Funnelcake owner<br />
<br />
✅ Data Steward owner<br />
<br />
✅ Releng owner<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Blocklisting<br />
|| In some specific cases, we can disable errant add-ons and other third-party software impact Firefox quality, privacy and security.<br />
<br />
<br />
''Example: ''Stylish extension<br />
|| A release blocking issue has been identified that needs to be addressed via blocklisting<br />
|| ✅ Blocklist master<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Shield studies<br />
|| 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.<br />
<br />
<br />
''Example'': TLS 1.3<br />
<br />
<br />
<u>Time to ship new study</u>: Weeks<br />
<br />
<br />
<u>Time to ship updated study</u>: 5-10 days<br />
|| 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. <br />
<br />
<br />
<br />
<br />
<u>Driver</u>: Product owner requesting the study<br />
|| ✅ Product owner<br />
<br />
✅ Shield core team<br />
<br />
✅ Firefox peer<br />
<br />
✅ Data Steward<br />
<br />
<br />
<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Feature toggle via Normandy<br />
|| 1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
<br />
Example: RDL, TLS 1.3 fallback<br />
|| 1) Product or Engineering or PI know of a release blocking<br />
<br />
<br />
2) Product or PI team recommend controlled rollout of a feature post launch.<br />
<br />
<br />
<u>Driver:</u> Release owner<br />
|| ✅ Product owner<br />
|| <br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Dot releases<br />
|| Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
<br />
<u>Typical time-to-ship</u>: 5 days<br />
|| 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.<br />
<br />
<br />
<br />
<br />
<u>Driver</u>: release owner<br />
|| ✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Security owner (optional)<br />
<br />
✅ Product owner (optional)<br />
<br />
✅ Marketing owner (Optional)<br />
<br />
<br />
<br />
|| Will be the same as chemspill<br />
|- style="border:1pt solid #000000;padding:0.176cm;"<br />
| align=center| Chemspills<br />
|| Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
<br />
<br />
<br />
<u>Typical time-to-ship</u>: 1 day or less<br />
|| Product or Engineering or PI know of a release blocking security issue that needs to be addressed in a time-sensitive manner<br />
<br />
<br />
<u>Driver</u>: Chemspill owner<br />
|| ✅ Chemspill owner<br />
<br />
✅ Releng owner<br />
<br />
✅ Sheriff<br />
<br />
✅ Product owner<br />
|| [https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist]<br />
|-<br />
|}<br />
<br />
= General process =<br />
<br />
As all these processes are similar, the general process is describe. Specificities are described in dedicated checklists.<br />
<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Kick-off email thread or meeting to establish scope, owners and timeline.</div><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create checklist, find owners and track items on the checklist.</div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Prepare the technical changes (code, pref change, etc)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">“Build it” process (including signature if needed)</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off - Formal QA sign off. </div><br />
# <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><br />
# <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><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Publication of the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">QA sign off of the publication of the change</div><br />
<br />
<br />
<br />
<br />
<br />
= Process: Shipping a New Mozilla Webextension =<br />
<br />
A business need to publish Mozilla owned webext to Firefox Desktop users via AMO.<br />
<br />
== Decisions ==<br />
<br />
Products supported: Desktop / Fennec / both<br />
<br />
Platforms supported<br />
<br />
Firefox versions supported<br />
<br />
Release readiness criteria<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">QA</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Performance</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Security review</div><br />
<br />
<br />
<br />
What kind of telemetry data will this webext capture and send to Mozilla?<br />
<br />
Timeline and rollout strategy<br />
<br />
== 3.2 Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">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.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security review - Security team within Product Integrity (PI) group will review and sign off on webext</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Perf review - Perf team within Product Integrity (PI) group will review and sign off on webext</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Maintain webext and fix issues reported by users - This happens in iterations until the time Mozilla plans to support this new webext</div><br />
<br />
<br />
<br />
<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.3 Checklists<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload webext on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
<br />
<br />
<br />
<br />
= Process: GoFaster release Ship a new system add-on (SAO) or update an existing one =<br />
<br />
== Decisions ==<br />
<br />
Is GoFaster the [https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons appropriate release strategy]?<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
== Extra steps ==<br />
<br />
By nature, the rest of the decisions are the same as a Mozilla Webextension<br />
<br />
<br />
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<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| System addon rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Security review<br />
| align=center| <security-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Perf review<br />
| align=center| <perf-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward review (if relevant)<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Webext peer review<br />
| align=center| <webext-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Upload System addon on AMO<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process] <br />
<br />
<br />
= Process: Funnelcake release =<br />
<br />
<br />
[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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Team</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Scope</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">New User population that will be targeted</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release readiness criteria</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">QA</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Perf</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Security review</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Data & Privacy review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
Intent to ship email to release-drivers with the bug number<br />
<br />
Releng owner to configure balrog rules and sign offs<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off meeting<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Funnelcake rqmts doc<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Test Plan<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Coding<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Go/NoGo decision<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Downloads page is ready and live<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Funnelcake https://wiki.mozilla.org/Funnelcake ]<br />
<br />
<br />
= Process: Add-ons/ThirdParty Blocklisting =<br />
<br />
In some specific cases, we can disable errant add-ons and other third-party software that negatively impact Firefox quality, privacy and security.<br />
<br />
== Decisions ==<br />
<br />
Decide if we want to block an addons or a third party.<br />
<br />
As this can have some important ripple effects, please be careful.<br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Intent to ship email to release-drivers to explain the change</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">The change should be published on the relevant platform</div><br />
<br />
<br />
<br />
== Checklists ==<br />
<br />
<br />
<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Request filed<br />
| align=center| <undefined><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Reach out to vendor/developer<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Meeting to confirm the blocking<br />
| align=center| <release-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Development<br />
| align=center| <dev-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Testing<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Publication of the change<br />
| align=center| <amo-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
<br />
== Extra information ==<br />
<br />
[https://wiki.mozilla.org/Blocklisting https://wiki.mozilla.org/Blocklisting] <br />
<br />
= Process: Shield studies =<br />
<br />
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.<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Target channel</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout plan (channel, user population, test/control channel breakdown)</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Data/Legal review</div><br />
<br />
<br />
<br />
<div style="margin-left:0cm;margin-right:0cm;"></div><br />
<br />
== Extra steps ==<br />
<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Product Hypothesis Doc (Phd) review</div><br />
<br />
<br />
<br />
== Checklists ==<br />
{| border="1" style="border-spacing:0;width:17.251cm;"<br />
|- style="background-color:#ffff00;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Item<br />
| align=center| Owner<br />
| align=center| By When<br />
| align=center| Status<br />
| align=center| Completion Date<br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Phd review<br />
| align=center| <product-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Data steward/Privacy review<br />
| align=center| <data-steward><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Firefox peer review<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| QA sign off<br />
| align=center| <qa-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Relman Go/NoGo sign off<br />
| align=center| <relman><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|- style="background-color:#ffffff;border:0.75pt solid #000000;padding:0.071cm;"<br />
| align=center| Kick-off the study<br />
| align=center| <shield-owner><br />
| align=center| <br />
| align=center| <br />
| align=center| <br />
|-<br />
|}<br />
<br />
== Extra information ==<br />
<br />
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><br />
* <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><br />
<br />
= Process: Feature rollout via Normandy =<br />
<br />
1) After go-live, some release blocking issues can be addressed via pref flips. <br />
<br />
2) New feature can have a controlled rollout via pref flipping.<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
<br />
<br />
== Extra steps ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Development owner configures the recipe in Normandy to flip pref for targeted end-users</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release owner reviews, approves and publishes recipe</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Feature team, release owner monitor data to verify:</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Recipe uptake is going as planned</div><br />
** <div style="margin-left:2.54cm;margin-right:0cm;">Feature is having the intended effect on end-users</div><br />
<br />
<br />
<br />
== Checklist ==<br />
<TBD><br />
<br />
<br />
= Process Dot Release =<br />
<br />
Dot release builds are pushed to release/ESR end-user users to mitigate release blocking issues<br />
<br />
== Decisions ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Bugs that are dot release drivers and ride-alongs</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Rollout strategy</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Release notes, sec advisories, comms plan, What’s New Page</div><br />
<br />
<br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Release owner drafts release notes and shares for review. </div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
<br />
== Checklist ==<br />
<br />
Example: [https://drive.google.com/open?id=1LTuQzvudGchDPELJkhpv7C8H7-2qTcmTvDokkZGpoFY 59.0.x dot release checklist] <br />
<br />
<br />
= Process: Chemspills =<br />
Chemspill is a special dot release, triggered by a security driven issue or active exploit in the wild<br />
<br />
== Decisions ==<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Timeline</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Products affected: Desktop, Fennec, ESR?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">Platforms affected: All, Windows, Mac, Linux?</div><br />
* <div style="margin-left:1.27cm;margin-right:0cm;">sec advisories, comms plan</div><br />
<br />
== Extra steps ==<br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Security owner drafts security advisory as needed and shares for review.</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Create a CVE if necessary</div><br />
# <div style="margin-left:1.27cm;margin-right:0cm;">Reach out to partners and/or other projects impacted if needed</div><br />
<br />
== checklist ==<br />
<br />
[https://docs.google.com/spreadsheets/d/1LRrKopum2_ScOglsyXtkKgyNyiUAhooaFNZDxo4iUN8/edit#gid=0 Chemspill release checklist] <br />
<br />
== Extra information ==<br />
<br />
* <div style="margin-left:1.27cm;margin-right:0cm;">[https://docs.google.com/document/d/1SwiR6Jk9Sdqfd0CU06Qci0XlJ3fnoD6BGVkL1imrcgY/edit?usp=sharing Chemspill process description]</div></div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1203441
Release Management/Release owners
2018-11-06T18:07:10Z
<p>Ritu Kothari: /* Release Owners */ Adding a row for Fx66 release</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Engineering REO<br />
!Release Duty¹ <br />
!Corresponding ESR<br />
!Release Date<br />
|-<br />
|[[Releases/Firefox 66|Firefox 66]]<br />
|Lizzard<br />
|??<br />
|Tim Spurway<br />
|??<br />
|??<br />
|2019-03-19<br />
<br />
|-<br />
|[[Releases/Firefox 65|Firefox 65]]<br />
|RyanVM<br />
|Lizzard<br />
|jaws<br />
|??<br />
|JCristau<br />
|[https://docs.google.com/document/d/1vI9KWvSMQ50R9YgdMX7nG7CSuOnTeRGN9sOH_D6_v_c/edit?usp=sharing 2019-01-29]<br />
|-<br />
<br />
|[[Releases/Firefox 64|Firefox 64]]<br />
|Julien<br />
|RyanVM<br />
|??<br />
|callek, sfraser<br />
|Liz<br />
|[https://docs.google.com/document/d/1MQa4J9OSTc1i60sFcVNyoFNLK8TLBXJlL9W12VoEUAc/edit?usp=sharing 2018-12-11]<br />
|-<br />
|[[Releases/Firefox 63|Firefox 63]]<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|[https://docs.google.com/document/d/185O88wIwV-fRwqOKJaCCPVXjxhm70h8J4ApsJt1H9Rk/edit?usp=sharing 2018-10-23]<br />
|-<br />
|[[Releases/Firefox 62|Firefox 62]]<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|[https://docs.google.com/document/d/17FvsBOudLr15DgN-E82UamLhnweDHmGzQu4wIEi1QUg/edit?usp=sharing 2018-09-05]<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|[https://docs.google.com/document/d/1cLYXPrlEES90PSKQHFLf3j0tiOUfUth2ye9Kfg9xLYY/edit?usp=sharing 2018-06-26]<br />
|-<br />
|Firefox 60 (an ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|[https://docs.google.com/document/d/14D5Au23znkkqeLZu22cI7kSM0EowkC0cq0ppiZR2lg4/edit?usp=sharing 2018-05-09]<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|[https://docs.google.com/document/d/1ZOs9Ingbz0e-mWDu8yXGiMM-SnpBXThkLdXnplG4e2w/edit?usp=sharing 2018-03-13]<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|[https://docs.google.com/document/d/1jPyeW14MyHyQX7kXBU8KN9jsxO2VQjP3GN_VpLiG9YM/edit?usp=sharing 2018-01-23]<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|[https://docs.google.com/document/d/1jeypuqBqEyIh-4qxXT0UnE2aVjetN7uVD8W7L7TbWKg/edit?usp=sharing 2017-11-14]<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1202160
Release Management/Release owners
2018-10-09T17:14:48Z
<p>Ritu Kothari: updating secondary owner and ESR owner.</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Eng support<br />
!Releng¹ <br />
!Corresponding ESR<br />
!Release date<br />
|-<br />
|Firefox 65<br />
|RyanVM<br />
|Lizzard<br />
|??<br />
|??<br />
|JCristau<br />
|2019-01-29<br />
|-<br />
<br />
|Firefox 64<br />
|Julien<br />
|RyanVM<br />
|jduell<br />
| callek, sfraser<br />
|Liz<br />
|2018-12-11<br />
|-<br />
|Firefox 63<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|2018-10-23<br />
|-<br />
|Firefox 62<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|2018-09-05<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|2018-06-26<br />
|-<br />
|Firefox 60 (an ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|2018-05-09<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|2018-03-13<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|2018-01-23<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|2017-11-14<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Release_Management/Release_owners&diff=1202159
Release Management/Release owners
2018-10-09T17:13:29Z
<p>Ritu Kothari: /* Release Owners */ Release 65</p>
<hr />
<div>{{DISPLAYTITLE:Firefox Release Owners}}<br />
==Release Owners==<br />
<br />
* For any questions related to landing of particular features, Beta scheduling, preffing on/off a feature, release notes etc for a particular Firefox version on any channel, below would be the best contacts in addition to emailing release-mgmt@mozilla.com<br />
<br />
Currently, each release manager each takes a version of Firefox and follow it from nightly through beta, and release. Whoever has just done a release will then "own" the next ESR and work on the new nightly.<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
!Firefox Version<br />
!Owner<br />
!Secondary<br />
!Eng support<br />
!Releng¹ <br />
!Corresponding ESR<br />
!Release date<br />
|-<br />
|Firefox 65<br />
|RyanVM<br />
|??<br />
|??<br />
|??<br />
|??<br />
|2019-01-29<br />
|-<br />
<br />
|Firefox 64<br />
|Julien<br />
|RyanVM<br />
|jduell<br />
| callek, sfraser<br />
|Liz<br />
|2018-12-11<br />
|-<br />
|Firefox 63<br />
|Pascal<br />
|Ritu<br />
|ddurst<br />
|rail, aki, garbas<br />
|Julien<br />
|2018-10-23<br />
|-<br />
|Firefox 62<br />
|Lizzard<br />
|Pascal<br />
|Mike T <br />
|jlorenzo, tomprince <br />
|RyanVM<br />
|2018-09-05<br />
|-<br />
|Firefox 61<br />
|RyanVM<br />
|Ritu<br />
|Marion <br />
|mtabara, jlund<br />
|Julien<br />
|2018-06-26<br />
|-<br />
|Firefox 60 (an ESR)<br />
|Julien<br />
|Ritu<br />
|Milan <br />
|aki, sfraser<br />
|Liz (52.8)<br />
|2018-05-09<br />
|-<br />
|Firefox 59<br />
|Liz<br />
|RyanVM<br />
|Andrew Overholt<br />
|mtabara, bhearsum<br />
|RyanVM<br />
|2018-03-13<br />
|-<br />
|Firefox 58<br />
|Gerry<br />
|Julien<br />
|Mike Taylor <br />
|callek, sfraser, nthomas, rok, jlund<br />
|Ritu<br />
|2018-01-23<br />
|-<br />
|Firefox 57<br />
|Ritu Kothari<br />
|Julien Cristau & Sylvestre<br />
|Jim Mathies<br />
|callek, jlorenzo, nthomas, sfraser, jlund<br />
|Liz<br />
|2017-11-14<br />
|-<br />
|Firefox 56<br />
|Liz Henry<br />
|Gerry Chang<br />
|Panos Astithas<br />
|kmoir, sfraser<br />
|Julien Cristau<br />
|2017-09-26<br />
|-<br />
|Firefox 55<br />
|Julien Cristau<br />
|Liz Henry<br />
|Mike Taylor<br />
|garbas, mtabara<br />
|Gerry Chang<br />
|2017-08-08<br />
|-<br />
|Firefox 54<br />
|Gerry Chang<br />
|Julien Cristau<br />
|Nathan Froyd<br />
|mtabara, aki<br />
|Ritu<br />
|2017-06-13<br />
|-<br />
|Firefox 53<br />
|Liz Henry<br />
|Gerry Chang<br />
|Randell Jesup<br />
|aki, jlorenzo<br />
|Julien Cristau<br />
|2017-04-18<br />
|-<br />
|Firefox 52<br />
|Julien Cristau<br />
|Sylvestre<br />
|RyanVM<br />
|jlorenzo, jlund<br />
|Gerry<br />
|2017-03-07<br />
|-<br />
|Firefox 51<br />
|Gerry Chang<br />
|Liz Henry<br />
|Milan<br />
|jlund, mtabara<br />
|Ritu<br />
|2017-01-24 <br />
|}<br />
<br />
=== Eng support ===<br />
This lists the Regression Engineering Owner for the release. Details at https://wiki.mozilla.org/Platform#Regression_Engineering_Owner_.28REO.29 <br />
<br />
=== ¹ - Releng Coverage Notes ===<br />
Release Engineering will provide 24/5 coverage (PT Sun-Fri) with varying levels of support for 57.0 and the 58.0 cycle. See [https://calendar.google.com/calendar/embed?src=mozilla.com_v37shpb9uef44a7dbmjngdai1c%40group.calendar.google.com Releng Releaseduty Coverage] calendar for specific availability and local timezone.<br />
<br />
Releng covers a given release beginning at the second beta for the cycle listed and ending on the first beta shipment of the follow-up cycle.<br />
<br />
[[Category:Release_Management]]</div>
Ritu Kothari
https://wiki.mozilla.org/index.php?title=Firefox/Channels/Postmortem/62&diff=1200639
Firefox/Channels/Postmortem/62
2018-09-05T20:00:59Z
<p>Ritu Kothari: /* Challenges */ add a bit more detail</p>
<hr />
<div>Notes for 62 post mortem<br />
<br />
10:00am PDT Tuesday (after the Channel Meeting)<br />
Vidyo channel: release coordination<br />
IRC: #release-drivers<br />
<br />
== Some stats ==<br />
<br />
<br />
== What went well? ==<br />
<br />
<br />
== Challenges ==<br />
* Fennec Spike in Beta 19 - {{Bug|1485441}}<br />
** Filed when it was detected and nominated for tracking<br />
** (Ritu) This is a good example of pushing RC build to 5% of release and helping catch critical problems.</div>
Ritu Kothari