trevmex's tumblings

JavaScripter, Rubyist, Functional Programmer, Agile Practitioner.

How to get started in Open Source Software

Jim (part of RadientCMS core team)

Try to solve a problem that bugs you.

  • When you are ‘fixing’ a problem you see in another project, often the maintainer will not agree with your change.
  • Alternatively, if you are a core member, testing and commiting pull requests can be a pain.
  • …or you, as the maintainer, might not agree with the way others write their code.
  • On the other hand, if you create an improvement, tell people about it, it might be useful.

A good thing to do when you do a pull request (in Github.com) is to ping the author when you fix something.

Another way to make your pull make sense to the author of a project is to have a detailed commit message, explain what you are doing.

Communication is key:

  • If the project has an IRC channel, drop in there to chat.
  • If there is an ML, join it.

The more you talk to the author, the more refined your commits can be. Your change might not even be needed if there is another way of doing what you want to do.

Don’t be afraid to contact the maintainer.

The maintainer is (probably) going to be the most enthusiastic developer on the project. More often than not, they will be willing to talk and help.

Another good way of taking responsibility in a project is to look at what is happening in a project and merge all the different branches together, then tell the maintainer. That can be really useful for understanding a project.

It is a good idea to fork the project you want to work on to make sure that your changes will work for you.

Gemcutter is a good gem to contribute to. There are lots of things to do, an active community, and it is easy to get your work committed.

Look at the commit log of a project. If you see that a lot of people’s commits are being pulled in frequently, then you have a good chance that your commits will be pulled.

What about simple points of entry:

  • Write documentation. There is ALWAYS a need for documentation.
  • Few projects have 100% test coverage. Write a test for it.

Basically, if you show care about the project, and want to add to the project, the maintainer will (likely) enjoy your help.

How do you make your commits pretty so that the maintainer will want your code?

  • You can fork the project, do many little commits, and when you are ready, merge your commits together and pull request on that.
  • A good commit does one thing (or one related set of things)
  • And the KEY to a commit being pulled: WRITE THE TESTS FOR YOUR COMMITS!
  • Few maintainers will pull commits that are not well-tested.

Take ownership of the project.

The good practices for contributing to an OSS project:

  1. Tackle a problem that bugs you.
  2. Write tests for what you fix.
  3. Describe in detail what you changed and why in your commit message.
  4. Communicate with the maintainer about what you are doing.
  5. Get involved in the community through IRC or email to know what changes are happening.
  6. Get passionate!