William's Blog

Thoughts about Things


Project maintained by WLaney Hosted on GitHub Pages — Theme by mattgraham

Contributing to Contribute

08 Sept 2018

I had wanted to contribute to an open source project for a long time. Every few months it would get lodged in my head as something I should do, and I would start scouring the internet for a good place to start. These attempts inevitably ended in failure. My main languages were R and MATLAB, which are not top choices in the open source community. Then I got a lot better at Python for work and I felt it was finally my time.

I went back to the sites argating good projects for beginners. I started digging through them. I knew I wanted. I wanted to actually contribute code that did something. Not update docs. Not add to a project that existed to teach people how to contribute. I wanted something easy though, something I could do quickly. So low hanging fruit, but that was still real. I wanted it on a project that I understood what it did and why people use it.

Eventually I found it. A small statistics and machine learning project written in Python called mlextend. In the issues was the perfect thing for me, one of the functions outputted in a data type that was annoying to integrate into other functions. The project owner wanted to just change it for convenience. It was a one or two line change but actually helped out and made the whole thing nicer to use.

I went to work on it, I tried to find the right one line to change but I couldn’t do it, so I put together a hack and opened the pull request. The project mainterner kindly told me what I did was a hack and how to do it correctly. I went back and did it right. I added to the pull request with good code, but typos in my comments. Again the project mantaner politely pointed this out and sent me back. I fixed it again, apologies for my carelessness, and got merged in.

It was not the most trimpunet pull request. I did not look great needing to add corrections twice for a one line code change. The main mainter also merged in an update to what I did a day latter to do it just a little better. Still I was in the door, I started looking for my next contribution. I found a feature to add, two new functions that should be added to the project. I decided I would comment on the issue the next day offering to get to work on it.

Then I didn’t.

It’s been months since then, I haven’t looked at that project again. I kept meaning to, but it just never happened. The issue is that I just didn’t have skin in the game. I wanted to contribute out of lofty ideas of giving back to the open source community. I wanted to contribute out of what I felt it meant to be a real software developer. I wanted to contribute so I could say that I am the type of person who contributes to open source projects.

At the end of the day though those are all misguided reasons. The reason to contribute is because you have something to add. You should contribute when you see a way to improve a tool use every day. You can try to contribute for the sake of contributing but without really understanding what you’re contributing to you can only add so much value. That was my mistake. Even though I had gained the skills to contribute, I still did not have the knowledge to really do so, or reasons to stick with it.

Hopefully in the future I will find a project that I can help with, but in the meantime I’m going to stop going out and trying to contribute just contribute.