Platform/2014-Q3-Goals: Difference between revisions

 
(24 intermediate revisions by 13 users not shown)
Line 7: Line 7:
=== Layout ===
=== Layout ===
* Layout to Moz2D
* Layout to Moz2D
** {{ok|Migrate SVG to Moz2D (bug 703159) }}
** {{done|Migrate SVG to Moz2D (bug 703159) }}


* Enable Vertical Text for major use cases for Chinese & Japanese
* Enable Vertical Text for major use cases for Chinese & Japanese
** {{miss|{{bug|145503}}}} - Meta Bug. We've made lots of progress, but our big bug won't get closed until Q4
** {{miss|{{bug|145503}}}} - Meta Bug. We've made lots of progress, but our big bug won't get closed until Q4
** {{done|{{bug|789096}}}} - Layout with horizontal block flow and vertical text flow
** {{done|{{bug|789096}}}} - Layout with horizontal block flow and vertical text flow
** {{ok|{{bug|902762}}}} -  Vertical text run creation
** {{miss|{{bug|902762}}}} -  Vertical text run creation. Needs r+ and landed.
** {{risk|{{bug|1062963}}}} - Make nsFloatManager use logical coordinates
** {{miss|{{bug|1062963}}}} - Make nsFloatManager use logical coordinates. Working through remaining test failures.


* Text Performance
* Text Performance
** We'll get 1 of the 3 we wanted to hit.
** We'll get 1 of the 3 we wanted to hit.
** {{ok|{{bug|998869}}}} Streamline parsing of fontlists and improve efficiency of font matching code (note: unicode-range support will fall out of this work)
** {{done|{{bug|998869}}}} Streamline parsing of fontlists and improve efficiency of font matching code (note: unicode-range support will fall out of this work)
** {{miss|{{bug|934770}}}} - slow at rendering large blocks of plain text
** {{miss|{{bug|934770}}}} - slow at rendering large blocks of plain text
** {{miss|{{bug|860492}}}} - Divide large text runs into smaller runs to avoid chrome hangs
** {{miss|{{bug|860492}}}} - Divide large text runs into smaller runs to avoid chrome hangs
Line 42: Line 42:


* Animations & Transitions
* Animations & Transitions
** {{risk|transitions/animations spec editing}}
** {{miss|transitions/animations spec editing}}
** {{risk|transitions refactoring to match new spec}}  
** {{done|transitions refactoring to match new spec}}  
*** {{done|{{bug|996796}}}} landed, but work is ongoing for {{bug|960465}}
*** {{done|{{bug|996796}}}} landed, but work is ongoing for {{bug|960465}}
** {{done|frame reconstruction (625289)}}
** {{done|frame reconstruction (625289)}}
** {{risk|Effective start of CSS animations and transitions {{bug|927349}}}}
** {{miss|Effective start of CSS animations and transitions {{bug|927349}}}}
*** may spill into Q4
*** may spill into Q4


Line 52: Line 52:
** {{risk|fix correctness bugs (cascading, etc.)}}
** {{risk|fix correctness bugs (cascading, etc.)}}
*** partly done in {{bug|996796}}, but cascading fix likely miss
*** partly done in {{bug|996796}}, but cascading fix likely miss
** {{risk|turning on on other OMTC platforms (Mac/Android)}}
** {{miss|turning on on other OMTC platforms (Mac/Android)}}


* Web animations:  
* Web animations:  
** {{done|Get basic implementation of GetAnimationPlayers {{bug|1032573}}}}
** {{done|Get basic implementation of GetAnimationPlayers {{bug|1032573}}}}
** {{risk|Implement PlaybackControl() {{bug|1033114}}}}
** {{done|Implement PlaybackControl() {{bug|1033114}}}}
*** may spill into Q4


* CSS Scrolling
* CSS Scrolling
** {{ok|CSS scroll snapping}}
** {{miss|CSS scroll snapping}}
** {{ok|scroll-behavior:smooth}}
** {{done|scroll-behavior:smooth}}


