Now, if you are reading this article it’s because you want to be part of the great open-source community – but maybe you don’t know where to get started? Well, you are in the right place.
In this guide we will cover:
- What exactly is open source?
- How can you get started contributing?
- What should you expect?
Well, in this article we will cover all this and more.
Let’s get started!
What is Open Source?
In simple words, we can describe an open source project as source code that is made available to the public to view, use, modify, and distribute under a permissive license.
As an example to explain this, let’s use a classroom scenario. A teacher can share a document on a platform like Goggle Docs. On this platform students can edit the document and even make copies of their own. But whenever they make edits they have to be approved by the teacher before reflecting on the document again.
That’s how open source code works: once it’s been made public, and you need to add a feature or make changes, the owner has to approve the added changes and publish them for others to see.
Most successful open-source projects are a result of contributions from people with all skill levels – and not only coding skills, but also other skills like writing, languages, and so on.
Any time someone fixes a typo, adds an alert about a possible compiler warning, fixes a bug, or even adds detailed documentation to a project, progress is made. If we take all these small contributions from different people with different skills and put them together, great things can happen.
Just as Vincent van Gogh said:
Great things are done by a series of small things brought together.
Why you Should Contribute to Open-Source
Contributing to open source projects can be a rewarding way to learn, teach, share, and build experience.
There are plenty of reasons why you should contribute to an open source project, such as:
- To improve the software you rely on daily.
- To find a mentor if you need one.
- To learn new skills or improve on existing ones.
- To share your skills.
- To gain a much deeper knowledge about the software you’re using.
- To build up your reputation and help grow your career.
- Plus, it’s fun and gives you personal satisfaction and hey, you never know who is watching, maybe it’s your next employer or partner 🙂.
Step by Step Guide on How to Contribute to Open Source
When we say contributing to open-source, it does not necesarilly mean that you need to know how to code. There are different ways in which you can contribute even if you are a non-coder – but having some coding skills will help you (and the projects) out a lot.
Some common contributions can be through:
- Adding a description to a project’s documentation to elaborate on a certain point, mostly referred to as a README file (check this guide on how to write a Good README file).
- Giving guidance on a specific project and how to use it.
- Adding sample output to show how the code works.
- Writing in-depth tutorials for the project.
- Adding translation for a project – A good place to start with this might be with the freeCodeCamp’s translation program.
- Answering questions about a project (like on Stack Overflow or Reddit)
- You can offer to mentor another contributor.
- You can fix typos and arrange the project’s work folder correctly.
All these ways, and many more, count towards contributions. Now what exactly should you know before you start contributing to an OS project?
What to Know Before Contributing to an OS Project
Just as we expect each open-source products to be different, so are the communities. Each community has it’s own rules and will have different guidelines and roles, and if you are lucky some also do give rewards after you contribute.
But despite all this, there are some common features which apply across all OS projects, and that’s what we are going to talk about:
Roles in a typical OS Project
In a typical OS project we will have the following people:
- Author – This is the person who created the project. They have the power to assign new roles to other members to help with the project’s maintenance.
- Owner – The owner has administrative ownership of the project (and can be the same person as the author)
- Maintainers – These people are responsible for driving the vision and goals of the project. They’re usually people who feel responsible for the direction of the project and who are committed to improving it.
- Contributors – Contributors add to the project in one way or another. They follow the same code review process, are subject to the same requirements on code style, and so on.
- Community Members/Users – These valuable members of the community can provide feedback about features, bug reports, and more.
Must have elements in all OS projects
When talking about an OS project, they are categorized in several ways depending on structure, type of product platform, programming language used, whether it’s sponsored or fully independent, and more.
All this info should be outlined with the help of the guidelines and information:
If a project does not have an open-source license, then it is not open source. The license helps protect contributors and users. Businesses and savvy developers usually won’t touch a project without this protection. If you’re wondering how to get one and choose the correct one for your project, check out the official OS license website: https://choosealicense.com/.
- README file
This is a manual that explains how to get started with a project. It lists the requirements for contributing to the project, the steps to take to contribute to the project etc… A good README should contain everything a potential contributor would want to know about the project. If you already have a project and you’re trying to write a good README file, this guide will come in handy: How to write a good README file.
- Contribution Guidelines
These are guidelines that help people who contribute to the project know exactly what is expected from them. And even though it’s not mandatory is always a good practice to add one. If you need help writing one or understanding what it entails, the official OS website has a template guide to help you out: Contributor guidelines template
- Code of Conduct
A code of conduct is a document that establishes your expectations for how your contributors and participants behave. Adopting and enforcing a code of conduct can help create a positive and welcoming environment for your community. The OS guide explains more on what it entails: https://opensource.guide/code-of-conduct/.
As an individual or an organization running an Open-Source project, it’s all about creating a community where people can grow together. This means that you will have to develop a friendly environment where people will get to share ideas, work on challenges, and even have random chats at some time.
There are some go-to options here, and you can use tools like:
- Issue Tracker
This is where you keep track of your work on GitHub, and how development happens. In case there’s any problem a contributor can create an issue and link it to a pull request and fellow contributors can opt in to try and fix it. Then after it’s fixed it’s closed.
- Pull Requests
They let you tell others about changes you’ve pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with the collaborator and add follow-up commits before the’re merged into the base branch.
- Chat Channel
Although it’s not mandatory, you can consider it a good practice to be part of an OS community channel. It is specifically meant for people to share their ideas and have conversations. Some of the most common media for this purpose include Slack and Discord.