A brief history of my first OSS contribution
It was a cold summer Monday morning, the first day of a new sprint, and one of my tickets stated Reseach ways to standardise GitHub usage in the development team. The reasoning behind this ticket should be pretty obvious and are far behind this blog post, but I will make sure I talk about them in a future one.
Anyways, since we use Jira to track sprints and ticket, I figured that something that it was worth investigating was Smart Commits. GitHub and Jira are pretty well integrated, and these special commits allow performing Jira actions without the need to look at its ugly and incomprehensible UI, without ever leaving your command line when you are making a commit.
I felt that integrating this kind of standard would be a nice starting point for creating an internal standard respected by everyone inside the company. There was only one single problem: a pretty steep learning curve. In order to create Jira Smart commit messages you need to follow a specific syntax and you need to remember each and every part of it correctly.
This was not something that I wanted everyone else to have to learn because I thought it would get in the way and reduce by at least an order of magnitude speed of adaption.
Enter Commitzen and cz-jira-smart-commit: a simple CLI that, via simple questions, generates complete and fully functional Jira Smart Commits. I was super enthusiastic when I first found it and I was sure that it was the perfect solution I was looking for. I immediately downloaded the two packages on my laptop and started trying them out just to find out, with much sadness, that the main package (Commitzen) had been updated to a new version that broke compatibility of cz-jira-smart-commit, thus the latter was not properly working anymore.
And so I fixed, the problem (commit), and, while I was working on it, I created a simple shell script to install and setup the system so that my colleagues could just run one simple file and have everything set up for them. I helped everyone set up my renewed system and, then, I kinda forgot about it.
Fast forward a couple of weeks, I opened my GitHub profile and I saw that one of my latest edited public repos was indeed cz-ira-smart-commit and I thought: “Wait, this is an open source library which I somehow manage to fix, I should probably open a Pull Request!”; and so I did: went over to my repo and open a pull request.
After a little less than an hour I received a comment by one of the maintainers of the project requesting a couple of small changes and, after these small fixes, my first open source Pull Request was merged.
Something I thought I would never be ready to achieve had been done in little less than an hour and in a language that is as far away from my comfort zone as it gets.
Moral of the story here is, just get out there: many people are in the same position as I was a couple of weeks ago, where they want to contribute to open source projects and they want to help out, but are often scared because they have never done it and they don’t know where to start, it is much simpler than you think! Just start from the tools you use every day: it is very likely that you are using some open source tool in your everyday workflow, go on GitHub, read around the issues other people are having or look into a particular issue you might be having and fix it! It’s going to be easier than you think and the feeling you will get when you get your first pull request merged is like no other in this field!
So keep on hacking, and keep on using and contributing to open source software, it is the best way to keep advancing our fascinating and incredible industry, and it will make you grow as a software developer and as a human being!