5

I would like to know if someone could explain to me how to go about working on an open source project. I know that you can use git and other types of programs to commit code, but is there some sort of process in which to officially begin to add to a project.

Also, how do open source projects guard against crappy code commits or bugs

9
  • 4
    I'd suggest splitting this question out in two separate questions. I think the latter already has an answer somewhere, but I can't find it right now.
    – Martijn
    Jun 28, 2015 at 7:20
  • This seems a bit broad, maybe it would be best as Community Wiki?
    – overactor
    Jun 28, 2015 at 10:07
  • 1
    @overactor since it's broad due to containing sub-questions, I'd recommend splitting them out into separate question posts first, and then the community can decide which are on topic and which to close/modify. Jun 28, 2015 at 14:10
  • 1
    Since the majority of the existing answer addresses the first question, perhaps it would be best to remove the second paragraph. The second paragraph can then be posted as a separate question if it isn't a duplicate. Jun 28, 2015 at 14:13
  • 1
    The second part is a duplicate of opensource.stackexchange.com/questions/183/… by the way
    – Martijn
    Jun 28, 2015 at 17:22

1 Answer 1

6

Answer to your first question, getting involved with an open source software is as easy as looking at the About section of your favorite software.

There are loads and loads of open source software around and as a FOSS newbie, it's easy to get confused as to which one to pick and start working with. I'd suggest a software that you really care about and use everyday. Once you've done that, either look in the about section of that particular software or just Google, How do I contribute to xyz, with xyz being the name of the software.

Next, you need to find a channel through which the community maintaining the software communicates through. In general, these channels are IRC, mailing lists or sometimes even Gitter. I've also seen a couple of communities that use chat.stackexchange to communicate.

Once you're done finding the channel, go and Hello World!. Just go to their comm channel and say that you've been using software xyz for a while and you think you can contribute, and that you'd like some help getting started. With the exception of a few people, most will help you personally, solving your doubts and giving you the right links whenever you need.

The links given by the community people will have one or more of the following:

  • A getting started manual
  • A link to their github/git/other version control page
  • A link to their list of tools
  • A link to their bugs page/review page/issues page

Read the manual completely if possible, it'll solve most of your doubts. Download their codebase, read the README, try fiddling with the codebase, learn how to compile it. If you screw up, delete and re-download.
Download their tools, install them, see how they work.
Look for basic bugs/ask for basic bugs on comm channel.

Once you've solved your first few bugs, you'll start knowing the codebase better and you can go for bigger bugs/wishlist-items. That's it, now you're a contributor.


Now your second question. Most organisations have rigid build tests/review systems which prevent against crappy code being pushed. And even if some bad code gets into deployment, affecting the software, the users come back and report to the organisation, and you can be sure that the bad code is removed within a short period, which is why open source is awesome!

Note: This is not a generalization. These are the experiences of me and my colleagues when we started off with Open Source.

1
  • Very good and very informative. Thanks a lot for your answer!!
    – KingJames
    Jul 2, 2015 at 3:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.