Getting Started with opensource

Some Background

Opensource is the best platform to learn. Mark my words, you will definitely learn a lot of things, it’s just not limited to computer science. The best part is you will be interacting with the people from different parts of the world. You can proudly say that the code you have written is used by thousands of people I have started contributing to opensource past 3 months. During these 3 months I have met several of my friends who are willing to contribute to open source but do not know where to start from. Sometime back I was in the same boat. So i think it would be ideal to publish the post. Based on the experience i have gained and the mistakes i have done while contributing, i am writing this post. Hope this helps you. Happy social coding.

Know your skills and abilities

First you have to analyse yourself. If you are an expert in Java, but you wan’t to contribute to project that uses C++ or you are a beginer in Java and you wan’t to explore java more by contributing. So there can be a many reason why you want to contribute to opensource. So first decide and then decide your strengths and weaknesses then you can start contributing.


Select a project to contribute

Based on the input i got so far, many people believe that selecting a project is difficult. But if you have done the previous step properly then it’s very easy to find a project. List the organisations that you want to contribute, then go through those organisations then decide which organisation you wan’t to contribute. You can easily find the opensource organisation in WikipediaGSoC Page. I have listed just a few of them but there are lot of them availaible in Google.

Download the sourcecode

Before contributing you should setup project environment locally in your computer. Every project will have something called contributor’s guide. Do follow this. Along with steps to setup the project environment, it contains useful links to the documentation of the project, their coding standards and lot more.

Version Control

This is where Github comes in. All organisations use some form of Version Control. Major ones are SVN and Git. Although now mostly every organisation have switched to Git for some of its features, some might still be using SVN. Github is just a Git client which lets you host your code online. Learning Github is not the same as learning Git. Therefore, first, learn Git – Book  (at least first 2 chaptersthen, move on to learn how to use Github – use Try Git

Subscribe to Mailing list

This where all the discussion related to the projects will happen. Most of the project’s will have link to their mailing list in their project section, please subscribe to it. If you have any doubts or questions related to the projects you can ask them here. By reading this you will get good idea of the projects and their work flow.

Introductory Mail

Once you are done with all the above steps drop an introductory mail to their mailing list or irc or create a issue in their issue tracker. Keep the mail short and simple, include some information about yourself  and your past experience don’t make it too big by adding unnecessary thing’s.

Start Contributing

Before working on a issue i suggest you to spend sometime in reading the source code. So that you will have a clear idea about the code base. Do follow their workflow. Open source communities are helpful a lot , so don’t shy in asking things, but yes
don ‘t ask too trivial things, first try to search for a while if you don’t get clear answers then ask them over their IRC channel or mailing list.

 

If you have any queries do mention in the comments section. I will get back to you soon. Hope this helped you.