Contributing to open source might seem daunting, but you can start your tech journey during Hacktoberfest 2023.
October is here again, and for all the open-source enthusiasts, it opens another Hacktoberfest chapter.
The idea of Hacktoberfest is to encourage everyone, especially beginners, to contribute to projects that are dear to their hearts. Initially, it was mostly associated with developers, but in principle, all contributors – designers, technical writers, analysts, etc. – are welcome.
They are welcome to contribute to improving tests, documentation, configuration, or anything else that can be sent as a pull request - everything counts. This is how the members of the open source community encourage new tech enthusiasts and help them make their first step into tech.
What is Hacktoberfest?
Hacktoberfest is an annual online event celebrating the open source movement.
This year, registration starts on September 26.
To participate, you need to send at least four open-sourced pull requests on GitHub or Gitlab between September 26th and October 31st, for projects that indicate they are looking for Hacktoberfest contributions (hacktoberfest
topics), and those pull requests need to be accepted by the repository owners.
The participants who complete Hacktoberfest can receive one of these prizes: a tree planted in their name or a unique digital reward.
Why you should participate in Hacktoberfest open-source projects
Of course, Hacktoberfest is not about receiving a reward. The main idea is to help new contributors get more involved and make the open-source movement a stronger force. It helps to discover exciting projects in the tech space, learn new things, and also connect to other open source enthusiasts worldwide.
Even though it might sound as if Hacktoberfest only caters to developers, everyone can take part in it! Designers, writers, and tech advocates can contribute too.
At FerretDB, we love the idea of celebrating open source, which is why we are on a mission to provide the truly open source alternative to MongoDB. As more and more companies switch to proprietary licenses which are disguised as open-source, celebrating open-source presents another opportunity to demonstrate its immense benefits. Read more on the dangers that these licenses pose to open-source.
We would love to help you through your first steps in the open-source world, either as a developer, designer, or writer – you can contribute to open-source.
Besides being an opportunity to take baby steps into the tech world, contributors can hone their skills as they contribute to the interesting open-source projects that appeal to them.
7 steps to start contributing to open source
1. Set up your GitHub account (if you don't already have one)
Quite a lot of open-source projects (including FerretDB) are hosted on GitHub. So, a GitHub account might be helpful or even crucial if you want to start contributing to open-source. GitHub has detailed instructions for account creation.
An important note here is that a free GitHub account will be more than enough. You don't need any paid features to become an open-source contributor.
Most likely, you might need an IDE or a code editor. At FerretDB, different engineers have their own preferences, but for your first steps in the open-source world, Visual Studio Code is a good place to start. It supports all the popular formats and programming languages; it has handy integration with GitHub and other valuable tools, and, of course, it's free.
In addition, Hacktoberfest's website has a nice list of resources for beginners. Check them out for further information.
2. Find the right project for Hacktoberfest open-source contributions
Even though plenty of communities are open and friendly, not all the projects and issues would be suitable for first-time contributors. It's essential to find some "low-hanging fruit" that will give you inspiration for future contributions.
On GitHub, it might make sense to look for "good-first-issue" labels. Usually, issues that are marked with such a label don't require special knowledge about the project.
There is one more tradition here, in October, some open source projects mark their issues with the hacktoberfest
label, and such issues are often suitable for first-time contributors.
At FerretDB, we are preparing for Hacktoberfest too! So, if you are looking for something to contribute to, take a look at the good first issues in our FerretDB repository.
3. Select a good first issue and read the contribution guidelines
You found some projects with good first issues. What's next? It is essential to check that you understand the issue and how to implement it.
Before jumping into implementation, it might make sense to take a look at the README document and CONTRIBUTING guidelines of the repository. Quite often, the projects follow some good practices that help contributors, and such practices are described in these documents.
Also, many projects offer chats where contributors can ask any questions.
At FerretDB, we use Slack for our contributors and community, and we also offer weekly Open Office Hours calls. Don't hesitate to join us! You can find details in our README.
By the way, the contributing guidelines or documentation might be the most suitable for first-time contributors!
We have several good first issues that you can start with.
For example, you could implement the $first
accumulator or improve embedded package documentation.
You could also try your hands at updating glossary list with more details.
Since new issues are always popping up, there are no limits to what you can contribute to.
Do you see a typo, a mistake, or something that doesn't look clear?
Such contributions could be as tiny as a one-line change. So, if you find something you're interested in working on, even if it's not labeled as a good first issue, you can still go ahead to contribute. Help the project owners with such improvements, and they will be grateful!
4. Fork and clone an open-source repository
Most of the time, in order to make a contribution, you need to fork a repository. Then you can clone your fork on your local environment, implement the changes, and test all the necessary things locally.
We recommend that FerretDB contributors get familiar with the "Setting up the environment" documentation.
5. Ask questions or create an issue
If something is unclear about the issue you want to work on, there are several options available to ask questions. We have already mentioned chats and calls, but GitHub itself also offers some communication tools. First of all, there is a possibility to leave comments on issues. Quite often, contributors discuss potential implementations or unclear aspects there.
Also, on GitHub, there is a relatively new feature called Discussions where anyone can ask questions about the project.
If you notice a bug or have a feature suggestion, the best course of action is to create a new issue. By the way, reporting issues is also a valuable contribution to open-source projects!
6. Push your changes to a remote repository
When your changes are implemented and tested, you are ready to push them to your remote repository.
You can do it through your editor or with any git client. For example, GitHub offers documentation on how to do it with GitHub Desktop. And, of course, after the changes are committed, they also need to be pushed.
At FerretDB, we prefer to commit and push as often as possible. Usually, we don't wait for a feature to be fully implemented, a tiny valuable piece of code can be pushed to a remote branch, so the changes won't be lost even if the local environment gets broken.
7. Make your first Pull Request
So, your changes are ready and pushed to your fork? It's time to create your first pull request! As usual, GitHub has a detailed guide for it. Various projects might follow some practices to help contributors have their changes accepted as quickly as possible.
At FerretDB, we use various GitHub actions to check if the code satisfies the standards and if tests pass. We described the full process in our contributing guide. The reviewers of your code might have some additional questions or suggestions. This is totally normal for most of the pull requests.
As soon as the questions are clarified, and improvements (if any) are made, the code owners will merge your pull request, and with that, your change is considered accepted. Congratulations!
Start your open-source contribution with FerretDB
At FerretDB, we welcome all the open source contributors! From feature implementations to fixing typos in our documentation - we value everything!
Whether it's for Hacktoberfest or otherwise, you are welcome to take a look at FerretDB projects and find something that interests you. To simplify the process, we prepared the contributing guidelines to help you find something to work on, set up the development environment, prepare a pull request and pass code review.
Are you looking forward to submitting your first pull request to FerretDB? Start contributing to FerretDB today.