Recently, I started to contribute more to open source projects I use and like. When I started to contribute at all, I did so, with the most obvious thing for me: Bug reports. 🙂 This can be particularly useful, since the bug reports that I write for my projects, stay behind closed doors. – Like it or not, companies producing commercial software very often don’t fancy public bug reports. That’s a long story for another time…
Here are some tips:
- Start small. Probably smaller than that.
You can start on documentation. ➙ It can be unclear or contain typos.
My smallest contribution so far, was fixing a typo in the Cucumber documentation.
The steps to deliver it were large, compared to the fix itself:
- Fork a repository
- Create a branch on the fork
- Fix the typo
- Create a pull request
- Get it accepted
This seems like a lot, just to fix a typo.
However, I think the learning experience was worth it.
- Learn about the two most used models used in open source projects, the “Fork and Pull Model” and the “Shared Repository Model”.
Both are explained in the GitHub docs about “collaborative development models“.
- Check out Marko Denic on Twitter. He wrote “Make Your First Open Source Contribution” which explains to to get started on GitHub.
You can contribute to his site https://tech-blogs.dev by adding you own blog, if you have one. The project is hosted on GitHub.
- Start in a friendly & helpful community
I find this really important: When you have a safe place to ask all the question you may have, and can expect a friendly answer, that will help actually asking those questions. It certainly helped me, asking about which development model is used, how big or small a pull request should be, etc.
- Create your own project and make it open source
Again: You can start really small. My smallest GitHub repository is probably https://github.com/s2k/seasidetestings-iterm-colours. It’s just only file that can be used as a colour preset in iTerm2 and some documentation how to load the file in iTerm.
- If you find that something can be improved or isn’t working as expected, provide a bug report. These are important contributions to any software project: If the people writing the software don’t know that something’s wrong with it, they can’t fix it.
For example I wrote https://github.com/fakefs/fakefs/issues/224, when I noticed that this Rubygem didn’t worked the way I expected.
Since I knew how to write the RSpec to check this, I did – and it probably helped to get it fixed.