Hi everyone! This year, I'm tasked with setting up my company's Github repositories for Hacktoberfest 2023. While researching and preparing, I thought I would share what I found to be helpful. Hope the information is useful to any maintainers out there.
Hacktoberfest, started by DigitalOcean, is celebrating its 10th anniversary this year 🥳 It is an annual event that celebrates open-source software development by having developers actively contribute to open-source projects. As of last year alone, there were over 147,000 participants.
For maintainers who want to get involved, the article will explain what Hacktoberfest is, why you should give it a try and what you need to do participate.
For maintainers who have previously participated or heard of Hacktoberfest, you can treat this as a checklist or a refresher on what you need to prepare as maintainers. It has been a year after all 😂
What is Hacktoberfest?
Hacktoberfest is an event to encourages developers to contribute to open-source projects. Contributors are encouraged to make four valid pull/merge requests to public and participating repositories to be eligible for digital rewards. It provides an opportunity for developers, both new and experienced, to engage with open-source projects and make meaningful contributions.
When and Where does it take place?
Hacktoberfest 2023 will take place between October 1 and October 31 (in any time zone, UTC-12 thru UTC+14).
Pull/merge requests is only valid if made on either via the GitHub or GitLab platform.
Why should you participate as maintainers?
Since contributors can only earn counts from qualified Pull/merge requests from issues created by maintainers, maintainers play a crucial role in the success of Hacktoberfest. By participating as a maintainer, you can benefit in various ways:
- Increased community engagement: Brings attention to your project and attracts new contributors, kickstarting or fostering an active community around your repository going forward.
- Quality contributions: Ensure that the contributions made to your project are meaningful and adhere to your project's guidelines and standards. More on ways to handle spam in the next section.
- Skill development and collaboration: Provides a great opportunity to collaborate with developers from diverse backgrounds, learn from others, and improve your coding skills.
Note: Although maintainers who review Pull/merge requests from others do not get digital rewards, you are still eligible for rewards if you submit Pull/merge requests to other participating repositories or even your own repositories.
Wouldn't there be a lot of spam?
There is a strict rule of disqualification by Hacktoberfest
Pull/merge requests that have a label containing the word spam won’t be counted, and participants with two or more requests identified as spam will be disqualified
However, due to the nature of the event, spams are definitely possible. The benefits definitely outweigh the trouble for maintainers who are looking to get more attention. For other maintainers, participating is one of the ways to give back to the open-source community. So what better timing to foster a stronger open-source community to attract new contributors (beginner or experienced developers).
To further minimize spam, here are some more suggestions:
- Contribution guidelines: Set up clear contribution guidelines to discourage spammy contributions. Include requirements such as meaningful code changes, proper documentation updates, or thorough bug reports. Here is an amazing contributing template by @nadia to get started. For a good real-life example, you may want to check out Amplication.
- Communication and feedback: Engage with contributors by providing constructive feedback if you consider a contribution a spam or invalid. By being patient and offering guidance and suggestions to improve their contributions, you can create a more welcoming environment for everyone to thrive in.
How to participate as maintainers?
Step 1A: Add a hacktoberfest
topic to your repository
Step 1B: Add hacktoberfest-accepted
label to your issue
Note: You can also choose to do both steps.
Step 2: Create meaningful issues
Like how we don't like contributors to spam us, we should not create "spam" issues. Bad issues like adding a name or profile to a list or arbitrarily curating content should be discouraged. Anyone can report a repository for Hacktoberfest to investigate.
Although you may not need to prepare much for existing contributors of your repositories, you may want to create issues with good first issue
for new contributors who still unfamiliar with your repository to get involved. In my opinion, ToolJet and Posthog have great examples of good first issue
.
Besides issues related to coding, you can also create issues that are low-code or non-code in nature such as writing technical documentation, tutorials , blog posts, translating to different languages and many more. For more inspiration, please check out more examples at 8 non-code ways to contribute to open source.
Note: For more information, please see low-or-non-code section of Hacktoberfest.
Review Pull/Merge Request
It's important to be kind and patient. If Pull/merge requests are rejected due to spam or invalid contributions, please explain to them. Some contributors may just be making honest mistakes. Everyone is a beginner at first 🤭
Conclusion
Preparing your Github repository for Hacktoberfest is essential to attract contributors, foster collaboration, and maintain the overall quality of your project. By actively engaging with the Hacktoberfest community and providing support to contributors, you can create a welcoming environment for open-source contributions.
Could you support me by starring Berryjam repo?
Berryjam is a UI components analyzer for Vue 3 & Nuxt to detect component usage, relationships and more. If you feel this article is useful, could you consider starring ⭐⭐⭐ Berryjam’s Github repo?
It would mean the world and encourage me to create more content.
Thank you in advance! 🙏
P.S Feel free to add your or other repos that you wish people would contribute to in the comment section.