Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do I get involved in open source projects?
18 points by gfr on Aug 3, 2010 | hide | past | favorite | 14 comments
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?




Ok, this is how I started.

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.


Do you think you yahoo-part involvement in the project made a significant 'bonus' when you've got hired by Yahoo ?


that's how I got to know many Yahoo! engineers. I'd report back every time I found something that would crash the official client.


Most OSS contributions come out of scratching your own itch. Pick a project you're actively using. You'll discover features you wish it had, or bugs that creep up. Add the feature, fix the bug, add some documentation for a feature you found confusing. Soon enough this will become just the way you interact with the OSS community. Welcome! :)


Github is a bit difficult to find projects on. All of the super active projects are flooded with developers, and everything else is just a single developer doing his own thing.

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.


Start with issue tracker / user list of your favourite OSS project. If the project has more comitters and stable its very unlikely you will able to contribute. So choosing the right project also matters. Most contribution to opensource came because of personal needs so IMO if you use your project extensively its likely you will be able to contribute back.

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...


Why do you want to get involved in open source projects?

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.


Check out http://openhatch.org/. Its purpose is to make it easy for people to get involved in open source projects by identifying "bite-sized bigs" that are good for a newcomer to work on, among other things.

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


http://mifos.org IRC: #mifos

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.


There are still a lot of projects with web sites (or on SourceForge), bug trackers, and mailing lists. Pick something you can do now (bug submissions, helping on mailing lists) and branch out (patches, etc) as time allows. Projects are always looking for help.


Similar thread: http://news.ycombinator.com/item?id=1518619

Start by helping software projects that you already use. You will have personal insight as to where the bugs are.


A friend of mine recently wrote a blogpost about this, might be helpful: http://leftontheweb.com/message/Contributing_to_Open_Source :)


A great way to get started is by offering to port and package something to a different platform, or add an api/wrapper for another language. Most single developer/small group projects would be happy to have the help.


what open source software do you use? think of something you use and would like to improve as opposed to just working on some random open source project.

if 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: