In Open Source, we feel strongly that to really do something well, you have to get a lot of people involved. ~ Linus Torvalds
In the world of Open source, collaboration reigns supreme. It is a place where people from different backgrounds, cultures, and countries come together to build amazing ideas.
A quick recap for newcomers
If you have been following this series so far, kudos to you for embarking on this journey. If you've just joined us or missed any of the previous articles, don't fret. You can catch up by checking out our earlier discussions in The Beginners Guide to Hacktoberfest 2023.
We have already learned what Hacktoberfest is and how it is an excellent opportunity to start with Open source. We have also seen how to set up our development environment and get familiar with Git and GitHub.
In this article, we will be looking at how to find your first Hacktoberfest project to contribute to. This process is a crucial step in participating in Hacktoberfest. It is also one of the most challenging steps for newcomers. So, let us dive right in.
Preparation in Preptember
First things first, don't wait for Hacktoberfest to begin before embarking on your quest. September, often playfully called "Preptember" in the open-source world, is the perfect time to start preparations. This is the time to get familiar with the tools and technologies you will be using.
It is also the time to get familiar with the open-source community and the projects you will contribute to. This will help you hit the ground running when Hacktoberfest begins. From our previous article, we have already seen how to set up our development environment and get familiar with Git and GitHub. So, we are already on the right track. π Now let us go looking for our first Hacktoberfest project.
Finding your first Hacktoberfest project
Previously, I mentioned that only projects hosted on GitHub or GitLab are eligible for Hacktoberfest. This is because Hacktoberfest uses the GitHub and GitLab APIs to track your contributions. So, those are the platforms we will be looking at.
GitHub
GitHub is the world's largest open-source community. It is home to millions of open-source projects. So, it is a great place to start looking for your first Hacktoberfest project.
The easiest way to find projects on GitHub participating in Hacktoberfest is to visit the Hacktoberfest topics page on GitHub. This topic is a collection of all projects on GitHub participating in Hacktoberfest.
You can also find projects by searching for the hacktoberfest
topic on GitHub. This will return a list of all projects on GitHub that mention hacktoberfest
anywhere in their repository.
You can also search for projects by language. For example, if you are interested in contributing to a JavaScript project, you can search for hacktoberfest javascript
on GitHub. This will return a list of all JavaScript projects on GitHub participating in Hacktoberfest.
GitLab
GitLab is another popular open-source community. It is home to thousands of open-source projects. So, it is also a great place to start looking for your first Hacktoberfest project. The process of finding projects on GitLab is similar to that of GitHub.
The easiest way to find projects on GitLab participating in Hacktoberfest is to also visit the Hacktoberfest topic page on GitLab. This topic is a collection of all projects on GitLab participating in Hacktoberfest.
You can use the language filter to search for projects by language. For example, suppose you are interested in contributing to a JavaScript project. In that case, you can search for hacktoberfest
and filter by JavaScript
on GitLab. This will return a list of all JavaScript projects on GitLab participating in Hacktoberfest.
Things to look out for when choosing an open-source project
Now that we know how to find projects on GitHub and GitLab participating in Hacktoberfest let us look at some things to look out for when choosing a project.
README file
The first thing to look out for when choosing a project is the README. This is because the README contains essential information about the project. It includes information on the project, how it works, what tools and technologies it uses, and its license.
It also contains information about how to contribute to the project. This is very important because it will help you know what kind of contributions the project seeks. It will also help you understand how to make contributions to the project. So, always read the README before choosing a project.
You can find this file in the root directory. It is usually named README
or README.md
.
LICENSE
The LICENSE outlines what you can and cannot do with the project. It also outlines the consequences of violating the license. So, always read the LICENSE before choosing a project.
The MIT and GNU General Public License (GPL) are the most common open-source licenses. The MIT license is a permissive free software license. It allows you to do whatever you want with the project as long as you include the original copyright.
The GNU General Public License (GPL) is a copyleft-free software license. It allows you to do whatever you want with the project as long as you include the original source code and any modifications you make to the project. It also requires you to make the source code of any modifications you make to the project available under the same license.
The license is usually located in the root directory. It is generally named LICENSE
or LICENSE.md
. If you don't find the license in its root directory, you can look for it in its README.
Project's activity
Knowing the activity is also very important. This will help you understand how active the project is, how busy the maintainers are, and its community. This lets you know if the project is still being maintained and your contributions will be accepted.
You can get an idea of the activity by looking at the commits, issues, and pull requests. Checking when the commits, issues, and pull requests were made, who made them, and who closed them will give you an idea of how active the project is, how busy the maintainers are, and how involved the community is.
Are the commits, issues, and pull requests regularly made and closed? Are they being created and closed by the maintainers, contributors, or both? How often do the maintainers respond to issues and pull requests? These are also some questions you should ask yourself when checking the activity.
You don't want to contribute to a project that is no longer being maintained or whose maintainers aren't active. So, always check the activity before choosing a project.
CONTRIBUTING guide
The next thing to look out for when choosing a project is the CONTRIBUTING guide. This is because the CONTRIBUTING guide contains more information about how to contribute to the project. It can collect information about the code of conduct, how to set up the project locally, how to run the tests, how to make contributions to the project, how to submit your contributions, and so on.
It can also contain information about the roadmap, how to report bugs, request features, ask questions, etc. This will guide you on how to make meaningful contributions to the project. So, always read the CONTRIBUTING guide before contributing to the project.
You can find this file in the root directory. It is usually named CONTRIBUTING
or CONTRIBUTING.md
or linked to in the README.
CODE OF CONDUCT
The CODE OF CONDUCT outlines the expectations for all contributors. It also outlines the consequences of unacceptable behavior. It helps maintain a respectful and inclusive environment, ensures compliance with laws and regulations, and promotes ethical collaboration. So, always read the CODE OF CONDUCT before choosing a project.
You can find this file in the root directory. It is usually named CODE_OF_CONDUCT
or CODE_OF_CONDUCT.md
or linked to the README.
issues and pull requests
An issue is a problem or bug in the project. It can also be a feature request or a question. It is usually made by a contributor to the project. It can also be made by the maintainers.
On the Issues page, you can find a list of all issues in the project. This is very important because it will help you know the problems and what issues you can work on. It will also help you see what issues have been worked on and are still open.
While a pull request is a request to merge changes into the project. It also is usually made by a contributor to the project. It can also be made by the maintainers. In the Pull Requests page, you can find a list of all pull requests.
When looking for issues as a first-timer or newcomer, you should look for issues labeled good first issue
, first-timers-only
, beginner-friendly
, help-wanted
, and hacktoberfest
. These are issues that are suitable for first-timers or newcomers.
They are usually easy to fix and only require a little knowledge of the codebase. They are also typically well-documented and have clear instructions on how to fix them. So, always look for issues with such labels when choosing a project.
If you can't find any issues you can work on, don't panic. You can create your own issues by looking for bugs in the project or by adding new features. You can also reach out to the project maintainers for help.
Other things to look out for
Other things to look out for when choosing a project are the stars, forks, and watchers. These are usually located at the top of the page. They will give you an idea of the popularity and how many people are interested. They will also give you an idea of how many people contribute to the project.
You can also look at the releases. This will show you how often the project is being released. And the Discussion tab. This will give you an idea of how active the community is.
Tips for first-time contributors to Open source
Now that we know how to find projects on GitHub and GitLab participating in Hacktoberfest and what to look out for when choosing a project, let us look at some tips for first-time contributors.
Find a project you are interested in: This is very important because it will help you stay motivated. It could be a project you use or want to learn more about. This will help you come up with ideas for contributions.
Know more about the project: This is also very important because it will help you make meaningful contributions. You can learn more about the project by looking at the README and CONTRIBUTING files. This will help you know what the project is about, how it works, what tools and technologies it uses, and how to set it up locally. You can also look at the issues to see if there are any issues you can work on.
Start small: As a newcomer, it is important to start small. This will help you get familiar with the project and the open-source community. You can begin by fixing typos in the documentation or adding a new feature to the project. This will help you familiarize yourself with the codebase and the tools and technologies you will use.
Join the community: Joining the community is also very important because it will help you get updates about the project and communicate with other contributors. You can follow the project on GitHub or GitLab and join the Discord or Slack channel.
Ask for help: Be bold and ask for help. Newcomers are always welcome in the open-source community. When you feel stuck or need help, you can ask for help by commenting on the issue you are working on or reaching out to the project maintainers. You can also ask for help by contacting the open-source community on Twitter, Discord, or whatever platforms they use.
Be patient: Be patient with yourself and the maintainers. Open source is a marathon, not a sprint. So, don't be in a hurry to make contributions. Take your time to understand the project and the open-source community. And don't be in a hurry to get a response from the maintainers. They are also busy people. So, be patient with them.
Be respectful: Be respectful to everyone. Open source is all about collaboration. So, be respectful to everyone, including the maintainers and other contributors. Be respectful to their time and contributions. Be respectful to their opinions and ideas. And be respectful to their feedback and criticism.
Be receptive to feedback and criticism: Speaking of feedback and criticism, embrace feedback and criticism as valuable assets on your journey. They are gifts that aid your growth, both as a developer/contributor and as an individual. Don't hesitate to seek or accept feedback. Constructive criticism, when delivered thoughtfully, can also be a catalyst for your improvement and personal development.
Be open to learning: Be open to learning new things. Open source is all about learning new things. So, be open to learning new things. Be open to learning new tools and technologies. Be open to learning new ways of doing things. And be open to learning from others.
Have fun: Last but not least, have fun. Open source is all about having fun and learning new things. So, don't be afraid to make mistakes. Don't be scared to ask questions. Don't be afraid to try new things. And most importantly, don't be frightened to have fun.
Conclusion: What's next?
Knowing how to find your first Hacktoberfest project is very important. This helps you choose the right project to contribute to and leads you to success. In this article, we have seen how to find projects on GitHub and GitLab participating in Hacktoberfest and what to look for when choosing a project. We have also seen some tips for first-time contributors.
Our next article will examine how to make your first Hacktoberfest contribution. So, stay tuned. (As a bonus, I will share a list of projects you can contribute to in the following article, including one to practice all you have learned so far to help you get started. π)
I hope you have found this article helpful. Please share it with your friends and colleagues. If you have any questions or feedback, don't hesitate to get in touch with me on Twitter. I would love to hear from you. See you in the next article. ππΌππ
Resources
Connect with me π
Follow me on Twitter, LinkedIn, and Instagram to stay updated with my latest content.
If you like my notes and want to support me, you can buy me a coffee at ByMeACoffee. I love the taste of coffee. π
For other ways to support me, visit my Sponsorship Page.
Top comments (2)
A good summary I'd say π
I like that you have highlighted the importance of finding a project meaningful to the new contributor, and called out meaningful contribution.
One of the big problems with hacktoberfest is "opportunistic" participation - swag chasers and stats-gamers, who flood maintainers with bad or poor-quality PRs.
Thank you! π You've captured the essence perfectly. I believe in quality contributions, not just quantity. It's all about enriching the open-source community.