“You can remember the second and the third and the fourth time but there’s nothing like the first. It’s always there” – Lauren Bacall
If you are reading this article, you probably don't need me to tell you that open source projects are... kind of a big deal in the month of October.
At the beginning of October, I made a pact to make at least one contribution everyday on Github. However, that was hardly the biggest leap I made in October 2021 as I also entered the Open Source domain by contributing in a plethora of open source projects. Up until this point, I hadn’t participated in any open source project. My perfectionist nature and my phobia for having my work out there combined for a nervous Salim.
What if someone thinks I am a fraud and my code is trash? What if my pull requests and by extension, my contributions does not get merged (or gets ignored)?
All these and more made sure I never made that big leap to start contributing to Open Source projects. However, midway through October, I came across a beautiful thread on Hacktoberfest on Twitter. The tweet explained Hacktoberfest as a month-long celebration of open source software run by DigitalOcean. The thread further explained that every October for Hacktoberfest, thousands of developers come together to contribute to many worthwhile open source projects on GitHub. This month-long event has grown through the years and encourages new developers to begin contributing to open source. These contributions can be done in a variety of ways from preparing and sharing your project for collaboration to organizing an event to mentoring others to donating directly to open source projects to contributing to the betterment of a project via pull requests. As I was preparing to participate in this event for the first time this year, I found out a harsh truth about Hacktoberfest. Although most participants want to add quality contributions, there are some who are willing to add irrelevant, insignificant code or changes just to get a free t-shirt! However, my favourite thing about Hacktoberfest is the Hacktoberfest value #2 (Quantity is fun, quality is key) which implies that quality trumps quantity. A dogma I also live by.
As of the time of publication of this blog post, I have contributed to 15 projects (all in October), created 25 pull requests and raised 4 issues. But even more importantly, I have come to realize that Open Source projects are beautiful. The joy in having your pull request merged is second to none.
And even when the pull request is not merged (i.e. closed), an explanation is often offered as to why the pull request was closed and as such, one learns something new. Communication is such an integral part of the Open Source world that I feel it’s not talked about and emphasized enough. That my mistakes was explained to me made me feel special and like I was truly a member of the community. Although I was initiallly put off by the complexity of the projects, I soon realized that how much I could improve my programming skills by contributing to Open-source projects.
Usually, my contributions were usually done in a step-by-step fashion as shown below
- Determining which part of my solution is worth contributing.
- Studying the contribution guidelines of the target projects (A large chunk of pull requests are closed because they were not added in line with the contribution guidelines)
- Obtaining and building the project
- Extracting the relevant code fragments
- Adapting the code and integrating the desired changes
- Providing the required level of automated test cases and documentation
- Filing an issue
- Submitting the change
The most important steps, in my opinion are the first two as it is nearly impossible to add new functionality or extend existing features, if one has not earned a thorough understanding about the concepts and principles the project is based on. Contributing to open source projects is a lot of fun, though challenging at first. While in my own projects, I am in the position to act quickly in terms of design or architectural decisions, there are a lot more discussions in open source projects. Given that the best projects attracts the best people and one is hence getting in touch with strong decision makers and very talented developers, it might be hard to convince them of one's solutions. However, doing so successfully will gave me a much higher personal satisfaction than I may have imagined. And that satisfaction is what drove me through the month of October, 2021
Have you ever participated in Hacktoberfest? If no, I would have you know that it is a wonderful way to break into open source, so don't get discouraged by all the drama. Although I had a rocky start this Hacktoberfest, I feel more confident about approaching open source projects after this experience.
If so, what was your experience like? Do you have any questions about Hacktoberfest or open source in general? Leave a comment to get the conversation going.