Hacking Servo for Noobs
gist.github.com
gist.github.com
Personally for me the hardest part has been finding easy issues. While the Servo team does a great job of creating them, there's a lot of people vying for them. And then, even harder, progressing from these to bigger harder issues, which is where I'm still at.
I'm actually working on making rustc easier to contribute to. It's already not very hard to work on (you don't need to submit groundbreaking patches to borrowck for a first bug, plenty of easier things to work on!), but the framework that helps newcomers ease into contribution needs work.
https://users.rust-lang.org/t/mentoring-newcomers-to-the-rus...
(Currently I'm cleaning up the easy issues list and adding hints/pointers to the questions)
If you have any specific feedback, I'd love to hear it!
Something I'd love to see is an overview of what parts of the source tree are responsible for what. As a new contributor to projects, that's the part I find takes the longest. Figuring out what modules do the things that I want to work on.
The guts of servo seems to be the the "components" directory. Is there a place that gives some information on each of the components in there?
https://drive.google.com/file/d/0B9-EBhw4XiWEOWFfc0NiUkk5Tjg...
Servo has polyrepo style (many separate source repositories), as opposed to the monorepo style of other browsers. So, it's not just the `components` directory, but many of the ~140 other Cargo crates (https://crates.io/) and raw GitHub packages that come together to form Servo. I have a "deliverable" for Q4 to improve our documentation situation and explain how it all is put together, though this gist is an awesome start!