The Beginner Developer's Guide to Hacktoberfest 2022
How beginner developers can contribute to open-source and learn open-source standards during Digital Ocean's Hacktoberfest.
What is Hacktoberfest?
Hacktoberfest, brought to us by Digital Ocean (a cloud-computing infrastructure company) is a month-long event in October promoting participation in the open-source software community! Now in its 9th year, Hacktoberfest invites beginner and experienced software enthusiasts alike to contribute to open-source projects.
How to participate in Hacktoberfest:
Register online (between September 26 and October 31).
Complete 4 pull requests on participating repos on GitHub or GitLab in October. Look for
'hacktoberfest'
repo tag, find all eligible repos here.The first 40,000 entries will receive a prize (either a limited edition T-shirt or a chance to plant a tree).
What's new in 2022?
Join the Hacktoberfest community on Discord and participate in events!
No-code and low-code contributions are now welcome!
๐ธ What is open-source?
At its simplest, open-source programming is writing code that's free for others to use, view, and modify. Many open-source projects, such as Linux OS and the Python programming language, have a profound impact on the software industry. Unlike proprietary code, which is private to developers, such as Microsoft's Windows and Adobe's Photoshop, open-source software is community-driven.
Open-source programmers come in many forms. They can be hobbyists volunteering their skills, sponsored independently, or employed by companies such as Red Hat to work on open-source projects.
Learn more about open-source programming, and explore this awesome list of open-source projects.
Why is open-source important for beginner developers?
Beginner developers often express fear and anxiety when joining their first open-source project due to the pressure of coding in public, this is reasonable. But it's less important that your contributions are impressive and more important that they follow standards.
Open-source standards such as:
reading docs and abiding by the
CONTRIBUTING.md
using git and GitHub/GitLab effectively
not spamming (purposefully or unintentionally)
are all important skills for beginner developers to learn. Whether you aspire to be an open-source developer or not, participating in open-source teaches new developers how to work with other devs and effectively use git and GitHub/GitLab. It also empowers developers to share their skills and build up their reputations. Hacktoberfest provides a perfect opportunity to hone in on these skills at any skill level, no matter your tech stack.
๐ธ Quick skills overview: GitHub & Git Version Control
Open-source programming skills are all about structuring your code with collaboration in mind. Utilizing version control systems such as Git to keep track of your code, and platforms such as GitHub to host your code, are essential.
If you are reading this and do not have a GitHub account, please stop what you're doing, open another tab, and make an account. It is required for Hacktoberfest. GitHub is the leading code-hosting platform in the world.
Additionally, if you are a student, apply for the GitHub Student Developer Pack. It contains a bundle of awesome freebies and discounts!
While contributions made on GitHub and GitLab are both eligible for Hacktoberfest, this blog post will only focus on GitHub since GitLab is mainly for enterprises.
GitHub
Important aspects of GitHub to familiarize yourself with for participating in HacktoberFest:
You can learn all about these on GitHub's documentation website. Although studying GitHub extensively is not necessary for Hacktoberfest, you are likely to encounter these when contributing to open-source projects. What's most important is that you get started and start learning naturally through using the platform if you haven't already.
Making your first contribution to open-source? Consider first-timers-only
repos.
Git Version Control
Bookmark the official Git online reference and cheatsheet to review the essential Git skills for participating in Hacktoberfest. Understand the basic overview of a Git workflow (below, Figure 1).
Figure 1: The GitHub workflow (looks more complicated than it is). ๐ |
This is how to break down the process of using Git to contribute to open-source:
First, inspect the docs. Make sure to read the
README.md
andCONTRIBUTING.md
docs, which will outline the standards for contributing. Learn how to use a.gitignore
file for your specific repo.Next, fork the repo. You cannot make changes directly to the original repo, so you must fork a version of your own.
Clone the repo to your local machine, where you will make changes.
Before making changes, create a feature branch (a branch different than the main branch). This way you always have an original branch to fall back on.
Routinely check if the original repo has been updated, and update your forked repo accordingly.
git add
,git commit
, andgit push
your forked repo's feature branch to your forked remote. Making sure to write a meaningful commit message.Draft a PR request on the original repo's main branch.
Respond to any discussions if they arise.
How to Make a Meaningful Pull Request
As a beginner dev, you may feel limited in what you can contribute. But that's okay, there are plenty of opportunities for beginners to contribute, including low-code and no-code options. What's important is that you don't end up spamming maintainers with junk pull requests, and as previously stated, that you follow the open-source standards of respecting docs and contributing to appropriate projects.
Let's learn what an unmeaningful pull request looks like for comparison...
๐ซ Spam pull requests
In 2020, due to many complaints of spam pull requests by open-source maintainers, Hacktoberfest changed the rules to make all participating repos opt-in only. According to Hacktoberfest's FAQ page:
Weโve changed the program to only count pull requests that are made to repositories with a 'hacktoberfest' topic or labeled with hacktoberfest-accepted. Due to this change, itโs no longer necessary for maintainers to opt out of Hacktoberfest.
While Digital Ocean thankfully took action against spam pull requests, spam pull requests are still an issue. Most often, spam pull requests add lazy and unwanted changes to docs, comments, and HTML/CSS files. These are problematic because these changes come from a place of being uneducated about the standards of the project and add unnecessary work for maintainers.
Spam requests featured in the blog post "DigitalOcean's Hacktoberfest is Hurting Open Source" from Sept. 2020 by Domenic Denicola |
Recognizing a project's standards is an essential component of contributing to open-source. If you want to commit minor changes such as these, there are plenty of repos made specifically for that, so there is no need to spam.
โ๏ธ Making Meaningful Pull Requests (with Limited Experience)
As a beginner, it may be difficult to find open-source projects within your scope of experience. But don't fret! There are many resources to help you find appropriate projects for you. What's most important is that you learn the workflow of contributing to open-source.
Tips for beginner-friendly open-source contributions:
Check out open issues for your favorite open-source projects.
Search repos with the qualifying
hacktoberfest
topic tag here.Within these projects, look for issues with the
beginner-friendly
andfirst-timers-only
tags, these are the issues you want to focus on!Check out firsttimersonly.com for a list of super helpful resources.
Check out no-code and low-code contributions.
Read the docs carefully. If you are making changes to them, are your docs in the correct format?
Take note of any tests. Do your changes pass?
Take note of any CI/CD-like GitHub actions. Do your changes pass?
Add comments explaining your code, but don't commit commented-out code.
Make sure to carefully read the
CONTRIBUTING.MD
file and follow all directions.Keep commits small, don't make large changes within a single commit.
Don't be afraid to open up PRs on your own repos for practice!
Look at previous issues and analyze their discussions, are the maintainers open to new features?
Open-Source Contribution Ideas:
Check out repos with the
awesome-lists
topic tag here and find one with thehacktoberfest
tag. For instance, this Java Design Patterns repo and this Awesome Open Minds Team repo. These repos will only require you to add an entry to their lists, such as a Java design pattern, or a cool resource.Check out the
jokes
topic here on GitHub and find repos with thehacktoberfest
topic, such as devjoke, computer-puns, and EverydayFun. These repos simply require that you add jokes to their arsenals!Check out no-code and low-code contributions.
Improve a README.md file by elaborating on a certain point.
Provide translations in the documentation.
Provide examples and sample output.
Write additional tests.
Notice a typo in a repo's documentation? Don't be afraid to open an issue for it. But don't open a PR for rephrasing and editing whitespace.
If you can think of meaningful tests and GH Actions to add, don't hesitate to open a PR! Just make sure they follow the same conventions as the others.
Final Thoughts:
The process of contributing to open-source teaches valuable skills important to any beginner developer, such as:
Optimizing your git workflow.
Knowing your way around GitHub.
Technical communication.
Networking with other developers.
Collaboration.
Any developer can make an open-source contribution! While it may be tempting to assume open-source is reserved for the "pros," the reality is that all of those "pros" were beginners at one point too. So it's better to get started sooner rather than later. ๐
Hacktoberfest provides an excellent opportunity for developers of all levels to get involved in open-souce programming. So what are you waiting for? Happy Hacking!