Quantum/Stylo: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Bugs: Show P2 bugs)
(Updated the stylo links to stop categorically excluding metabugs and to check for the ":" in "stylo:")
Line 154: Line 154:


* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&o1=anywords&emailtype1=substring&emailassigned_to1=1&email1=nobody%40mozilla.org&v1=stylo&priority=P1&priority=P2&f1=short_desc&order=Importance&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced Unassigned P1-P2 bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&o1=anywords&emailtype1=substring&emailassigned_to1=1&email1=nobody%40mozilla.org&v1=stylo&priority=P1&priority=P2&f1=short_desc&order=Importance&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced Unassigned P1-P2 bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&keywords=meta&keywords_type=nowords&o1=anywords&v1=stylo&priority=P1&f1=short_desc&order=Importance&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced&product=Core&product=Firefox P1 stylo: bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?priority=P1&j_top=OR&f1=short_desc&list_id=13705345&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&o1=anywords&resolution=---&query_format=advanced&v1=stylo%3A&product=Core&product=Firefox P1 stylo: bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&keywords=meta&keywords_type=nowords&o1=anywords&v1=stylo&priority=P2&f1=short_desc&order=Importance&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced&product=Core&product=Firefox P2 stylo: bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&list_id=13705342&o1=anywords&v1=stylo%3A&priority=P2&f1=short_desc&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced&product=Core&product=Firefox P2 stylo: bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&keywords=meta&keywords_type=nowords&o1=anywords&v1=stylo&priority=P3&f1=short_desc&order=Importance&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced&product=Core&product=Firefox P3 stylo: bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?priority=P3&j_top=OR&f1=short_desc&list_id=13705343&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&o1=anywords&resolution=---&query_format=advanced&v1=stylo%3A&product=Core&product=Firefox P3 stylo: bugs]


* Stylo milestone bug trees:
* Stylo milestone bug trees:

Revision as of 00:08, 2 August 2017

Stylo (a.k.a. Quantum CSS) will integrate Servo's CSS style system into Gecko, such that the style system code can be shared by Gecko and Servo. Stylo V1 will support Firefox on Windows, macOS, and Linux. Android support may ship in a later release.

Stylo is a core part of Project Quantum.

Getting Involved

If you're interested in contributing to Stylo or Servo, drop by the #servo IRC channel on Mozilla's IRC server.

One front where you can help out is adding new properties to Servo's CSS parsing crate. This requires familiarity with Rust, but is otherwise a good way to dip your toes into Servo's style system. To get started, see Servo's CSS property hacking guide for more information.

If you do not know Rust, you can help implement keyword properties. See the Stylo hacking guide for more details. The Stylo hacking guide also has instructions for building Stylo if you wish to play with it yourself. If you know C++, Firefox bug 1277133 has information about easy Gecko bugs that will assist Stylo's integration with Gecko.

Some Stylo bugs that are good for new Servo contributors are tagged on GitHub as “easy” bugs and “less-easy” bugs.

Committing stylo changes

The process for committing a Stylo change that involves both Gecko and Servo changes is as follows:

  1. Create a Github PR against https://github.com/servo/servo with the Servo changes in question.
  2. Get that reviewed and checked into Servo's github repository.
  3. Wait for servo-vcs-sync to land the Servo changes on Gecko's autoland.
  4. Land the Gecko changes on autoland.

A more exhaustive / overwhelming description of the workflow is also available.

Try Syntax

To build and test Stylo platforms, you can use:

./mach try -b do -p linux64,linux64-haz,macosx64 -u all

To build all possible platforms, but only test Stylo platforms, you can use:

./mach try -b do -p all -u all[x64,linux64-stylo,linux64-stylo-sequential,macosx64-stylo]

Release Criteria

