For the last four years, DigitalOcean and GitHub have spearheaded Hacktoberfest, a month-long open source initiative that encourages people of all experience levels to contribute to open source projects. The premise is straightforward: open five pull requests (PRs) in any GitHub-hosted open source project and earn a limited-edition Hacktoberfest T-shirt.
People have credited Hacktoberfest for getting them into open source – in fact, many Hacktoberfest PRs created by first time contributors. Others with previous open source experience have used Hacktoberfest as a way of setting aside time to revisit projects they haven’t contributed to in a while.
At its core, Hacktoberfest is about giving back to the projects that help us build countless libraries, services, and frameworks that we use to run our software. That’s why we’re excited to be joining Hacktoberfest this year, recognizing anyone who submits a pull request to one of our open source projects with a limited-edition T-shirt by the one and only Ashley McNamara. (That right, you can get TWO T-shirts if you submit five PRs and if one is in a Microsoft repo). You can get more details on the Microsoft contest here.
To help you get the most from Hacktoberfest, below are my tips for how contributors, from experienced maintainers to open source newbies, can make Hacktoberfest meaningful and helpful for everyone.
If you’re thinking about participating in Hacktoberfest (I know I am!), start by doing research. The official Hacktoberfest website has typically highlighted suggested projects in the past, but you can contribute to any open source project that’s on GitHub. Find projects either by looking for issues labeled “Hacktoberfest” or by perusing projects listed on GitHub’s Explore page.
Once you have an idea of what project(s) you’d like to contribute to, look at a project’s “contributing guidelines.” These guidelines will give you all the information you need to set up your environment, what you need to include in a PR, and more.
And more importantly, look at the project’s issue tracker. What bugs have people reported, and what features have been requested? Is there anything you’ve noticed that hasn’t been reported or requested yet? If you find something listed in the issue tracker you’d like to work on, let people know that you’d like to start working on it and submit a PR to address the problem. Or submit a PR for something that hasn’t been reported and include a detailed explanation that outlines what the problem is and how your PR solves it.
Once you open a PR, don’t forget about it! Open a PR with the goal of it solving a problem and eventually getting the solution merged into the project. If you notice a test in your PR is failing, troubleshoot it, and if a maintainer asks you to make adjustments to the PR, address them.
These conversations are a part of the open source contribution experience and are essential, as they help project maintainers keep the integrity of the project. In other words, the dialogue keeps the projects people use—intact. Set up GitHub notifications and watch out for updates about any of your open PRs.
Having empathy for project maintainers
Many of the projects we use are maintained by individual volunteers who balance their open source work with other commitments, and much of this open source work is unpaid. Hacktoberfest is an exciting time, but it can also be an overwhelming time for many project maintainers, who see a huge uptick in issues and PRs that need to be reviewed. The best approach is to ask a maintainer how you can help and to be patient.
Hacktoberfest is a great time to drum up excitement for your projects by getting external contributors on board. If you’d like to promote your project and get some contributions, here are a few things to keep in mind:
- Be sure to highlight important information about your project in the README. This includes a project description, a project license, a code of conduct and a link to your contributor guidelines.
- Consider creating issue templates. If your issue tracker contains a mix of support questions, bug reports, feature requests, and other miscellaneous items, using issue templates can help you better triage your issues (especially if you expect an increase in activity during Hacktoberfest).
- Add descriptive labels to issues. Adding labels provides additional context to your issues and it’s a way of helping potential contributors identify what issues they can start working on (and which issues are already being addressed by someone else).
There are many other ways that you as a maintainer can and should set expectations with contributors. Check out the “best practices for maintainers” link below for more information.
Hacktoberfest is many things to many people. Whatever your reasons for participating in Hacktoberfest, being mindful of your contributions and feeling empathy with open source projects and the communities of people who keep our projects running is always a laudable goal.
Follow us at @OpenAtMicrosoft for Hacktoberfest updates. You can get started with one of our open source projects here.
Questions or feedback? Let us know in the comments below.