Who Can Contribute to Open Source?
If you want to contribute to a software project, you need to join the team that manages that project. Or at least, that’s the impression I was under for a long time. It turns out that’s not always the case.
In reflection, I can see why I thought this. Whenever I had worked on a coding project with a group, whether in an academic setting or a professional one, access to the group’s code had always been restricted to those within the group. The group set up a code repository for the project, and only members of the group were given access to it.
I had heard that open source projects did things a bit differently. Instead of keeping their code private, open source teams published their code online. This meant the public had read access, enabling anyone to generate a copy of that code and use it to make their own software.
But for a long time, I never heard anything about the other major difference that many open source projects share: anyone can contribute to them. While every open source project works differently, there are many projects where you don’t need to be a member of the project group to contribute code. Here’s a brief overview of how the process works:
- You create a fork, which is a copy of the open source project you’re interested in.
- You make your code changes in the fork.
- You make a pull request, which asks the open source project to merge your code into theirs.
- The project owner(s) vet your changes.
- If the owner(s) approve your changes, your code gets merged into the official project.
In this way, anyone can contribute to open source. Even if you don’t have the time to make an ongoing commitment to a project, you can still get involved by fixing just one bug. Even if you’re a beginner at coding, you can still help out with less technical tasks, such as improving documentation. And by getting involved in these ways, you’ll be gaining experience with both the social and technical aspects of contributing to software projects.
If you’re interested in giving open source a try but don’t know where to start, I recommend Roshan Jossy’s First Contributions. It provides a streamlined, step-by-step tutorial that will walk you through the process of creating a fork, making a change, and submitting a pull request. I’ve also found GitHub’s How to Contribute to Open Source article to be a helpful resource.
Despite the fact that I haven’t been involved with open source for very long, I’ve already learned so much thanks to it, and I’m excited to think about how much more I’ll be able to learn and accomplish in collaboration with the open source community.