from Hacker News

Ask HN: How to Start Contributing to Open Source?

by gcz92 on 7/16/15, 11:02 PM with 2 comments

I have been a serious follower and user of a couple open source projects but have been extremely overwhelmed by the idea of contributing to the project. How do I start? How did you start? What should I follow to get more information about open source communities?
  • by viraptor on 7/16/15, 11:42 PM

    Where to start? Find a project that interests you, or one where you already reported some bug. Depending on your skills, it may be better to choose a project which doesn't have a huge codebase (quicker iterations possible), but does have more than one developer (you'll get quicker responses).

    How to start? Get as much information as possible about the project: what's the dev/review strategy (github pull requests / mailing list / review board / ...), do they have contribution guidelines, do you have to sign any forms, etc. Browse through existing issues - some projects label easy bugs as "entry level" or similar. They're a good way to get involved.

    Have a look at other contributions and find make sure you know what checks they go through. Make sure you're not wasting other developer's time. For example be sure that your new code passes all tests and adheres to the project coding guidelines. If it looks like it may need updated documentation, include updated documentation. If it looks like it may need extra explanation, make sure to include it in the patch.

    The only thing that's common in open source communities is that every one is completely different and has its own rules. :) (And that they're mostly based on free time contribution and mutual respect)

  • by informatimago on 7/16/15, 11:38 PM

    1- get the source, 2- read the source, 3- find the bug list (trac, github issues, launchpad, whatever the project uses), 4- search for an open bug that seems easy to correct, 5- correct the bug, 6- request a merge, or send a patch, 7- listen to comments and reviews about your patches, 8- repeat a certain number of times, 9- eventually ask for write permissions on the project repo, 10- continue correcting bugs and adding features, 11- write some documentation, 12- help newbies.