With websites such as GitHub and Bitbucket opening up the door to quickly creating and sharing open source projects, there has never been a better time to make your way into the open source community. There are a few things you should know in order to get started working with open source projects, which will be outlined in this post.
There are tons of open source projects out there, the trick is finding a project that interests you. It is very likely that a program you use regularly is open source, especially considering there are a lot of things being open sourced recently. The key to finding the open source project that suits you is to find one that you are interested in, especially if it is something that you regularly use.
For me, this was Select2, a project that provided a searchable drop-down that could be connected to a remote API, something which I was going to need in a project I was working on back in the summer of 2012. Because the project was focusing on tablets as the main point of interaction, there were a few issues that I reported (and later fixed). The project was added to my watch list on GitHub and I eventually became a core committer to the project, still maintaining it even now that I have moved away from it.
Some websites offer ways to find interesting open source repositories, such as GitHub’s Explore which organizes popular repositories into categories such as “Productivity tools” and “Data visualization”.
If you are interested in helping out with an open source project, you should be familiar with the code base and generally understand how things work. This works best if you are actively using the code, or are planning on using it in the near future on a project.
There are usually three places for communication when working on software, whether it is open source or closed source: the issue tracker, instant messaging, and mailing lists. While not all projects will have all three of these communication channels, almost all projects will have an issue tracker which is often used for feature requests and questions as well as reporting issues.
Projects hosted on GitHub and Bitbucket typically use the issue trackers that are included, but others such as Bugzilla and Trac are often set up for larger projects which need more than what GitHub and Bitbucket provide. Before creating new tickets in issue trackers, make sure to familiarize yourself with any restrictions that projects have set in place as to what needs to be included. For bug reports, you should try your best to include instructions on how to quickly reproduce the issue, what you think should have happened, and any debugging information that has been made available.
When working on a project that is actively being developed, it is not unusual to that an IRC channel has been created for support and other communication. Often the issue trackers are reserved only for issues, so general support questions and implementation glitches will be closed off as they are not allowed.
Now that HipChat is free for everyone, it is becoming a common channel for communication within projects. HipChat was acquired by Atlassian, the creators of Bitbucket and provides integrations with products such as Heroku and UserVoice,