- find a mentor. It will helps a lot (use http://www.joshmatthews.net/bugsahoy/);
- for the first bugs, writing code is not usually the hard part. Understanding bugzilla and writing tests are;
- ask for a commit access level 1 early to have access to the try servers (to run the tests);
- finish what you start. Bug is fixed when it lands, not when a patch is attached;
- mozilla hackers are nice people, ask questions on IRC. There's no stupid questions (we all started from zero too);
Everything will get much easier after the first bug fix. And motivation grows a lot once you have finally landed some code :)
#developers will be another usual place to ask for help, but for beginner questions come to #introduction
But on the weekend, be patient, the chance of getting an answer is pretty low but some people do volunteer on the weekend.
Lastly, check out http://codefirefox.com/ to get started.
The best way to get started is to fix something you spot as bug.
I say this as a person who wasted two years working on a Firefox patch, which, in hindsight, would have landed in a month or two if I'd had a mentor. (Not that I'm bitter.) https://bugzilla.mozilla.org/show_bug.cgi?id=347174
The bug that you worked on was a bit of an outlier in the sense that:
* It modified relatively complex parts of the code.
* There was initially no (HTML) spec for the feature.
* There was initially insufficient information to know what the spec for the feature ought to say.
So I think a mentor might well have told you "this is not a good first bug". Of course that make it all the more impressive that you pushed through the difficulties and got the patch landed and the spec fixed along the way. Thank you for that! The main delays seem to have been waiting for review, which a mentor may or may not have been able to help with depending on whether there were other less-busy qualified reviewers, and waiting for the patch to land, which these days we have a better process for and so which wouldn't happen again.
But that's kind of my point. "Mentored bugs" is an interesting approach, but normally people have mentors, not bugs, and I think that having a "mentor/mentee" field on user profiles may be the right approach for Mozilla; the field would show up on comments/patches I post.
That way, the reviewer could have seen on my profile that I'm new to fixing Mozilla bugs and unmentored, and in his first review, he could have suggested, "I think you should fix these things, and BTW, I think you should find a mentor to shepherd you through this process."
Unfortunately it took quite a long time, the Mozilla process is quite confusing to a newcomer, even one with a lot of open source project experience. I definitely second the recommendation of finding a mentor.
I think that good small projects can be plug-ins to bigger projects, or a library that someone use in a project.
Contributing to Servo has its downsides too: things move quickly and can break, and many things are really unstable and unfinished.
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.
and you can just upload patches for review
I had a similar experience with emscripten (yeah I know, Mozilla too) initially. So I start working on a project with the following steps:
- Download code
- Setup environment
- Run test suite (if exists)
- Play with simple bits of code by hard coding changes and building it to see it's effect.
- ... sleep?
- Attempt baby bug first
I hope I'll have the chance to contribute again to this great open source browser.
I liked Firefox 28, not Firefox 29 and up.
Also, if your proposal is around reverting something to a pre-29 state, it has probably already been discussed a lot.