This article was originally published on my personal blog.
Hacktoberfest is an annual event hosted by DigitalOcean that aims to encourage developers to contribute to open-source projects and give back to the community.
Through this event, many developers gain the confidence to be part of the open-source community, and open-source projects and organizations benefit by getting the help to grow their projects.
In this article, I'll help you understand what Hacktoberfest is, why you should participate as a maintainer of an open-source software and as a participant who wants to contribute, how you should choose a project to contribute to if you're a participant, and how to prepare your repository to be part of Hacktoberfest and receive contributions.
Suggested Read: How I Learned About Contributing to Open Source Projects By Creating One.
What is Hacktoberfest
Every October, over 100k participants from all over the world participate in Hacktoberfest by going on GitHub, choosing a repository, and contributing to it.
Contributions are done by submitting a pull request (PR) to any repository that is participating in Hacktoberfest. Once your pull request is deemed accepted (we'll go over how that works in the next sections), it will count into your participation in Hacktoberfest.
To successfully participate in Hacktoberfest, you will need to submit at least 4 accepted pull requests to any repositories that are participating in Hacktoberfest.
Once Hacktoberfest is over, which is at the end of October, the first 55,000 participants to have submitted at least 4 accepted pull requests will receive a t-shirt.
Why Participate in Hacktoberfest
Although receiving a free t-shirt is always cool, there are more important reasons to participate in Hacktoberfest. Whether you are a maintainer or a participant, you will surely learn and benefit a lot from Hacktoberfest.
As a Maintainer
As a repository maintainer, Hacktoberfest allows you to grow your community. By participating in Hacktoberfest, your repository will receive more traffic from developers who are looking to participate.
So, even when Hacktoberfest ends, if these developers liked the experience of contributing to your repository, they will come back to help with more issues.
Managing an open-source project can be hard, especially since you might lack the time to improve and expand on the project as a maintainer. So, Hacktoberfest is a great time to receive help on issues that have been pending for a while or enhancements that can be done to improve your project.
As a Participant
Whether you're a beginner or not, there's always room for learning and expanding your knowledge. One of the best ways to do that is by contributing to open-source projects.
Open-source projects usually provide tools, libraries, or other types of resourceful services for the community for free. Contributing to them and helping them to keep going is helpful for the community, and ultimately for yourself.
As each project is different, each might rely on different programming languages, frameworks, tools, or other types of resources they use or provide. By contributing to them, you'll take the time to check how it works, what they use, and so on. You also take the time to solve a problem or an issue in the project or bring new enhancements to the table.
So, when you contribute you're also taking on new challenges to solve, which is a great way to learn and practice your skills.
If you're a beginner, by participating in Hacktoberfest, you can finally get over any fear you might have that is stopping you from contributing to open source projects. It was through Hacktoberfest that I finally started my journey in contributing to open source projects.
Suggested Read: Tips For Beginners to Open Source.
How to Participate in Hacktoberfest As a Maintainer
Suggested Read: Tips For Beginner Maintainers of Open Source Projects.
As a maintainer, you need to do the following to make sure your repository is participating in Hacktoberfest:
- Add the
hacktoberfest
label to your repository. - Add the
Hacktoberfest
label to issues so that participants can know which issues they can work on. This is also helpful if you want to attract participants to simpler issues that they can start with. - Add contributing guidelines to your repository in
CONTRIBUTING.md
. This is necessary to make sure that participants know how to contribute to your codebase. It saves both your time and theirs and ensures the commit history and code base stays clean and based on your project's conventions.
How to Accept Participants
Participants will participate by sending pull requests to fix issues in your repositories. A participant's pull request is considered accepted for Hacktoberfest if it's merged, if it has passed approval by reviewers or if it has the label hacktoberfest-accepted
. So, if you accept a participant's pull request, but you're unable to merge it before October ends, or you appreciate the work they put in but for some reason, you can't merge the request, you can add the label to the pull request, and it will count into their participation in Hacktoberfest
How to Reject Participants or Stop Spam
Unfortunately, so many participants use this event just to get the swag kit and don't actually care about helping open-source projects. So, you are bound to receive some useless pull requests that do not fix any issue, and some might even cause problems.
These pull requests can be time-wasting for you, and it would definitely suck for them to count to their participation in Hacktoberfest. So, it's encouraged to use the labels spam
or invalid
on any pull request that should not be accepted and should be considered spam.
Recommendations
As I mentioned earlier, Hacktoberfest can be very beneficial for both participants and maintainers. However, it's especially beneficial for beginner contributors to open source software. Hacktoberfest encourages them to start contributing if they haven't already.
As taking the first step is difficult, it's our job as maintainers to make it easier for them to contribute. This can be done by creating some simple and easy-to-fix issues. Try to also use labels in your repository that implies an issue is meant for beginners like first-timers-only
.
Also, make sure your contributing guidelines are straight and to the point. Unless your repository is strictly aimed at experienced and high-level contributors, you should try to simplify the guidelines to make sure they're understandable even for beginners. If not the entire thing, then maybe dedicate a section for complete beginners.
Finally, GitHub has introduced Discussions in the past year to repositories. It helps exchange ideas ask questions and more. You can promote in your README, your website, or any channel fitting for your project that contributors can use discussions if they need any help or want to suggest certain ideas. Take the time to help them and build your project's community.
How to Participate in Hacktoberfest as a Participant
Suggested Read: Tips For Beginners to Open Source.
Participating in Hacktoberfest is easy. Here are the steps you should take to start participating:
- Find repositories that have "opted-in" to Hacktoberfest. This means repositories that have the "hacktoberfest" label.
- In these repositories, look through their Issues tab. You should try to specifically find issues with the
hacktoberfest
label, as maintainers will ensure to use that label with any issue they think would be best for Hacktoberfest participants. However, you can still choose any issue you think is fitting and you can contribute to. - Before working on any issue, make sure to comment on it and that you get assigned to the issue. This saves time for you and the maintainer and avoids any misunderstandings that might happen.
- Once you are assigned the issue, make sure to read the contributing guidelines which are found in any repository in
CONTRIBUTING.md
. These guidelines usually include details about the code base, how to contribute to different parts of the project, what you should or shouldn't do, and more. - If after the contributing guidelines you still are confused about certain details, you shouldn't hesitate to ask the repository maintainers questions. You can do that either by commenting on the issue or using the Discussion tab that should be part of the repository.
- Once all is clear, fork the repository, create a new branch, perform the task you've been assigned, and when you're finally done submit a pull request with all the details required based on the repository you are contributing to.
- If the time is running low on your pull request, meaning that your pull request was submitted at the end of October and the maintainers are not able to merge it any time soon, request from the maintainers that they add the
hacktoberfest-accepted
label to your pull request. That way, it will still be counted into your participation.
These are the steps required of you to participate in Hacktoberfest. Even if you're a beginner, if you try you'll see it's not so hard!
Do's
As a participant, here are a list of things you are encouraged to do:
- Pick projects that either will actually benefit from your contributions or you will learn something from the contribution. Unfortunately, with the start of Hacktoberfest, a lot of repositories are created just to get attention. Contributing to them is easy, sure, but it doesn't actually benefit the open-source community or, ultimatly, you. Choose a project wisely.
- Be respectful and patient when contributing to any repository. Although this should apply all year round and not just during Hacktoberfest, it's essential to remember in Hacktoberfest. Most repositories get 10x more traffic, contributions, issues and pull requests in Hacktoberfest. So, the maintainers are almost always in over their heads with the amount of reviews they have to provide and keep up with. So, respect the repository's rules and maintainers and be patient if it takes time for your pull requests to be reviewed or for you to get assigned an issue.
- Keep contributing even after Hacktoberfest. Hacktoberfest encourages you to remember to contribute to open source projects, but it shouldn't be just this month. Take the time every now and then to contribute to these projects and help the community.
Don't's
As a participant, here's a list of things you shouldn't do:
- Don't send in useless pull requests. For example, I had a lot of participants contributing by sending pull requests that just adds a line in a file, or adds a comment for the sake of adding something. This is a waste of time, counterproductive and is the entire opposite of what Hacktoberfest is about.
- Don't overstep your boundaries. If an issue is not assigned to you, do not send in a pull request to solve it anyway. Most repositories and projects have a certain workflow to manage issues and pull requests, and this can cause a mess. Check before working on an issue if someone is working on it.
Some Respositories to Start With
You can consider this a self-promoting section, but I personally maintain a few open-source projects and we're always looking for help or enhancements to them! A lot of these projects have easy issues you can contribute to, so please take the time to look at them and consider them for your Hacktoberfest participation!
- sButtons: Simple buttons you can use easily for your next project. In this project, we have issues regarding bug fixes, and we also accept ideas and implementations for new buttons.
- Awesome Resources: List of helpful resources added by the community for the community! This repository includes all helpful links about many topics that can be added by anyone. You can create a new topic to add a resource under, or add to existing ones. It's one of the easy repositories to contribute to but can also help a lot benefit from them.
- Cross Post: Cross Post a blog to multiple websites. This Node.js tool allows you to cross-post articles to DEV.to, Hashnode, and Medium. Suggested Read: I Created a CLI to Cross-Post Your Articles On Dev, Hashnode, and Medium.
Conclusion
There are many open-source projects that are looking for your support and contributions, and what a better time to do that other than Hacktoberfest! Make sure to get your list of projects ready to contribute to them and give back to the community.