I’ve been working as a developer for a long time now. However, I’ve avoided contributing to open source projects. I guess the main reason was that I was somehow uneasy with the kind of reviews my contribution would receive. What if my contribution is met by a review similar to the review by Linus Torvalds in this article?
As I mentioned in my Hello World post, I read Scott Hanselman’s blog. Recently I’ve been going through some old posts of his. I came across this post from 2014 and the message got through to me. I decided to take the plunge and to contribute to an open source project. This article describes my journey on submitting my first contribution to an open source project.
Finding a Project
The first step was obviously to try to find a project or issue to contribute to. I was unsure as to how to proceed. Luckily there are sites meant to help you find projects which need assistance, such as firstimersonly.com and up-for-grabs.net.
I opened up-for-grabs.net and started going through the list and trying to find something that interests me. Somehow, I ended up in the GitHub repository for the Humanizer library. I had heard about this library before but I’ve never actually used it. Nothing struck me as particularly
Now, according to Wikipedia, Maltese is only spoken by just half a million people. Luckily for me the subset of programmers who use C#, have heard about the Humanizer library and are willing to contribute to open source projects seems to be 1. This meant that I could go ahead with my plan.
Contributing to the Project
Read the Contributing Instructions
I went through the Contributing.md document so that I would ensure I would follow the rules in my submission. I then browsed to the First Contributions page on GitHub for additional guidance. I forked the Humanizer repository and cloned it onto my machine.
I created a feature branch, compiled the project and ran the unit tests. I then started to add support for the Maltese language. This post is not meant to be an instruction manual on how to use git or on development on the Humanizer library, so I will skip some of the details.
Feelings During Development
I initially underestimated the amount of work that I had to do to include support for the Maltese language. I also got stuck, as my initial code was not working at all. It was at this point that I realised that there was a step missing in the documentation. I decided to follow the Boy Scout Rule (leave the playground cleaner than you found it) and updated the documentation so that the next developer would not encounter the same issue as I had.
At one point I realised that I was tackling one of the tasks in an incorrect way. I decided to scrap the code I had written and to start again from scratch. I started worrying a bit about the code review process. However, I decided that I’m going to go ahead and rein in my anxiety.
Submitting the Pull Request and Code Review
In the end, I was satisfied with the code that I had written and that all the unit tests were passing. I checked whether the original repository had any new changes which needed to be merged into my repository. There were
The Humanizer repository is setup to do various checks via continuous integration. I crossed my fingers and hoped that I hadn’t messed up anything. The checks passed which meant that I now had to wait for the dreaded review. I had stayed up late to finish the code, so I went to sleep not knowing when the pull request will be reviewed.
As soon as I woke up the next morning, I opened my inbox and found a short e-mail from the reviewer which said “Thank you! I’ll get this pushed to
Having been wary of contributing to open source projects for a long time, my first experience in contributing to the Humanizer project surpassed all my expectations. The best thing about the whole experience is the exhilaration you feel when you realise that your contribution is appreciated by someone you’ve never met before.
I will keep on taking the plunge and will contribute to more open source projects. I believe this will facilitate my personal growth. My work experience so far has shown me that you grow the most when you venture outside your comfort zone and collaborate with other people.
Have you been wary of contributing to open source projects? Push yourself, take the plunge.