* CSS Flexbox   
* CSS Flexbox   
Line 112: Line 111:
* {{done|Route all JSContext pushing through AutoJSAPI and Implement GetEntryGlobal (bobowen, bholley, {{bug|951991}})}}
* {{done|Route all JSContext pushing through AutoJSAPI and Implement GetEntryGlobal (bobowen, bholley, {{bug|951991}})}}
* {{miss|Land <picture> preffed on on nightly ({{bug|1017875}}) (johns)}}
* {{miss|Land <picture> preffed on on nightly ({{bug|1017875}}) (johns)}}
** John got pulled into e10s plugin work ({{bug|874016}}) but made excellent progress here and was ''very'' close to preffing on by the end of Q3.
** 99% done, but John got pulled into e10s plugin work ({{bug|874016}}) but made excellent progress here and was ''very'' close to preffing on by the end of Q3.
* {{done|audit callsites of IsInDoc()/GetCurrentDoc to ensure correct Shadow DOM behaviour and fix Shadow DOM blockers for Gaia (smaug, wchen) ({{bug|1026047}})}}
* {{done|audit callsites of IsInDoc()/GetCurrentDoc to ensure correct Shadow DOM behaviour and fix Shadow DOM blockers for Gaia (smaug, wchen) ({{bug|1026047}})}}
* {{miss|land Service Workers preffed off on nightly (nsm, bkelly, baku) ({{bug|903441}})}}
* {{miss|land Service Workers preffed off on nightly (nsm, bkelly, baku) ({{bug|903441}})}}
Line 125: Line 124:
* {{miss|document existing activities usage in gaia (ehsan)}}
* {{miss|document existing activities usage in gaia (ehsan)}}
** this work is underway but it's not yet complete
** this work is underway but it's not yet complete
* {{ok|get [https://w3c.github.io/screen-orientation/ screen orientation spec] to LC (marcosc)}}
* {{miss|get [https://w3c.github.io/screen-orientation/ screen orientation spec] to LC (marcosc)}}
** all work was done here but a blocker was discovered late in the game
** the blocker for this is now the animation task source which is currently underdefined and is being worked on as a part of the [https://fullscreen.spec.whatwg.org/#dom-element-requestfullscreen fullscreen API] (see https://www.w3.org/Bugs/Public/show_bug.cgi?id=26440)
* {{done|publish [http://www.w3.org/TR/wake-lock-use-cases/ use cases for wake locks] (marcosc)}}
* {{done|publish [http://www.w3.org/TR/wake-lock-use-cases/ use cases for wake locks] (marcosc)}}
* {{ok|publish spec for [http://w3c.github.io/wake-lock/ "wakelock" API] (marcosc)}}
* {{miss|publish spec for [http://w3c.github.io/wake-lock/ "wakelock" API] (marcosc)}}
** there is a spec but it got held up on making WebIDL attributes observable
** current status is that others in the community make pick this up and drive it forward
* {{done|24/12 hour format API (ehsan) {{bug|903683}}}}
* {{done|24/12 hour format API (ehsan) {{bug|903683}}}}
* {{miss|{{bug|942542}} new quota API on PBackground for Service Worker cache (janv)}}
* {{miss|{{bug|942542}} new quota API on PBackground for Service Worker cache (janv)}}
Line 157: Line 160:
Fix major source of browser jank:
Fix major source of browser jank:


* {{ok|Initialize plugin instances asynchronously {{bug|998863}} }}
* {{done|(milestone reached, work continues in Q4) Initialize plugin instances asynchronously {{bug|998863}} }}
* {{ok|Pause heavy main-thread activities while user is interacting with the browser: }}
* {{miss|('''Blocked on external dependencies + unplanned newtab page work took precedence''') Pause heavy main-thread activities while user is interacting with the browser: }}
** {{ok|Determine when a user is actively interacting with the browser}}
** {{miss|Determine when a user is actively interacting with the browser}}
** {{ok|Detect when jank occurs during interactions and report to Telemetry {{bug|1017055}} }}
** {{miss|Detect when jank occurs during interactions and report to Telemetry {{bug|1017055}} }}
** {{ok|Experiment with hinting to GC & CC that they should pause while the user is interacting with the browser}}
** {{miss|Experiment with hinting to GC & CC that they should pause while the user is interacting with the browser}}
* {{ok|Help Frontend team with Places refactoring, eliminate some of the [http://telemetry.mozilla.org/slowsql/ Places main-thread SQL] reported to Telemetry }}
* {{done|(refactoring work continues) Help Frontend team with Places refactoring, eliminate some of the [http://telemetry.mozilla.org/slowsql/ Places main-thread SQL] reported to Telemetry }}
* {{ok|Don't store UI customization in localstore.rdf, use off-main thread JSON instead {{bug|559505}} }}
* {{done|Don't store UI customization in localstore.rdf, use off-main thread JSON instead {{bug|559505}} }}


Improve Firefox startup (identified as a top issue in user research):
Improve Firefox startup (identified as a top issue in user research):


* {{ok|Reduce appearance of the "profile is in use" message on startup {{bug|286355}} }}
* {{done|Reduce appearance of the "profile is in use" message on startup {{bug|286355}} }}
* {{ok|Restore windows one by one during session-restore {{bug|1034534}} and/or load windows by descending z-order {{bug|1034036}} }}
* {{defer|Restore windows one by one during session-restore {{bug|1034534}} and/or load windows by descending z-order {{bug|1034036}} }}
* {{ok|C++ version of AsyncShutdown {{bug|918317}} }}
* {{done|C++ version of AsyncShutdown {{bug|918317}} }}


Prevent performance regressions:
Prevent performance regressions:


* {{ok|Implement automatic detection & alerting for Telemetry regressions {{bug|1031032}} }}
* {{done|Implement automatic detection & alerting for Telemetry regressions {{bug|1031032}} }}
* {{ok|Help developers understand & diagnose Talos regressions}}, e.g. [https://bugzilla.mozilla.org/show_bug.cgi?id=1026550 Firefox 33 regression tracking], [https://bugzilla.mozilla.org/show_bug.cgi?id=1004427 Firefox 32 regressions], [https://bugzilla.mozilla.org/show_bug.cgi?id=990085 Firefox 31]
* {{done|Help developers understand & diagnose Talos regressions}}, e.g. [https://bugzilla.mozilla.org/show_bug.cgi?id=1026550 Firefox 33 regression tracking], [https://bugzilla.mozilla.org/show_bug.cgi?id=1004427 Firefox 32 regressions], [https://bugzilla.mozilla.org/show_bug.cgi?id=990085 Firefox 31]


Grow community:
Grow community:


* {{ok|Mentor at least 5 external contributors}}
* {{done|Mentor at least 5 external contributors}}


=== Networking ===
=== Networking ===
Line 206: Line 209:


'''Developer Productivity'''
'''Developer Productivity'''
* {{ok|}} Deploy ReviewBoard for developers to start using (joint with RelEng)
* {{miss|}} Deploy ReviewBoard for developers to start using (joint with RelEng)
** Primary dev on medical leave for a month; will be finished early q4.


'''Performance'''
'''Performance'''
* {{done|}} Deploy new Talos tests for tp5o_scroll, webgl, webrtc, and mainthread I/O
* {{done|}} Deploy new Talos tests for tp5o_scroll, webgl, webrtc, and mainthread I/O
* {{ok|}} Get Datazilla alerts to beta mode (full parity with graph server alerts) with reduced noise
* {{done|}} Get Datazilla alerts to beta mode (full parity with graph server alerts) with reduced noise
* {{done|}} Get Eideticker running against Android again with increased frequency
* {{done|}} Get Eideticker running against Android again with increased frequency
* {{done|}} Run B2G Eideticker against same branch/build combinations as our other on-device perf tests
* {{done|}} Run B2G Eideticker against same branch/build combinations as our other on-device perf tests
Line 223: Line 227:


'''General Automation'''
'''General Automation'''
* {{ok|}} Create weekly reports that describe how many tests have been added/disabled/enabled per suite and platform
* {{done|}} Create weekly reports that describe how many tests have been added/disabled/enabled per suite and platform
* {{ok|}} Move reftest to mozbase
* {{done|}} Move reftest to mozbase
* {{done|}} Add command executors for Marionette for Java and Python
* {{done|}} Add command executors for Marionette for Java and Python


'''Bugzilla'''
'''Bugzilla'''
* {{done|}} Improve load time of related bugs; can decrease show_bug load times by up to 12%
* {{done|}} Improve load time of related bugs; can decrease show_bug load times by up to 12%
* {{ok|}} Minify and concatenate JS files
* {{done|}} Minify and concatenate JS files
* {{ok|}} Authoritative view for review history
* {{done|}} Authoritative view for review history
* {{ok|}} Rewrite docs for REST API
* {{done|}} Rewrite docs for REST API


'''Community'''
'''Community'''
Line 239: Line 243:
=== Web Engineering ===
=== Web Engineering ===
'''Crash stats'''
'''Crash stats'''
* {{ok|}} Prototype service for identifying post-crash user actions
* {{done|}} Prototype service for identifying post-crash user actions
* {{done|}} Hardware and performance tuning for new primary data store
* {{done|}} Hardware and performance tuning for new primary data store
* {{ok|}} Remove older, redundant crash storage format from database
* {{done|}} Remove older, redundant crash storage format from database
* {{drop|}} Improve search performance and features
* {{drop|}} Improve search performance and features
** API changes in the underlying tech made this much more complicated that originally estimated. Will be carried over to next Q.
** API changes in the underlying tech made this much more complicated that originally estimated. Will be carried over to next Q.
Line 249: Line 253:
* {{done|}} Support search diversion plan
* {{done|}} Support search diversion plan
'''DXR'''
'''DXR'''
* {{ok|}} Improve infrastructure.
* {{done|}} Improve infrastructure.
** For example, switch to ES backend, which will enable us to build multi-language support and parallel tree indexing.
** Switched back end to Elasticsearch, paving the way for [https://wiki.mozilla.org/DXR_Parallel_Tree_Indexing concurrent, independent tree indexing].
* {{ok|}} Broaden our audience.
** Freed codebase of C++ assumptions.
** Pull users away from MXR so we can shut it off. For example, add support for Rust or JS, squash MXR migration blockers.
** Completely [http://dxr.readthedocs.org/en/es/development.html#writing-plugins new plugin API] supporting multiple languages, multi-core indexing, request-time analysis, binary file handling, and plugins living outside the DXR source tree
** Added an official DXR submodule, complete with 3 module peers.
** Rewrite search controller, which was always complete spaghetti. We now have a genuine HTTP API!
** Upgrade Vagrant VM to a LTS release of Ubuntu.
** Render folder views at request time, a pilot for doing this with file view as well (which will save hundreds of GB of expensive NetApp space and, more importantly, speed indexing so we can do it more often).
* {{done|}} Broaden our audience.
** Added indexing for several releng trees.
** Rewrote developer documentation ([https://dxr.readthedocs.org dxr.readthedocs.org]), bringing in about 2 new contributors per week.
** Rewrite query machinery to do "and" searches as people expect rather than the weird and-or hybrid it used to do.
** Added macro and typedef direct search.
** Added Google Analytics so we can measure our use.
** Rewrote highlighting support, fixing myriad UI bugs.
** Basic JS analysis 75% done. Rust analysis in progress.
'''l10n'''
'''l10n'''
* {{done|}} Get l10n build logs into a searchable data store
* {{done|}} Get l10n build logs into a searchable data store
Line 270: Line 286:
* {{done|}} Input: Improve documentation and install to lower the bar for contribution ([[Firefox/Input/Reduce Contributor Pain]]) [Enable Communities with Impact]
* {{done|}} Input: Improve documentation and install to lower the bar for contribution ([[Firefox/Input/Reduce Contributor Pain]]) [Enable Communities with Impact]
* {{done|}} Input: Support Heartbeat ([[Firefox/Input/Heartbeat]]) [Get Firefox on a Growth Trajectory]
* {{done|}} Input: Support Heartbeat ([[Firefox/Input/Heartbeat]]) [Get Firefox on a Growth Trajectory]
* {{risk|}} Input: Dashboards for Everyone ([[Firefox/Input/Dashboards for Everyone]]) [Get Firefox on a Growth Trajectory]
* {{done|}} Input: Dashboards for Everyone ([[Firefox/Input/Dashboards for Everyone]]) [Get Firefox on a Growth Trajectory]


=== Release Engineering - Laura ===
=== Release Engineering - Laura ===
Line 279: Line 295:


=== Release Engineering - Taras ===
=== Release Engineering - Taras ===
* {{ok|}} Replace aging Firefox update service with a scalable, modern solution. (Get Firefox on a Trajectory of Growth) - Now on beta channel. release channel in early Q4
* {{done|}} Replace aging Firefox update service with a scalable, modern solution. (Get Firefox on a Trajectory of Growth) - Now on beta channel. release channel in early Q4
* {{ok|}} Simplify developer workflow by automating patch landing and uplift. (Enable Communities With Impact)
* {{miss|}} Simplify developer workflow by automating patch landing and uplift. (Enable Communities With Impact) - Implementation done; needs secreview and final integration, deployment.
* {{ok|}} Optimize network transfers for build/test automation between datacenters. (Enable Communities With Impact)
* {{done|}} Optimize network transfers for build/test automation between datacenters. (Enable Communities With Impact)
* {{ok|}} Continue AWS cost optimizations: EBS < 3% of AWS bill(vs 30% in Q2) (Enable Communities With Impact)
* {{miss|}} Continue AWS cost optimizations: EBS < 3% of AWS bill (vs 30% in Q2) (Enable Communities With Impact) - Missed primarily due to lost headcount. Reduced our EBS cost in September to 11% of total; more reductions to come in Q4.
* {{drop|}} Improve developer workflow by migrating 80% of FirefoxOS build/test jobs to taskcluster (Enable Communities With Impact) - this goal is now with jlal in FirefoxOS
* {{drop|}} Improve developer workflow by migrating 80% of FirefoxOS build/test jobs to taskcluster (Enable Communities With Impact) - this goal is now with jlal in FirefoxOS
* {{drop|}} Turn telemetry into a general purpose s3 ingester and analysis tool - this goal is now with mreid in Services
* {{drop|}} Turn telemetry into a general purpose s3 ingester and analysis tool - this goal is now with mreid in Services
Line 290: Line 306:
** {{drop| Unify releng platform architecture, using common tools and best practices, to decrease complexity and enable smoother developer engagement {{bug|1026110}} [Get Firefox on a Trajectory of Growth, Enable Communities With Impact] - blocked on obtaining necessary resources from other groups }}
** {{drop| Unify releng platform architecture, using common tools and best practices, to decrease complexity and enable smoother developer engagement {{bug|1026110}} [Get Firefox on a Trajectory of Growth, Enable Communities With Impact] - blocked on obtaining necessary resources from other groups }}
** {{done| Improve communication and response time for releng network flow requests {{bug|1026112}} [Get Firefox on a Trajectory of Growth, Scale Firefox OS] }}
** {{done| Improve communication and response time for releng network flow requests {{bug|1026112}} [Get Firefox on a Trajectory of Growth, Scale Firefox OS] }}
** {{ok| Improve security for all releng windows infrastructure {{bug|893716}} [Get Firefox on a Trajectory of Growth] }}
** {{done| Improve security for all releng windows infrastructure {{bug|893716}} [Get Firefox on a Trajectory of Growth] }}
** {{done| Update windows platform developer tools {{bug|1019165}} [Get Firefox on a Trajectory of Growth] }}
** {{done| Update windows platform developer tools {{bug|1019165}} [Get Firefox on a Trajectory of Growth] }}
* Build/Test System Self-Serve Re-architecture
* Build/Test System Self-Serve Re-architecture
** {{done| Design a private cloud deployment architecture for bare metal and produce a POC that supports Ubuntu 12.04 test machines. {{bug|963165}} [Get Firefox on a Trajectory of Growth, Scale Firefox OS] - POC created, and openstack was deemed too buggy in its current unreleased state to be production ready }}
** {{done| Design a private cloud deployment architecture for bare metal and produce a POC that supports Ubuntu 12.04 test machines. {{bug|963165}} [Get Firefox on a Trajectory of Growth, Scale Firefox OS] - POC created, and openstack was deemed too buggy in its current unreleased state to be production ready }}
** {{drop| Create self-service capability for releng hardware Firefox linux test slaves (build slaves as a stretch goal) {{bug|1026687}} (depends on completion of previous goal) [Get Firefox on a Trajectory of Growth, Scale Firefox OS] - bare metal openstack is proving to be too bleeding edge and buggy to use for production services. We will continue to work on R&D for this project and track changes made in the openstack code base, but we will not move any services to production in FY2014 }}
** {{drop| Create self-service capability for releng hardware Firefox linux test slaves (build slaves as a stretch goal) {{bug|1026687}} (depends on completion of previous goal) [Get Firefox on a Trajectory of Growth, Scale Firefox OS] - bare metal openstack is proving to be too bleeding edge and buggy to use for production services. We will track changes made in the openstack code base and revist this in 9mo, but we will not move any services to production in FY2014 }}


=== Developer Services ===
=== Developer Services ===
* {{done|(with B-team) roll out phase 2 of new review tooling}} [Get Firefox on a Growth Trajectory / Enable communities with impact]
* {{done|(with B-team) roll out phase 2 of new review tooling}} [Get Firefox on a Growth Trajectory / Enable communities with impact]
* {{ok|Upgrade existing Mercurial infrastructure to support more rapid, safe, and coordinated deployment of updates.}} [Get Firefox on a Growth Trajectory / Enable communities with impact]
* {{done|Upgrade existing Mercurial infrastructure to support more rapid, safe, and coordinated deployment of updates.}} [Get Firefox on a Growth Trajectory / Enable communities with impact]


[https://etherpad.mozilla.org/devservices-Q32014 Full List]
[https://etherpad.mozilla.org/devservices-Q32014 Full List]
Line 318: Line 334:
'''Communications Security'''
'''Communications Security'''
* {{done|SSL Error Reporting finish first implementation of ssl error reporting feature.}} (dri=grobinson)
* {{done|SSL Error Reporting finish first implementation of ssl error reporting feature.}} (dri=grobinson)
* {{ok| HPKP - implement pinning http header}} (dri=cviecco)
* {{done| HPKP - implement pinning http header}} (dri=cviecco)
* {{done| Update [[CA:RevocationPlan|roadmap for Cert Revocation improvements]]}} (dri=rbarnes)
* {{done| Update [[CA:RevocationPlan|roadmap for Cert Revocation improvements]]}} (dri=rbarnes)
* {{done| Create a mechanism to provision phones with an alternate cert}} (dri=mgoodwin)
* {{done| Create a mechanism to provision phones with an alternate cert}} (dri=mgoodwin)
Line 351: Line 367:
=== Release Management ===
=== Release Management ===
For full list, see [[Release_Management/Goals/2014Q3#Release_Management_General|Release Management 2014Q3 Goals]].
For full list, see [[Release_Management/Goals/2014Q3#Release_Management_General|Release Management 2014Q3 Goals]].
* Create and document process for Desktop/Mobile feature fast tracking
* {{done|}} Create and document process for Desktop/Mobile feature fast tracking
* {{done|}} Determine future of ESR and how to manage this channel
* {{done|}} Determine future of ESR and how to manage this channel
** https://groups.google.com/forum/#!topic/mozilla.dev.planning/-IQWXs_zEp8
** https://groups.google.com/forum/#!topic/mozilla.dev.planning/-IQWXs_zEp8
Line 357: Line 373:
** Throttling time currently reduced from 10 to 7 days. Experimenting with further reductions.
** Throttling time currently reduced from 10 to 7 days. Experimenting with further reductions.
* Improve release notes with revamped template for all products
* Improve release notes with revamped template for all products
* Create B2G release model proposals and gather feedback for potential changes
* {{done|}} Create B2G release model proposals and gather feedback for potential changes
* Figure out what to do with B2G Security Releases
* {{miss|}} Figure out what to do with B2G Security Releases


===Program Management===
===Program Management===
Confirmed users
311

edits