Challenges help developers get started with other projects

No readers like this yet.

I took part in the 24 Pull Requests challenge to submit 24 pull requests to open source projects on GitHub during Advent last year, i.e., in the first 24 days of December.

I've had my own GitHub account since March 2014, where I host all the code for my personal open source projects dating back to 2004 (previously, I was using SourceForge). My first-ever project was a blogging script and simple content management system that used PHP and MySQL.

Until now, however, I’d never had the confidence to contribute to anyone else’s projects, even though I was interested in doing so. I feared I wouldn’t be good enough to contribute, that it would be too difficult, and that it would take up too much of my time to do it justice, especially considering that I work full-time and have a busy social life.

But when I heard about the 24 Pull Requests challenge via Twitter, I checked out the website and decided that this would be my ideal opportunity to get started on contributing to open source projects. Although I was still feeling daunted by the size of the challenge, I decided to sign up straight away, as I knew it would be a good opportunity and I had nothing to lose. I knew that in order to succeed at the challenge, I’d need to submit an average of one pull request per day.

In the run-up to December, I tried searching for projects I could contribute to on GitHub, and I also consulted the list of recommended projects on the 24 Pull Requests website itself. I looked in the issues section of each repository to see if there were any easy bugs I could fix, but I couldn’t find any that I felt confident about solving.

At that point, I was wondering if I’d even manage to submit one pull request throughout the 24 days!

Then I came to the realisation that not every pull request has to be a major change—even small fixes and contributing to documentation could count. In fact, I made my first pull request a couple of days before the contest actually started. Although I knew it wouldn’t count towards the 24 pull requests, I thought it would be useful to learn how the process works—a dry run to build my confidence.

There are 3 main steps involved in submitting a pull request: fork, commit, and the pull request. My first pull request was an addition to the readme documentation for the 24 Pull Requests project itself.

I wrote instructions on how to install the PostgreSQL database on Linux and Windows (I’m familiar with both operating systems). The pull request was accepted by Andrew Nesbitt, the organiser of 24 Pull Requests, just a few hours later. I was so pleased—my first-ever pull request had been accepted! It felt like a big milestone for me, and also gave me more confidence for the days ahead.

One of my favourite pull requests involved adjusting the CSS for a technology blog called dev-human. I improved the appearance of the logo and header when the site is viewed on mobile devices (it's a responsive website using media queries). Some of my other pull requests were for more minor issue such as typos, grammar, and formatting.

Though there were days when I struggled to find any suitable projects, I’m pleased to say that I managed to keep up with the goal of completing at least one pull request per day.

I found that some pull requests were merged (accepted into the upstream project) almost immediately, which is a good thing, but others are still languishing unaccepted. Hopefully it just means that the project maintainers haven’t had a chance to review them yet, but it could mean that these particular projects have been abandoned.

Either way, every pull request still counts towards the 24, whether it’s accepted by the project maintainer or not. None of my pull requests were rejected, so that’s a plus!

Overall, I really enjoyed taking part in the challenge, and I now feel much more confident about contributing to open source projects. Hopefully I’ll be able to continue contributing to some of the interesting projects I discovered last month. The 24 Pull Requests challenge has been taking place for the last couple of years and is now an annual event, so if you’re thinking of taking part in December this year, I’d definitely recommend it.

Originally from Victoria Holland's personal blog. Republished here with permission and under Creative Commons.

Beginners to
Open Source

A collection of articles about how to get started in open source.

User profile image.
I am a Java web developer from Norwich, England, with 9 years’ experience working in IT. I have experience in a wide range of technologies, both client-side and server-side. I am very interested in open source technologies.

1 Comment

That's a pretty big step to make if you've never done a pull request before. Good job!

But I want to point out that beginners don't need any kind of a special challenge to make pull requests. I keep saying that actually contributing to open source software is just a few steps long process:

1. Start using some open source program on a regular basis.
2. When you get familiar enough with how software works, switch to the latest (beta, nightly, daily, whatever) version.
3. Take a look at their repository and see the ways you can contribute to them.
4. Start contributing.

By following these short steps, I managed to merge my commits with projects such as reddit, elementary OS, Tor Browser, TextSecure, RedPhone and so on.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.