Ask HN: How do I get involved in open source projects?
I want to get involved in an open source project, but am not sure the best way to do it.
I figured I would just get on github, look for an interesting project, and would start working on it.
But it turns out, most of the projects I have found on github are just a single guy or a small group and they do not have a list of bugs anywhere for me to try to fix. Also, I don't know enough about the software to just start adding features.
How do you do it?
14 comments
[ 0.26 ms ] story [ 26.8 ms ] threadif your project is small, pick a feature you would like to do, fork it and get it working then email the owner.
if the project you want to work on is big, it will have a chat room, probably on freenode, join the room and the mailing list, ask for a few small bugs to fix (a lost of projects will have these specifically marked) so you get a grasp of the projects workflow, then you can be promoted to working on new things.
Back in 1999, I was a newbie on the local lug and was learning perl. There were people of all skill levels on the lug and one of the non-technical members asked how he could find out the type of web server running on a host.
I replied telling him how to telnet to port 80 and do a GET, but then realised that that was a bit to technical for him, so told him that if he waited 30 minutes, I'd write a script that would do it for him.
I got a chance to use my new found perlipc skills, and released my first GPLed application. The app grew over the next few months based on one-off patches that other people sent me, each for a need that they had.
Now, this was my first solo project. About a year later, I joined the "everybuddy" project. I was looking for an opensource instant messenger on linux, and found everybuddy. Downloaded it, built it and started using it. A couple of days later, I noticed a few bugs with the Yahoo! Messenger code, so I started debugging and fixed a few. I mailed in patches. I had to bug the developers a bit to get the patches accepted.
Finally I asked the project maintainer (Rob Lazzurs) who the owner of the Yahoo! code was so that I could mail that person directly. He replied immediately "as of now, you are". A few minutes later I had commit access and was a full developer on the project. A day later Yahoo! changed their authentication protocol and I had my hands full. 3 years later Yahoo! hired me.
The best way to get involved is to think about what annoys you when you use the computer. Do you find the notification system to be annoying? Do you wish your mail client had better filtering? Find something that annoys you, and then try and fix it. You don't even have to submit a patch your first time doing this. Just get the source code for the application, and take a look around. See if you can identify where the code is that does what you think should be approved. If it looks easy, take a stab at it, and test it out. If it looks difficult, file a bug report. Ask the developers if one of them is willing to mentor you on the bug. At this point, you'll get one of two responses:
1. They'll tell you no. A lot of projects have developers that won't have time, or won't want to deal with reviewing your unpolished code.
2. They'll tell you yes. Then you can be happy and work on an OSS project.
If you're looking for bugs/features that have mentors available, check out some of the projects on launchpad.net, especially ones associated with Ubuntu. There is a large community of developers there that have specifically signed up to mentor certain bugs.
I found out about the site when I was at the OSCON Open Source Convention, and saw a talk on the subject: http://www.oscon.com/oscon2010/public/schedule/detail/14066
Start by helping software projects that you already use. You will have personal insight as to where the bugs are.
There is actually Google I/O talk The Myth of Genius Programmer. Where Googlers (Brian Fitzpatrick, Ben Collins-Sussman) talks about when to join in a collaborative (OSS) project It could helpful. http://code.google.com/events/io/2009/sessions/MythGeniusPro...
For me I never really got "involved" into any open source project. Rather I had ideas floating around that I wanted to do. That's what got me to code this (basically a Python based server for a wireless SD card):
http://returnbooleantrue.blogspot.com/2009/04/eye-fi-standal...
I open sourced it because I don't have much time to support it. Best way is to find something you like and stick to it.
This is a web based, open source banking software designed for microloans - software for ending poverty. It needs and welcomes volunteers! Uses Java, Spring Framework, and has many developers all over the world. They'll help you get up to speed.