Contributing to Mozilla

Contributing to an open source project is something I have wanted to do for a while but haven’t got around to. In particular I had considered contributing to Mozilla before and have previously looked into what I could do to help. So this is what happened when did, I hope you find my ramblings somewhat interesting.

Why Mozilla?

Mainly because of its views stated in there manifesto and software which I use on a daily basis (Firefox and Thunderbird). I thought it would be great to give something back.

My Experience Contributing

I ended up contributing to the automation team (#automation) which has been a great learning experience. The automation team currently creates the software which automates testing for Firefox and Thunderbird. My first bug had a mentor assigned, Henrik Skupin (whimboo) who was really helpful and answered any questions I had, Which in my case was a lot with no previous knowledge of the source or software and my issues with git. Many thanks goes to him for putting up with me.

Mozilla (People)

What I have seen so far is really hopeful, a great community of people making great software. Everyone I have talked to has been really friendly and helpful. On Monday I had the intriguing opportunity to watch the public team meeting, which gave a great sense of community with contributors and employees.

What I have learned so far

  • Git, Git and more Git I thought I knew my way around basic git from the experience of using it to version my own projects, turns out I didn’t.
  • More python… yep it seems there is always more to be learned, in this case it was quite useful that on Sunday I had coincidentally watched a Google Development video which covered dictionaries which was very useful.
  • More windows command line, I have used it before but mostly avoided it …
  • I knew python could do a bunch of stuff, but wow..
  • What mozmill stands for.
  • Virtualenv is your best friend ♥.

My first bug (#121)

I started by reading though the wiki and automation training materials however this is something that I want to cover in more detail in another post.

I came across many issues when creating my first patch, the first of which was setting up python with the correct packages. Hence why Virtualenv is one of my best friends it makes it incredibly easy to use, toggle and create multiple isolated Python environments.

Once I had read the source code and had some time to work through it implementing the fix was surprisingly verily quick.

Most of my time was spent using git to push my changes. When I finished my patch and it had been reviewed, I messed up my local git fork of the mozmill-automation repository as can bee seen below..

Contributing Git Graph
As you can see lines everywhere!

Luckily it was as easy as re-cloning the repository from Github and with help from whimboo all was good. I had to create a new Pull Request but now by patch has been merged with the main mozmill-automation repository it feels great to have contributed even if I did only add 6 lines and remove 19. I look forward to contributing in the future…

Getting Involved

Why you should get involved ?

  • Help improve great software.
  • Improve your l33t programming skills.
  • Get some experience.

How can you get involved ?

If your interested in coding head over to the #introduction channel at concrete.mozilla.org and chat with people there.

Not sure what your interested in doing, try the whatcanidoformozilla tool.