Have you ever wanted to become a part of something bigger? Participate in a community driven by innovations and constant development? Get a well-known company on your resume? One of the ways to go so is to start contributing to open source projects. Hereafter I am going to discuss my experience in this field!
Mozilla is set to be one of the Open Source giants, having more than 2.1k repositories only its main GitHub organization! To say, there are about 46 other Mozilla-related organizations, with numerous repositories in each…It’s really, really big. Personally, I’ve always had a great experience with Firefox, shared common principles towards the direction in which the development of the Internet should go. I thought it would be great to try to become a part of what is being done at Mozilla.
Where to Start?
At first, I did not have any preferences on a specific project I want to contribute to. Therefore, I have started with looking up repositories that are available on Mozilla’s GitHub page. It actually turned out to be quite a long and nontrivial process. Once you see a huge list of various projects, it might get quite confusing. Here are a few tips that I developed by going over this process:
- Specify the long-term goal you strive to achieve. Do you want to really get involved into some project? Should it solve some particular problem? Or maybe you want to make a number of small contribution to various projects written in various languages to see what suits your interests the best? It might be anything, but it is extremely important to determine that for yourself.
- Identify your restrictions. Would you want to contribute to projects written in languages you have none or little experience with? What about the size of the project?
After you have that in mind, you would be able to narrow down the search. Make sure the projects you are contributing to are alive, i.e. there are contributions made to the project on a regular basis.
Make a decision based on above factors.
Project Found. What’s Next?
Start exploring the project you selected.
In my case, I decided to work on the Firefox Add-ons. While looking for an issue to work on in one of Mozilla’s projects, I have bumped into this one: https://github.com/mozilla/addons-server/issues/12555. I considered it to be quite interesting and left a comment. However, I was refused to work on it, because it did not have a
good first bug or
welcome tags, which turned out to be essential for the first-time contributors in this project. Thus, I decided to have a deeper look into the guidelines on how to make contributions to the Add-ons project.
It is necessary to find as much information as possible. Most of the projects would have certain guidelines on how to contribute to them. For instance, here is the one I found for Add-ons: https://wiki.mozilla.org/Add-ons/Contribute/Code
It was extremely helpful to have someone to talk to when your are at the stage of just getting to know the project. Thus, I was able to ask a number of questions, that I needed to be clarified in order to understand how is Add-ons organized and functions. Here is an excerpt from one of the replies I received:
Happy to help! :) Yes, the add-ons group has a couple of projects hosted on Github -- namely, addons-server, addons-frontend, web-ext, code-manager, extension-workshop and the linter (although the development environments for these are all different). You can filter issues in our repositories by the "contrib: good-first-bug" tag, or take a look at the Add-ons PM tool for a list of good-first-bugs for our projects hosted on Github. We triage new good-first-bugs every two weeks, but sometimes there are periods of time where more bugs are available to work on than others. (And if none of the available bugs look interesting, check out https://codetribute.mozilla.org/for good-first-bugs for other Mozilla projects. The Dev Tools project in particular has a really great community and culture.)It looks like issue #1335 on our web-ext project is currently open -- would you be interested working on that?
She ensured that I have everything ready to run the project and offered her help in finding a good first bug. As a result, I started looking into the issue posted under the web-ext repository, which is project that helps you build, run, and test web extensions for Firefox. The issue is actually a feature request to add another option to the build command. It decided that this would an interesting task to work on, so I left a comment down the feed and continued environment configuration.
After completing a number of steps enlisted there I was able to run web-ext on my machine. I decided to test it with some existing Mozilla extention. I went to the store and picked one of the featured extensions — Dark Reader. The author provided a link to the GitHub repository for his project in description, so I was able to browse there freely. I cloned the repository and opened the folder in the terminal in order to start testing web-ext. After running
web-ext build I got this error:
As I figured out later,
messages.js is required to run
web-ext build command. However, this particular project seemed not to be using web-ext at all, so it doesn’t have this file.
Therefore, I cloned another extension and tried running
web-ext build command. This time it went through. I was ready to start looking into the code.
To be continued…