How to Find Go Projects for a First Open Source Contribution?
The road towards being a first-time open source contributor is lined with several difficult segments.
One of the firsts ones you’ll encounter is:
How do I even find a Go project to contribute to?
This writeup will help you find the right issue for you, in a Go project you can get excited about!
An Endless Stream of Issues
The GitHub advanced search is a great source of various first-time suitable issues!
You can look for issues of repositories written in Go, with more than 50 stars, with the label “good-first-issue” for example.
Here’s a link to the exact search described above.
Note: this approach could be used for non-Go projects as well. However, as this is a site for Gophers, I chose to be very specific and limit the project language to “Go”.
Each of those issues is from a project with more than a handful of stars, so there is some interest around it. Each issue has been labeled with good-first-issue
by the project maintainers, so they are actively signalling, that it is a good way to start!
Among these issues, you are sure to find a project which excites you, and an issue which does not only look approachable but is just right for you!
Project Focus
If you want to discover Go projects instead of issues, check out the GitHub topic around Go.
In this case, the list will be sorted by stars - but you could choose a sorting by most recent change for example, to find projects which are being actively worked on at the moment.
You can browse through the list, see what topics resonate with you, and dive into each project’s codebase by itself.
Note: would you like to read code of Go projects in a “Go code book club” with fellow Gophers? Head on over to the Gopher Dojo Community Discord and say hi!
Issues in a Specific Project
If you have a project you’d like to contribute to, there are a few things you can do to find existing issues which might be suitable.
Look for issues with labels like “good first issue” or “help wanted” - this indicates that the maintainers of the project would like assistance on those tasks.
Otherwise, check out the (somewhat hidden) “contribute” page of a project. For example, here is the page of mattermost: https://github.com/mattermost/mattermost/contribute.
It is sometimes linked from the issues page, but you can check if one exists yourself by adding /contribute
to a project’s GitHub URL by hand.
Special Mention: Tooling
Instead of the GitHub search, you can also check out goodfirstsissue.dev.
Note: thanks to flayman from the community for this suggestion!
It’s only a limited number of projects, but it provides a great overview of how many issues exists, what the projects are about and other things you need to know.
“Creating” Your Own Issues
If you know what project interests you, and you have a good idea what you’d like to build - create an issue and describe your idea! Well, after using the search to see if a similar issue might already exist of course.
If your issue resonates, the project maintainers might agree to it and you can start building.
Suggesting an issue is usually the way to go, instead of creating a PR without coordinating first.
Note: make sure to check out the contributing guidelines of a project, which could be located in
.github/CONTRIBUTING.md
for example.
Special Project Mentions
A few recommendations from the Discord community:
The GitHub’s CLI has been mentioned by harveysanders as a good project to contribute.
The maintainer of gofr has invited people to reach out if they are interested in contributing, and to brainstorm together if necessary.
In Conclusion
I hope this writeup has provided a good overview on how to find a Go project for your first open source contribution!
If you want to join a community of like-minded Gophers who are interested in reading, learning and contributing around OSS code - make sure to join the Gopher Dojo community Discord!