Every October for Hacktoberfest, thousands of developers come together to contribute to many worthwhile open source projects on GitHub. This month-long event has grown through the years and encourages new developers to begin contributing to open source. But with its growth, the event got a bit shaken up which caused some necessary changes.
As I was preparing to participate in this event for the first time, I found out a harsh truth about Hacktoberfest. Although most participants want to add quality contributions, there are some who are willing to add irrelevant, insignificant code or changes just to get a free t-shirt!
The spam pull requests were coming in immediately for some projects, and maintainers were fed up with the nonsense. The problem was fixed by Digital Ocean making this an opt-in event where maintainers had to add the Hacktoberfest label to each project if they wanted to participate and spam pull requests could be labeled as invalid to not count towards the 4 pull request requirement. This seemed to help reduce the spam, but there is a bigger issue with breaking into open source.
For newbies, it can be an overwhelming process to learn what to do and find decent projects to contribute to. Hacktoberfest is a wonderful way to break into open source, so don't get discouraged by all the drama. I'd like to share what I learned after I completed the Hacktoberfest challenge so that you can successfully begin making open source contributions as well.
GitHub has a way you can find repositories by going to the Github explore page. You can find repos by topic or collections based on your interest. You can also subscribe to get a list of repos on a regular basis.
GitHub's open source guide can also help you find projects to work on. You'll find a list of links to help you focus on finding a good project as well as a checklist when trying to decide which ones might be a good fit for you.
Although helpful, the problem with these links is that there are tons of repositories to sift through and it can be time-consuming to look through so many different options. While learning about open source when I was participating in Hacktoberfest, I realized that you don't have to go through this alone.
Are any of the developers you know trying to also get into open source? It would be of value to ask around through social media, Slack groups, and even Discord servers to see if others are interested. It doesn't hurt to reach out to those who are posting about open source because they have already had some time in this area and can offer advice. That conversation might be the connection you need to get started.
Open Sauced is a community geared towards helping developers become new contributors to open source. Join the Discord server for more information.
This Slack group, a11yOpenSource, is geared towards focusing on web accessibility in open source. As it is not always a top priority, being an advocate for web accessibility could be a good angle to focus on with any open source project.
There are some standard steps you'll need to follow once you find a project to contribute to.
Kent C. Dodds created this course on Egghead.io that walks you through the process of forking a project to creating your first pull request.
You can also read this article that gives you step by step instructions for the process.
If you are in this for the long haul, check out this repo with tons of information about open source. You can certainly contribute to this project by adding more resources as well.
Although this Hacktoberfest had a rocky start, I feel more confident about approaching open source projects after this experience. There are lots of supportive maintainers and developers who want to make this event a positive one for all want to join in.
And once you've prepared, you can start contributing to open source projects now and complete Hacktoberfest next year without the spammy PRs, of course!
Have you ever participated in Hacktoberfest? If so, what was your experience like? Do you have any questions about Hacktoberfest or open source in general? Leave a comment to get the conversation going.