How I made my First Open-Source Contribution.


Introduction

Many of us want to contribute to open-source and be part of this vibrant community. We sit down, determined to find a place to start; but after hours of mindless search, we get overwhelmed. We finally give up and end up watching that cat video instead. I was no different.

This is the story of how I overcame this initial barrier and contributed to an open-source project that has over 8.6 million downloads on NuGet.

1. Knowing Your Strengths

Too often we get dazzled by the next coolest programming language or the ones that power some of the biggest open-source projects. Now, am not saying we cannot try those, we can and we should. But using what we are already good at, gives us more confidence and we have a higher chance of success. For me, it was easy. I was good at writing code in C#, so that is what I picked.

2. Finding a Project

The best projects to start contributing to are the ones that we use or may have used. In my case, I have been using “NUnit” (unit testing framework) for a very long time and it was an easy place to start. If you do not have anything in mind, you could always search for popular open-source projects in your tech space and find something that interests you.

3. Choosing a First Issue

In most projects, there are issues or features labeled as “good-first-issue” or something similar. Filter them out and there is a good chance that you will find something that interests you. It is important to remember that not all contributions require coding. You could choose to help out in the documentation, build, versioning and tons of other stuff as well. For example, my first issue was to rework all the package (NuGet, Chocolatey, Installer etc. ) configs and change the way the NUnit icon is stored and rendered. The main goal here should be to get into the community and to understand the project. Once you find an issue that you like, you can just comment that you would like to work on it. More often than not, the maintainers would be happy to welcome you and assign the issue in your name.

4. The Community Help

Before we start contributing, it is important to go through the project documentation and contribution guidelines. I did the same. I had lots of questions as well and all of them were promptly answered by the community. You could ask questions by either commenting on the issue or in chat rooms (in NUnit we use Gitter). You will be surprised on how welcoming and helpful the open-source community is.

5. Pull Request and the Iteration

After I was happy with my changes, I created a pull request and the process of countless iterations began. Finally, when everything looked good, the PR was merged by the maintainer of the project who congratulated me on my first open-source contribution. Please remember that creating a pull request does not guarantee a contribution. The maintainers may choose not to merge your PR or suggest changes.

6. The Euphoria

The sense of satisfaction that comes from contributing to an open-source project is immense and I would suggest every programmer give a go at it. Personally, it gives me deep satisfaction when I search for “NUnit-Console” NuGet package and realize that the NUnit icon visible there was my first open-source contribution. It gave me confidence and I went on to become an active member of the NUnit community, adding more contributions. The euphoria that comes from realizing that your work is being used by 8.6 million people around the world is immense and it all started with that first contribution.


Leaving a link to my very first pull request for reference https://github.com/nunit/nunit-console/pull/746