Stylo should not cause us to regress any CSS feature unless we explicitly decide that regressing that specific feature is acceptable. The existing test suite will be the primary benchmark of this, with cross-validation from an automated analysis and manual QA of the Alexa Top 500 sites.

  • Stylo should have zero blocking bugs.
  • Stylo should pass all (non-disabled) Gecko reftests and mochitests.
  • Stylo should have no more unimplemented properties on the Alexa Top 500 sites than Gecko. DONE!
  • Stylo should pass visual diff testing (bug 1331552) for the Alexa Top 500 (?) sites.
  • Stylo sequential mode's Talos performance should be at least as fast as Gecko.
  • Stylo parallel mode's Talos performance should be faster than Gecko. Ideally we should scale linearly with the number of cores.
  • Stylo's memory usage (both Talos and beta telemetry) should be less than or equal to Gecko's.
  • Stylo's crash rate should be less than or equal to Gecko's.
  • Stylo's user engagement metrics (TBD: number of domains, number of tabs?) greater than or equal to Gecko's.

Work Breakdown Structure

  • Tests
    • reftests: Shing
    • mochitests: TBD
  • Cargo
    • Build Support: Nathan, Ralph
      • Build Stylo: Lars
    • Vendoring Support: Ted, Yehuda
      • Vendor Servo: Lars
  • Glue (Gecko/C++/Rust/Servo): Manish, Simon, Xidorn, Michael
  • CSS Support
    • CSS Properties: Cameron, Xidorn, Simon, Emilio, Bobby, Brian
    • CSSOM: Xidorn, Simon
  • Autoland
    • Servo CI and Autolander: Emily
    • Gecko CI and Autolander: Emily

Milestones

stylo-central

stylo-nightly

  • Enable Stylo in Nightly (bug 1330412) (dependencies)
    • Implement parsing of all CSS properties supported by Firefox
    • Fix and enable all tests (without skipping or expecting failure)
    • Fix all crashes and assertion failures
      • Fuzz Stylo
      • Pass [Auto-tools/Projects/BugHunter Bughunter]
    • Manual QA sign-off
      • Smoke test Alexa Top N sites
      • Exploratory testing of browser UI and features

stylo-release

  • Stylo meta bug 1243581 (dependencies)
  • Run experiment comparing Stylo vs Gecko on engagement ratio, performance, crash rate, and memory usage.
  • Let Stylo ride the trains
    • Enable Stylo on all platforms (bug stylo-nightly)
      • Pass QA on all platforms (tests, fuzzing, BugHunter)
  • Ship Stylo to Release

Bugs

Dogfood Bugs

bug stylo-site-issues blockers:

Full Query
ID Priority Summary Keywords Assigned to
1391341 P2 stylo: Font size inherits differently than in Gecko dev-doc-complete, regression

1 Total; 1 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Fuzzer bugs:

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


P1 Bugs

that aren't also stylo-site-issue or fuzzer bugs

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


P2 Bugs

that aren't also stylo-site-issue or fuzzer bugs

Full Query
ID Priority Summary Keywords Assigned to
1406622 P2 stylo: use invalidation framework to handle restyles needed in response to content insertion/removal perf:responsiveness Emilio Cobos Álvarez (:emilio)
1420369 P2 stylo: 6.21 - 6.54% remote-tsvg / remote-twitter (android-6-0-armv8-api16, android-7-1-armv8-api16) regression on push db56323cd08f4883e4824199b441a3141be655e5 (Thu Nov 23 2017) perf, regression Makoto Kato [:m_kato]
1406996 P2 stylo: Investigate crash reports around Rust HashMaps sec-audit
1413654 P2 stylo: We rely on the initial ResolveStyleFor call when computing the body style for scroll propagation to deal with updating the stylist
1418902 P2 stylo: Stop updating animation data on pseudo elements whose content value is changed to 'none' reproducible
1422615 P2 stylo: Stop cascading an element for restyling if the element has display:none
1426295 P2 stylo: SVG images use more memory than Gecko
1430706 P2 stylo: geckoservo::glue::Servo_ParseStyleAttribute is slower than Gecko's old CSS parser on ARM

8 Total; 8 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Bugzilla Queries

Priority Definitions:

  • P1: Stuff we're working on or want to be working on now
  • P2: Overflow from P1. Bugs which reduce uncertainty, but which we don't have the resources to staff for now.
  • P3: Bugs we need to fix before shipping, but which do not disproportionately reduce uncertainty.
  • P4: Want before shipping, but could potentially ship without.
  • P5: Not actively prioritized (includes metabugs)

Links