Firefox is one of those open-source projects that I have used since its version 1.0 and have been using it since then. Since this July, I started contributing patches to the project. Contributing and helping develop something that I love to use and giving back to the community and helping develop a product that so many people use daily is something awesome. In this post I’ll share my experience as a contributor.
I started off as a newbie, some basic programming knowledge (I am not a Computer Science student anyways), but always wanted to give back to the community. I think this is what sets Mozilla apart from the rest. They welcome new contributers and a very well documented docs give a good boost to people who are starting off with developing stuff.
- The initial step for anybody would be to build Firefox from the source, the details of which can be found on their MDN wiki. Once I had the initial build done, I wanted to work on something that would be really very easy to solve but at the same time get me familiarized with the source.
- Luckily, Mozilla had this thing called mentored bugs, where we have mentors to guide anybody working on these. The easiest way to find out a bug to work on would be to use Bugs Ahoy by Josh Matthews.
- Once you find the bug that you want to work one, you can get the bug assigned to yourself and then start working on it right away.
- Once you are done, create a patch and post it for review from your mentor or the owner of the module you are working on. They may suggest changes, then just update you patch accordingly and post it once again for review.
- Once you get a r+ (ie. the patch is approved), your patch is tested on Mozilla Try Servers and once it passes all tests it will land in the source tree. Thats it, you are done with your first patch! Just repeat these steps and you start working on your next patch.
My first patch was for shifting the position of the Web Console Window from the top to bottom of the window. Although I making that change was easy, I had to update the tests as well. It was the first time in my life that I ever wrote a test. My mentor for the bug Mihai Sucan helped me readily with it, and I had no problem writing my first tests.
The experience is really amazing, you can hang out on IRC, talk to anybody and ask for help and people are there to help you out with any problem. Another thing that I do often is add myself to the CC list of a bug that I am interested in and so that when any new development occurs I am notified. That way you get to learn how that part of the code works and what the patch is doing.
You get to interact and work with a lot of great people, which perhaps you will never get in your university. I have worked with Josh Matthews, Victor Porof, Yoric, Jared Wein, Ms2ger, Boris Zbarsky, etc. (sorry if I am missing someone) and they are really helpful and helped me out with anything that I got stuck on. A tweet that I came across really captures this spirit:
I think there are two things that are more important than writing patches: helping others write patches and reviewing—
Jared Wein (@weinjared) December 05, 2012
The thing I really learned while writing my patches was that, the people who have mentored me in the Mozilla community actually actively encourage inquisitiveness. People ask each other questions and help each other out or they say who else in the community may know about it. This openness is on of the greatest spirits of the community, which also helps newcomers to get easily associated with such an enormous project.