There's always a lot to get excited about in October: sweater weather, pumpkin spice, Halloween costumes, and for the last three years, Hacktoberfest.
Hacktoberfest is a "month-long celebration of open source software." It's organized by DigitalOcean and DEV and open to anyone. In my experience, Hacktoberfest is an easy way for users of open source to become contributors to open source. It's also celebratory and community-oriented and always includes some beautifully done artwork, which is later turned into stickers.
— Rosa (@rosapolis) January 10, 2017
To participate, just register for the event and submit four qualifying pull requests to public GitHub repositories between now and October 31; the first 50,000 people who do both of those things will receive a free t-shirt.
Like so many others, I'm more of a user than a contributor to open source. I haven't maintained a project in over a year, and Hacktoberfest gives me a nice excuse to casually contribute again without the pressure that can come with a maintainer status. I find it less intimidating than a one-off contribution throughout the year since the Hacktoberfest label implies a "hey, come here and contribute" attitude.
I've built up a few habits over the years that have served me well as an open source contributor. I hope they help you, also, whether you're a beginner and first-time Hacktoberfest participant or a regular contributor looking for ways to improve.
1. Start with open source you use every day
Open source is so pervasive that it's (a little too) easy to forget that we're dependent on it every day. Start there, with the things you rely on the most. For example, I'm using Tusk, an open source wrapper around Evernote, to keep track of everything. I launch Tusk using Albert, a great MIT-licensed app launcher. Both of these are prime targets for me to contribute to during Hacktoberfest. I also installed these using Homebrew, which is the best package manager for Mac and recently started supporting Linux.
So I'll go to each of those GitHub repositories and do a search for #Hacktoberfest in hopes of finding an open issue I can work on.
2. Explore based on your interests
If you're looking for a project to contribute to, there is a vast world of #Hacktoberfest-tagged projects across the GitHub ecosystem. Digital Ocean provides a beautiful way to explore these projects on its Hacktoberfest page; just scroll midway down the page to see who is looking for help. You can also search by programming languages you know (or want to work on).
Sometimes, I go right to the source to find a contribution I'd like to make. For instance, I'm interested in the concept of quantified self (or aggregating personal usage data to learn about myself), and by searching, I came across the qs_ledger project.
When exploring something new, I make a point of starting with an open Issue and tagging its owner to make sure they see the idea and approve of the support before creating a pull request (PR) for it. But if there's a #Hacktoberfest label on it already, you can jump into the Issue and add a comment.
It's a good idea to start with an issue to ensure whatever you want to fix will be welcomed as a pull request and eventually merged. Not all projects are ready to accept new contributors.
Some projects use the concept of "claiming" an issue and will label it as claimed if someone is working on it. Many do not, but I still comment with something like, "I'm working on this now" or "I'm working on a PR this week" to gently claim the issue.
I didn't know until this year that there is a project called pull request roulette that will serve up some new ideas for you to contribute to.
3. Encourage projects to participate in Hacktoberfest
Many maintainers haven't heard of Hacktoberfest or gotten to tagging issues with the #Hacktoberfest label. I enjoy sprinkling the goodwill of random contribution by recommending they do
That's a win-win scenario: once the maintainer gets on the Hacktoberfest bandwagon, I can earn PRs as a participant (woot, internet points). In addition, they will get an army of people like me looking to help out.
4. Use and improve documentation
The lightest lift for contributing can be doing what we do naturally: using open source projects.
Given how fast software changes, documentation is almost inevitably out of date. My most tried-and-true method of showing up for open source projects is to use a project and open a PR to fix the minor issues that come up in the docs. That could be fixing an incorrect or missing installation instruction, updating a tutorial, or adding another example or resource to the guides. It goes a long way to have so many eyes on the most important part of project adoption. Here's an example of what that can look like.
5. Skip the code and host an event
Fortunately, the effort to get this off the ground will be light, and I get to do what I love most: connecting with my local community.
Contribute where you can
Hacktoberfest is a brilliant reason to participate in open source software. Come as you are: If you know enough to fix up Python syntax, go for it. If you're learning Go, use Hacktoberfest as a reason to apply some of that knowledge to those in need. If you've yet to pick up a language, but you're working on Git skills, learn enough Markdown to help with documentation, as every project needs more documentation. Thank you to the event sponsors for making this fun!