November 07, 2016

Baby’s First Open Source Pull Request

A beginner’s experience in contributing to open source

I’ve been programming for almost 10 years. I’ve built games, I’ve built apps, and I’ve been leading a software team for three years. Yet the one thing I’ve failed to do is contribute to an open source project.

Open source has seemed kind of daunting to me. I sometimes suffer from impostor syndrome, have a small fear of my code being judged by strangers, and I’ve read and listened to too many open source community horror stories of burnout and jerkfaces. This prevented me from I ever taking the plunge and contributing to any projects.

Now, not everyone needs to contribute to open source, and it’s ok if you don’t. But I wanted to, and just was either too afraid to or unaware of where to start. Even with all the projects with newbie friendly or good for beginners labels, I just never took the steps to get involved.

Let’s Git It Started

With a week away from my trip to PyCon Canada, I was dead-set on spending a day at the Python sprints, contributing in any way I could. I wanted a bit of practice, so when I saw a tweet from Ashley Williams looking for help on the NPM docs, I figured that was a good place to start.

Later that night I dove into the open issues, and found one that was perfect. It was labeled your-first-pr. How did they know!? It’s like it was literally made for me. Ok, moment of truth, bottom of the 9th, bases loaded, you’re the Cubs and you’re just about to win the World Series. (Thats all the baseball references I have in me, I hope they made sense.) My inner monologue on this issue went a little something like this:

The list of all docs pages is in the wrong order. Sweet, I know how to sort things, I can do sorting. I’m the king of sorting. Let’s freaking go sort some docs.

Alright it works. Hm… its a little messy let me clean this up. And oh, they’re using lodash but I’m not using it here, lemme change this part to use lodash. I think this is good? Is it? Well its good enough as far as I can tell. If there’s an issue thats what the PR comments are for. Pushtown, USA, here we come!

And that was that, the pull request went up and is waiting for a review. Wasn’t so bad was it?

Open For Review

Now that I have that shiny Pull Request badge on my boy-scouts belt, and it’s (as of writing) waiting for review, I’m amazed it took me this long to start contributing. It may have been a minor documentation update but that doesn’t lessen the impact of the contribution. If anything, taking on non-glamorous tasks is helpful for everyone. If they may not be as interesting or fun, less people will want to take the time on them, but someone needs to!

For anyone wanting to contribute to a project, but has never done so, here’s a few things to remember:

  1. Contributing is not as scary as it seems, and neither are project maintainers!

  2. Don’t feel like contributing to “lesser” or “simple” tasks like documentation isn’t as good or important as contributing major bug fixes to a core codebase or adding features. They can be a great way to get started.

  3. Follow community members, maintainers, and projects on Twitter and GitHub. I know I would have not gotten the spark to contribute to the NPM docs if I didn’t happen to follow Ashley on Twitter.

  4. Don’t be afraid to submit an imperfect Pull Request, and ask questions if you need help.

  5. Everyone starts somewhere, so start now!

Shout out to Shubheksha’s post on blogging about open source, which encouraged me to share my experience!