Everybody struggles

Attempting my first contribution to an open source project

My outreachy blog prompt says I should write about an open source term that was difficult to grasp at first, in line with making open source newbies feel more comfortable with their struggle. I could not think of any except, "LGTM" which does not have any interesting story around it. I actually just googled the term to find out what it means. It means, "looks good to me".

So in that same spirit, I decided to write a blog journaling my first open-source contribution.

My first open-source contribution was to the SciPy project. SciPy is a free and open-source Python library used for scientific computing and technical computing.

I moved through the project repo for a while. Everything seemed so strange to me. I had already watched a lot of videos on contributing to open source. Everyone made it seem so easy. Like you could just contribute the same way you could decide to just breathe.

That was not the case for me. Especially as I resolved that I was only going to contribute code.

Fixing typos in documentation is a great way to start!

Sure, contributing to documentation is a great way to help you get started in your open-source journey. It could also help you get familiar with the process of submitting pull or merge requests for contribution. I would encourage anyone who wants to get a hang of a new project or how to submit a PR (pull request) to get started there.

In my case, I decided to only contribute code because I saw open source as a means to improve as a developer. I needed to kill two birds with one stone by challenging myself to contribute code.

I went through the "good first issue" in the project's repo and though it was meant for newbies, I had ZERO ideas about how to handle it.

This was my first contribution!

The first step I took to contribute to this was setting up the project on my system. This was a hassle as I was met with errors while running some commands. Going into open source, you would find out that using a windows environment could be a bit of a drawback and that is what I was experiencing.

Deciphering how to contribute to the issue, took days of moving through the codebase and rereading the comments on the issue to understand what it is about.

I need to understand the entire codebase to make my contribution

During that time, I felt things were difficult because I did not understand how the entire codebase worked so I was a bit discouraged because that seemed like a gruesome task. While attending one of the SciPy community meetings like I always did, one of the maintainers quickly cleared that notion, he said that even he did not understand how the entire codebase works. So that got me moving in my journey.

Feel free to ask any questions

Most open-source communities have values centered around being welcoming and being a safe space for everyone. When I took on that issue, I was given the invitation to ask questions if I needed anything. What I would like readers to note here is that they should always attempt to carry out their own research first so that it would be easier to ask questions that the maintainers can quickly answer.

Note, most people working in open source could just be volunteers. They could have other full time engagements, so their response might not always be swift.

I had a lot of back and forth with my PR reviewer because I could not run tests on my system and fix CI errors. I am grateful he was patient with me throughout the process. He eventually pulled my branch locally and fixed the CI errors himself. Lool.

Yay, I made my first open-source contribution!

It was exciting to go from this:

To this:

To be frank with you, contributing code to a large codebase might not be the easiest thing. In Nigerian student's parlance, aluta continua. I still struggle presently. The only difference between the newbie me and my current self is that I know that the struggle is a part of the process. So I leave you my dear readers with this:

Embrace the struggle, break stuff, ask stupid questions but what you must not do is give up.

I hope I adhere to this advice as well. As things could get a bit too impossible.

Till next time, dear ones!