2. whoami
● 🇹🇼 Haku
● @CYBAI
● @_cybai
● Software Engineer @ HERP, Inc.
● Contribute to Servo from Aug 2017
2
3. ● What is Servo?
● How to contribute?
● How to run tests?
● How Servo CI works?
Agenda
3
4. ● What is Servo?
● How to contribute?
● How to run tests?
● How Servo CI works?
Agenda
4
5. ● 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
6. What is Servo? (Cont.)
● Two successful components have been migrated into
Firefox, e.g. Stylo and WebRender
6
14. What is Rust, in short? (Cont.)
14
● Derived many good features from functional languages
(e.g. Algebraic Data Types, trait, etc.)
● You can Hack Without Fear due to borrow checker!
● The "most loved programming language" in the Stack
Overflow Developer Survey in 2016, 2017, 2018, 2019
and 2020.
15. ● What is Servo?
● How to contribute?
● How to run tests?
● How Servo CI works?
Agenda
15
17. 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.
17
Ref: Tag label names and definitions
18. 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!
18
23. ● What is Servo?
● How to contribute?
● How to run tests?
● How Servo CI works?
Agenda
23
24. 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.
24
25. “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?
25
34. But wait! Why not just merge the PR? and what exactly is
@bors-servo and r+?
34
��
35. ● What is Servo?
● How to contribute?
● How to run tests?
● How Servo CI works?
Agenda
35
36. 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:
36
The Not Rocket Science Rule Of Software Engineering:
automatically maintain a repository of code that always passes all the tests
-- Ben Elliston
37. Homu: The Not Rocket Science™
37
Rename fn foo → fn bar
✅ CI Pass
Call fn foo in somewhere
✅ CI Pass
☠ Function foo doesn’t exist
❌ Broken master branch
A B
38. Homu: The Not Rocket Science™
38
Screenshot from Homu Queue
43. 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
43