I am glad you asked it Contributing to open source is a great feeling, and I have been fortunate to submit (tiny) patches which were accepted and applied for a couple of projects.
The best place to search for active open source projects is GSOC 2013 accepted organisations. You can enter tags like “c++”, “linux” etc. to filter the organisations matching your skills and interest. You should also look at organizations of past years.
Lets say you got interested in a couple of organisations, then head over to their website and download their product (or you may already be using it ). If you like it then only explore further.
Once you have decided a organisation/project to contribute to, follow these steps-
- Get the code through repository (ususally SVN or Git)
- Setup your IDE to compile and run existing code. If you face trouble you can ask on IRC channel.
- Now start making small modifications and see their effect.
- Once comfortable with reading and modifying code, go to the bug tracker - it contains existing bugs and feature requests, choose an easy bug/feature and try to remove/implement it. Even better is to work on bug/feature you found yourself.
- Once you are sure you have fixed the bug/implemented a feature cleanly (not introduced another bug), submit the patch for review. You need to follow organisations coding guideline for it.
- A community member will review your patch and apply it to main repository. Otherwise he/she may notify you why it is rejected. In that case you should address their concern and resubmit the patch for review.
For successful open source contribution, you will have to communicate and contact the developers. Each organisation (even smaller ones) have one or more channel for it-
- Mailing list. Subscribe to it.
- IRC channel. A great way to talk directly to developers, but don’t nag them.
While doing open source development remember 2 things-
- Don’t get disheartened if you find the project too big. Instead search for smaller project.
- Don’t get disheartened if your patch is rejected or community member does not reply to you. Maybe your approach is wrong. Or maybe the member is too busy.
Believe me, the open source community is very very helpful and kind with beginners. My experience has been excellent. The guys try their best to get your environment setup. Help you to learn associated technologies like source control.
The sourceforge forum for Help Wanted is also a good place to search for projects.