Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I wonder how much of his positive experience is due the fact that he decided to contribute to Servo instead of one of the "main" Mozilla projects (Gecko, SpiderMonkey, Firefox etc). Less hairy codebase, smaller community, github-based, and probably lot more suitable low-hanging fruits.


I wrote a patch for Firefox too. While the experience was different, I applied the same method and it worked quite well. As a comment says it: the mentoring part is important, probably even more than the project itself. I saw that when trying to contribute to other large projects.

Contributing to Servo has its downsides too: things move quickly and can break, and many things are really unstable and unfinished.


I got a couple patches through to Firefox proper. One was a fairly easy bugfix[1], but the other[2] took me lots and lots of iterations to get correct. The mentor was extremely patient, taking what I think was more time to explain to me how to do it right than it would have taken him/her to just do it themselves.

The worst part for me wasn't understanding the code (though following through some of the XPCOM stuff is tough), but working with Mercurial. I was tempted several times to abandon it and use a git mirror. Anyone that says patch queues are equivalent to git rebase is crazy.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1006656 [2] https://bugzilla.mozilla.org/show_bug.cgi?id=907310


If you dont need to actually push the code to the reposity (which you wont for the first bunch of patches) it is totally fine to use git, the github mirror is at

https://github.com/mozilla/gecko-dev

and you can just upload patches for review


Mozilla also hosts its own git server: http://git.mozilla.org/


Servo is fun because there's a lot of low-hanging fruit (just pick an unimplemented CSS property or DOM call and implement it!), and a lot of room for experimentation (want to play with an experimental line breaking algorithm? Go nuts!)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: