How to Contribute to Open Source: A Beginner's Guide
Checklist for getting started:
[ ] Start by reading through: Open Source Guides. It's brief, easy to ready and gets right to the point on tips, support and advice when it comes to contributing to Open Source
[ ] Find and Pick a Project
[ ] Read the project documentation, get familiar with it
[ ] Choose one of these 3 ways to contribute and get started:
- DOCUMENTATION: Update, format, improve Documentation! Submit changes!
- FIX BUGS: Review current Issues -> Fix them! Submit them!
- QA TESTING: Test the product, find bugs -> Document them! Submit them!
[ ] Get stuck on something? Figure out current contributors and contact them with questions
Great Sites for Finding New Open Source Projects
-
Have issues emailed to you daily!: https://www.codetriage.com/
-
Work on Google projects: https://developers.google.com/open-source/projects
-
Great place for well labeled bugs: #firsttimersonly #helpwanted: http://up-for-grabs.net/#/
-
Well documented projects by Mozilla: http://whatcanidoformozilla.org/
-
Popular Open Source projects on Github: https://github.com/trending
-
Small weekly projects that are half complete, great starting place: https://github.com/code52
-
Tons of resources and bug finding tips: https://medium.freecodecamp.com/finding-your-first-open-source-project-or-bug-to-work-on-1712f651e5ba#.565phwd92
-
Search Google for “open source projects”, you'll find tons of articles on top 10 projects to contribute to and more
After choosing a project to work on, use the next references for finding issues to work on and connecting with other contributors for questions.
Finding Issues + Connecting with Contributors
If the project is on Github (about 99% are)the following screen shot describes where issues, documentation and contributors can be found:
By clicking on the "contributors" link we get a list of all the users who have contributed to the project by order of those with the most commits.
Usually the people with the most commits are the project leads and will have the most experience and information on the projects. They're often great resources for questions, but make sure you read the documentation first or #RTFM...is the response you might get.
If you have read the documentation and would like to ask a question, you can often find a contributor's contact information by clicking on their profile.
Not everyone posts this information though, so you may have to do some sleuthing.
The Open Source Guide has some great insights on the best way to ask questions that will get you answers.
Leaving comments and tagging the appropriate contributors in the issues forum is also a great place to get advice:
Contributing to Documentation
Believe it or not, poor documentation is one of the biggest problems and barriers to entry when it comes to Open Source. If you're a little nervous about jumping into editing code, give updating the documentation a shot.
The following sites are great resources for documentation design and contribution tips:
Logging Onto IRC
While many projects now communicate via Slack.com, a lot, including Mozilla, still communicate via IRC (Internet Relay Chat). It's basically the same thing as IM only cooler in my opinion.
To log onto a project's IRC, you'll first want to figure out the name of the server it's being hosted on and the channel the project communicates on. This information should be included in the project documention/README file.
In the case of Mozilla projects their server is Mozilla [webIRC], and the example project we'll be working with today is #mobile.
Next you'll want to open your client of choice for launching the IRC. There are tons out there, I use Mibbit.com just because it was the first one someone showed me.
After opening the client you'll want to click "Launch".
After that, select: “Mozilla [webirc]” from the “Connect” Drop Down Menu.
Type in your preferred screen name in “Nick” and the channel name e.g. #mobile in “Channel”.
Click “Connect”.
You now have access to all people who have ever contributed to your project of choice or in this case, Mozilla's #Mobile project.
Say something, introduce yourself and start making friends!
Always check how active the project is
Always take a look at how active a project is before contributing. You don't want to get stuck on an issue only to find that the last contribution was submitted 2 years ago, likely meaning the project has gone dark like Codebox #RIP.
Read through Open Source Guide!
It has some excellent content and is well written.
There are a ton of people working to make the Open Source community a better place and contributing an easier process. We need people like you to get involved and keep the ball rolling!