Firefox/Go Faster: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(fix meeting time)
m (name fixup)
 
(33 intermediate revisions by 9 users not shown)
Line 1: Line 1:
= Go Faster =
= Overview =
Go Faster is a plan to change the way we ship Firefox for Desktop, and potentially other products. The end goal is to reduce the time it takes to deliver value to the user. This focuses on getting features and fixes to the user on a reduced cycle time, but includes reductions in time to download updates and new versions, and reductions in build and release time.
We believe that building out tools and processes for shipping Go Faster add-ons will enable Mozilla's engineers to get features and fixes to a larger audience sooner. We will know this is true when we see widespread adoption of system add-ons as a mechanism for moving faster and updating faster than the standard trains.  


==Meetings, Status Reports, Communications==
==Team==
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings Meetings]
{| class="wikitable"
* [https://wiki.mozilla.org/Firefox/Go_Faster/Status Status Reports]
|-
* Weekly Team Meeting: Tuesdays at 09:30 San Francisco, CA, USA local time ([https://www.timeanddate.com/worldclock/converted.html?iso=20151124T0930&p1=224&p2=250&p3=0&p4=195 conversions]) in the "Program Management" Vidyo Room.
! Name !! Role
* [https://mail.mozilla.org/listinfo/gofaster Mailing List] (open to all, primarily used for sharing status)
|-
| Laura Thomson || Product Owner
|-
| Rehan Dalal || Program Management
|-
| Robert Helmer || Technical Lead
|}


=Development=
==KPI's==
<p> </p>
* Number of projects using the tools.
==Schedule==
* All new features or improvements to existing features validated by go faster by the end 2016.
* [https://wiki.mozilla.org/Release_Management/TeamWiki Firefox main release schedule] is the master location for the dates when each Firefox version goes to Aurora, Beta, & Release.
* Targeting initial client integration for system add-ons for 43 - goes to Aurora 2015/09/21


==Meetings==
* [[Firefox/Go_Faster/Meetings|Meeting Notes]]
* Bi-Weekly Team Meeting
** Every other Tuesday at 11:30 AM PST ([https://www.timeanddate.com/worldclock/converted.html?iso=20151124T0930&p1=224&p2=250&p3=0&p4=195 conversions])
** "GoFaster" Vidyo Room (extension 8557)


<p> </p>
==Communications==
 
* [https://mail.mozilla.org/listinfo/gofaster Mailing List] (open to all, primarily used for sharing status)
==Themes==
* IRC: #gofaster
As we plan what's coming next, we're focused on the themes outlined here. This is not a commitment to the next projects - just our scratch area, but it is in order of relative priority.
*'''Ship features with service integrations as Add-ons:''' Decouple feature development of service integration features from 6 week Firefox software release train
*'''Ship Localizations Separately From Product:''' Have the installer or updater pull a langpack from AMO during the install or update process, and decouple langpack builds from our releases.
*'''Ship data separately from code:''' Pull data out and make it a separate download (transparent to the user) via the installer or updater.


<p>
= Release Process and Mechanics =


== Quarterly Goals ==
== Process ==
=== Q3 ===
* Client support for system add-ons install and update (Tracking: [http://bugzil.la/1183866 1183866])
* Ship v1 of Firefox Experiments / Idea Town (Tracking: [http://bugzil.la/1184527 1184527])
* Security policy updates through new update service ("Balrog 2.0") (Tracking: [http://bugzil.la/1184528 1184528])
* Prototype a lightweight build, test, and release pipeline for go-faster (Tracking: [http://bugzil.la/1184524 1184524])


=== Q4 ===
Have something you want to ship through Go Faster?
* Implement Hello UI as an add-on, and ship it via go-faster
* Ship Universal Search as a Firefox Experiment


== Project 1: Ship features as system add-ons ==
Start here:
=== Component: Addons manager in Firefox ===
* [[Firefox/Go_Faster/System_Add-ons/Process]]
Owner: Dave Townsend, Robert Helmer


Tasks:
== Mechanics ==
    * Make Firefox understand what a system add-on is
    * How it should be installed
    * How it should be signed
    * Where it should be installed from
    * Where it should be updated from
    * That it may not be able to  be uninstalled, only disabled (uninstallation considered on a per-project basis - stability is the goal here)
    * That it should be available across all profiles (under debate)


=== Component: Updater in Firefox ===
This page details the technological pieces involved in shipping system add-ons.
* Owner: TBD
* Tasks:
    * Change the updater:
    * Update system add-ons
    * Check compatibility/dependencies
    * Check signed appropriately
    * Update data files
    * Separate the updater from the Firefox binary


=== Component: Services system add-on updater ===
[[Firefox/Go_Faster/Releasing_an_add-on_mechanics|Releasing mechanics]].
* Owner: ?


* Tasks:
The initial authors of this process are
    * Figure out if we want to serve system addons from AMO, from Balrog, or from somewhere else
    * Build whatever is needed.


=== Component: Build, release, QA pipeline ===
{| class="wikitable"
[https://wiki.mozilla.org/Firefox/Go_Faster/Release_Pipeline Release Pipeline]
|-
* Team: Selena Deckelmann and Morgan Phillips for releng, Krupa Raj and Matt Brandt from WebQA, JP Schneider from tools
! Name !! Role
* Tasks:
|-
** Design a build and release pipeline for system add-ons (using existing tools) (Selena, Morgan, JP)
| needs:owner || Owner
** Decide/design the role of QA in CD for Firefox (QA teams)
|-
* Etherpads:
| Mark Banner || Hello/docs
** https://etherpad.mozilla.org/go-faster-testing-pipeline
|-
| Ian Bicking || Hello/docs
|-
| Rob Helmer || Client
|-
| Dave Townsend || Client
|-
| Ben Hearsum || Tools
|-
| Ritu Kothari || Tools
|-
| Lonnen || Tools
|-
| Axel Hecht || l10n
|}


=== Component: l10n for systems addons ===
= Projects =
* Team: (TBD), Michael Kelly
* Tasks:


    * Design and build a process for localizing system add-ons
These are the top-level projects defined for this program.


=== Component: Hello as add-on ===
== Morgoth ==
* Owner: Adam Roach (WebRTC) + Mark Banner (Client Hello team)
* Tasks:


    * Implement Hello as a system add-on
[[Firefox/Morgoth|Morgoth]]
    * Create a migration path from Hello in product to Hello as system add-on


* Dependencies:
* Project Owner: Benson Wong [:mostlygeek]


    * Updater changes, build pipeline?
== Kinto ==


== Project 1a: Ship experimental features as add-ons from Firefox Experiments/Idea Town ==
A JSON storage service with synchronisation and sharing ability - allows the smart client to retrieve signed data from a dumb server.


=== Component: Universal Search as add-on ===
<big>'''Team'''</big>
* Owner: Nick Chapman
{| class="wikitable"
* Team: Nick Chapman (manager), Jared Hirsch (dev), Dave Justice (dev), John Gruen (UX), Les Orchard (dev), Bill Maggs (PM), Edwin Wong (TPM)
|-
* Tasks:
! Name !! Role
    * Implement Universal Search as an experimental add-on (this can be served/updated from AMO or similar) (Jared/Les)
|-
    * Implement first iteration of Firefox Experiments website (Nick Chapman/John Gruen)
| Tarek Ziade || Owner
    * Design and implement process for Firefox Experiments
|-
* Dependencies:
| Mark Goodwin || OneCRL client, PKI work for the signing
    * None.
|-
* Resources
| Sebastian  || Fennec Client
    * Planning Doc: https://docs.google.com/document/d/1bew13QgnGriiMEEZMnI7XP6P2ieq6KiE0t4tDzrqcxQ/edit
|-
    * Primary Wireframes: https://www.dropbox.com/s/n7dz7be1zm372mu/idea-town-WIRES.pdf?dl=0
| Jorge || our customer for the AMO blocklist
    * Flows: https://www.lucidchart.com/documents/view/5efea80e-6240-4c24-801f-fd56c1ca9c3d
|}
    * Github Repo: https://github.com/mozilla/idea-town


== Project 2: Pull data out of products and serve and update it separately ==
<big>'''Resources'''</big>
* Q3
* Tracking document: https://docs.google.com/document/d/1MHQNqJ--GAmNxXl2PODJ-YGU459l6vvDRmf9oEIRTms/edit
* Tech lead/architect: Tarek Ziade
* Tool: http://kinto.readthedocs.org


=== Component: Services data updater ===
== Recipe Server (SHIELD + Variants) ==
* Owner: French team (Tarek)
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.
* Tasks:
    * Serve updates to security policy
    * Serve datafiles for Fennec (dictionaries and fonts)


* Dependencies:
<big>'''Team'''</big>
{| class="wikitable"
|-
! Name !! Role
|-
| Gregg Lind || Owner
|-
| Matt Grimes || Product Manager
|-
| Mike Kelly  || Engineering Manager
|}


    * Client updater changes (in project 1, above)
<big>'''Resources'''</big>
* [[Firefox/Recipe_Server|Recipe Server]]


== Project 3: decouple l10n from product ==
== Test Pilot ==
* Probably Q4
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.


=== Component: Build process ===
<big>'''Team'''</big>
* Owner: Chris AtLee / RelEng / RelMan
{| class="wikitable"
* Tasks:
|-
    * Remove l10n repacks from the release critical path
! Name !! Role
    * Work out how to add additional strings to locale packs
|-
    * Automate uploading locale packs to AMO
| Javaun Moradi || Owner
|-
| Cory Price  || Program Management
|-
| Wil Clouser || Engineering Manager
|-
| John Gruen  || UX Lead
|}


* Dependencies:
<big>'''Resources'''</big>
* [[Test_Pilot|Test Pilot]]


    * Installer/updater changes
= Shipping Pipeline =
[https://docs.google.com/spreadsheets/d/1yOgiOTU8q2I709VFhjCYCLATmoyQueV8RttPzciFIkQ/edit Shipping Pipeline Spreadsheet]


=== Component: Installer/updater ===
The `how` for Go Faster are the top-level projects outlined above. The other important things to track are the individual features and fixes that are going to be launching ''through'' Go Faster.
* Owner: Rob Strong or Add-ons team
* Tasks:
    * Build stub installers for Windows and Linux
    * Change installer to pull locale pack from AMO as a separate download
    * Figure out how locale updates need to work


==Roles and Responsibilities==
View the doc for a list of System Add-ons in flight.
The [https://wiki.mozilla.org/Firefox/Contacts Contacts Page] has the Roles and Responsibilities for Firefox teams, partner teams, and external partners.

Latest revision as of 22:26, 5 May 2023

Overview

We believe that building out tools and processes for shipping Go Faster add-ons will enable Mozilla's engineers to get features and fixes to a larger audience sooner. We will know this is true when we see widespread adoption of system add-ons as a mechanism for moving faster and updating faster than the standard trains.

Team

Name Role
Laura Thomson Product Owner
Rehan Dalal Program Management
Robert Helmer Technical Lead

KPI's

  • Number of projects using the tools.
  • All new features or improvements to existing features validated by go faster by the end 2016.

Meetings

  • Meeting Notes
  • Bi-Weekly Team Meeting
    • Every other Tuesday at 11:30 AM PST (conversions)
    • "GoFaster" Vidyo Room (extension 8557)

Communications

  • Mailing List (open to all, primarily used for sharing status)
  • IRC: #gofaster

Release Process and Mechanics

Process

Have something you want to ship through Go Faster?

Start here:

Mechanics

This page details the technological pieces involved in shipping system add-ons.

Releasing mechanics.

The initial authors of this process are

Name Role
needs:owner Owner
Mark Banner Hello/docs
Ian Bicking Hello/docs
Rob Helmer Client
Dave Townsend Client
Ben Hearsum Tools
Ritu Kothari Tools
Lonnen Tools
Axel Hecht l10n

Projects

These are the top-level projects defined for this program.

Morgoth

Morgoth

  • Project Owner: Benson Wong [:mostlygeek]

Kinto

A JSON storage service with synchronisation and sharing ability - allows the smart client to retrieve signed data from a dumb server.

Team

Name Role
Tarek Ziade Owner
Mark Goodwin OneCRL client, PKI work for the signing
Sebastian Fennec Client
Jorge our customer for the AMO blocklist

Resources

Recipe Server (SHIELD + Variants)

A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.

Team

Name Role
Gregg Lind Owner
Matt Grimes Product Manager
Mike Kelly Engineering Manager

Resources

Test Pilot

A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.

Team

Name Role
Javaun Moradi Owner
Cory Price Program Management
Wil Clouser Engineering Manager
John Gruen UX Lead

Resources

Shipping Pipeline

Shipping Pipeline Spreadsheet

The `how` for Go Faster are the top-level projects outlined above. The other important things to track are the individual features and fixes that are going to be launching through Go Faster.

View the doc for a list of System Add-ons in flight.