Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Hitchhiker's Guide to Servo Contributor

cybai
October 26, 2019

The Hitchhiker's Guide to Servo Contributor

cybai

October 26, 2019
Tweet

More Decks by cybai

Other Decks in Programming

Transcript

  1. whoami • Haku • @CYBAI • @_cybai • Software Engineer

    @ HERP, Inc. • Contribute to Servo from Aug 2017 2
  2. • What is Servo? • How to contribute? • How

    to run tests? • How Servo CI works? Agenda 3
  3. • What is Servo? • How to contribute? • How

    to run tests? • How Servo CI works? Agenda 4
  4. • A modern, high-performance greenfield browser engine designed for both

    application and embedded use • Written in Rust • Aim to achieve parallel and concurrency computing and layout • Derived memory safety and security from Rust What is Servo? 5
  5. What is Servo? (Cont.) • Two successful components have been

    migrated into Firefox, e.g. Stylo and WebRender 6
  6. • What is Servo? • How to contribute? • How

    to run tests? • How Servo CI works? Agenda 8
  7. Workflow 9 Find issue Implementation Test related WPT locally Send

    / Update PR Review PR merged Run CI passed with r+ Check Failures : Sucess : Failure
  8. How to get involved? • Check E-* labels ◦ E

    stands for Effort here. ◦ E-easy and E-less easy are good for new contributors. ◦ E-candidate-for-mentoring means it might be an easy issue because members didn’t check it carefully. But, they will mentor you to finish the issue. ◦ E-hard means challenging tasks. 10 Ref: Tag label names and definitions
  9. How to get involved? (Cont.) • Check the Servo starter

    page. • Find any Web API you’re interested in and it’s missing or implemented incorrectly in Servo! 11
  10. 14

  11. • What is Servo? • How to contribute? • How

    to run tests? • How Servo CI works? Agenda 16
  12. WPT • In Software Engineering, writing tests to verify our

    business logic is indispensable. • So do the web platforms! • Here comes the Web Platform Tests a.k.a wpt. 17
  13. “The web-platform-tests project is a W3C-coordinated attempt to build a

    cross-browser test suite for the Web-platform stack.” -- web-platform-tests.org What is wpt? 18
  14. How to run tests with Servo CI? (Cont.) 21 CI

    tests triggered by try will report tests result when all tests passed instead of merging PR
  15. How to run tests with Servo CI? (Cont.) 22 But

    wait! Let’s see what @jdm said!
  16. But wait! Why not just merge the PR? and what

    exactly is @bors-servo and r+? 27
  17. • What is Servo? • How to contribute? • How

    to run tests? • How Servo CI works? Agenda 28
  18. Homu: The Not Rocket Science™ bors is first introduced by

    Graydon Hoare who is Rust’s original creator and mainly applied Ben Elliston’s “not rocket science” rule to the bot: 29 The Not Rocket Science Rule Of Software Engineering: automatically maintain a repository of code that always passes all the tests -- Ben Elliston
  19. Homu: The Not Rocket Science™ 30 Rename fn foo →

    fn bar ✅ CI Pass Call fn foo in somewhere ✅ CI Pass ☠ Function foo doesn’t exist ❌ Broken master branch A B
  20. Recap 35 Add / fix tests while changed Contribute spec

    bugfix or new feature Sync new / fixed tests
  21. References • Experience Report: Developing the Servo Web Browser Engine

    using Rust • technicalities: "not rocket science" (the story of monotone and bors) • Rust infrastructure can be your infrastructure • Servo: Designing and Implementing a Parallel Browser • Servo and YOU: A beginner's guide • Inside a super fast CSS engine: Quantum CSS (aka Stylo) • The whole web at maximum FPS: How WebRender gets rid of jank 36