Why & How to Contribute to Open Source Projects?
Open-source projects or open-source software is probably not a new term. In the past decade, open-source software contributions have been on a steady rise resulting in frequent releases, improvements and newer software.
This is what open-source is.
The software is for everybody to use, contribute or provide any help that they want. Keeping development and usage aside, a lot of people do want to contribute to open-source projects but are not sure where to start. At the first glance, open-source projects do look a bit intimidating by their size.
For example, Django is an open-source project and is extremely big, complex and is huge in the web development world. This intimidation is only justified!!
To declutter this topic and provide a clear path, we have crafted this post for those who want to start their open-source journey today. In this post, we will lay down a step by step guide for you to follow before jumping on submitting contributions and help you understand why this is important for you.
What are open-source projects?
Open-source projects are described by many definitions that conclude on the same reasoning. The simplest of them is that open-source projects are those whose source code is available to read and reuse in other projects.
You can just navigate to their repository, open the files, analyze the code, change according to yourself and reuse it as per your requirement.
A more technical definition of open-source projects is that they are released under a license in which the copyright owner allows the users to change, analyze and redistribute the code as they want. The license is generally available along with the README file in the repository.
The software thus released is developed not by a particular organisation but a community altogether. Since the users can also read the code, it increases the trust factor which in turn increases the acceptability rates and hence the downloads.
State of the software supply chain 2021 shows the download trends for open-source projects:
Open-source software is also for everyone and everyone is invited to contribute. Wikipedia states that in a 2008 report, open-source projects were able to save over USD 60 billion for the customers. They are slowly becoming the preferred choice of the customers which makes our work as contributors even more valuable to society.
As far as your open-source location hunting is concerned, you can find a lot of projects on GitHub. Although remember that not every project on GitHub is open-source as it serves as a version control system repository. So companies prefer it for their software management especially when we are dealing with work from home challenges.
But is this all about how good an open-source project is? Or are there other benefits specifically for us?
Why contribute to open-source projects?
When we hear our peers talk about “ contributing “ a lot, we may feel like we should do the same. Or maybe we read an article about it and it gives us this idea. In these types of cases, we might not be extremely clear about the benefits we would receive from our contribution. This section will help you get a solid picture of this question.
Improving the software
By contributing to the open-source project, we ultimately add some value to it. Even if we are pointing out a small bug or raising a small issue, we are improving the software on which millions rely for their work.
Supports open-source culture
A lot of the people in the software industry love the concept of open-source. The idea of the code being available to everyone without any cost for any change or use is something they really respect. Therefore, to support this culture and help it flourish, they contribute more and more to the open-source community.
If you are one of them, you do prove a point and help prosper an open-source environment. However, if you are not, by the regular contribution you would start to feel the same way.
Meet talented people from your domain
When you contribute to open-source projects, a lot of people will look at your contribution. They will analyze it and if it does feel relevant, they will implement it. This whole process will initiate communication between you and people from all around the world. They are already in the development of open-source projects and have a lot of insights and knowledge to share. Meeting such people will help you professionally.
Improve soft skills
When you start meeting people as your journey progresses, you will start to learn good soft skill habits that will help you grow as a professional. For example, how to initiate a talk, how to accept rejection, what are the best ways to accept criticism and a lot more.
Find a mentor
In the same process of contributing and communicating with people, you might come across people who regularly observe your work. Since they are more experienced in your domain, they will suggest some improvements and guide you all along. In other words, they will become your mentors and improve your skills both technically and managerially.
Gather immense knowledge
Open-source projects are open for everyone to provide inputs in any way they feel like. When you open the page where issues are raised and suggestions are given, you will explore a lot of details of the domain you are working on.
If you are a developer, you will read a lot of other people’s code and the suggestions they give. If you are a writer, some issues will make you understand the best practices of writing etc. For someone who has never contributed, just exploring such forums will help you gain a lot of knowledge without any contribution.
Uplift your game in the field
When you see yourself improving with contributions to open-source projects, you can embellish your resume with these achievements. It will uplift your reputation and help you stand apart from other candidates while switching to a different organisation.
Understand the meaning of contribution
A lot of the times people think that contributing to an open-source project means contributing in any way through codes. This is a common misconception and therefore it’s best to address it first.
Contribution to open-source is not equal to coding
Actually, there is no definition or standard of “ what to contribute “ to an open-source. You think that there is a typo in any line in the documentation, you raise the issue and this is your contribution.
28% of casual contributions are documentation, fixing up typing errors or translating etc. So open an open-source project, not with the intentions of coding but looking at it in every way possible.
Explore familiar projects
The first step in contributing to an open-source project is finding the best one for you. What would be better than the technology on which you have been working for personal projects for some time?
When you are regularly using some technology, language, framework, tool, anything, you explore it in great detail and find some gaps in its implementation. Maybe you have a class for which documentation is too poor. Maybe one type of data type conversion throws an error etc.
So, always go for projects that are familiar to you to increase your chances of successful contribution. As mentioned above, GitHub serves as host to millions of repositories and it is highly probable that you will find one. I work on an open-source automation tool called Testsigma. Taking their reference, a project repo may look as follows when visited on GitHub:
Check for project inactivity
Once you are done with finalising an open-source project and know in which field you are going to contribute, the next theoretical step looks like diving directly into raising an issue. But the problem can be that all the projects do not have an active contribution channel. Sometimes the project may go out of development due to some issues or sometimes the contributions are accepted only in a given timeframe. In our example, the recent happening shows that people are working regularly on the product.
The next step, therefore, is to go to the project’s repository and look whether they are open for contribution or not. Skipping this part may waste your time that you spend in finding bugs or preparing a doc etc.
Learn contribution tools
These are not unique to the project but act as standard terms among all the projects globally. Knowing them before starting real work is extremely important to do the process correctly. In some projects, you might also get banned due to regular silly mistakes.
Read the guidelines
Open-source projects attract many people for contribution and development. To constrain the flow, sometimes they lay down a few guidelines that we as contributors need to adhere to. The exact representation of these guidelines is hard to judge.
However, some guidelines might sound like “only invite contributions allowed”. Or you might come across a project that wants people to level up through their rank for contribution. They can define a minimum level for a particular contribution etc. This can reduce the flow and a high-rank holder may mean consistent and good quality contribution.
You can generally find such guidelines and rules in the root directory of the repository. The file name may go as CODE OF CONDUCT, RULES FOR CONTRIBUTION, CONTRIBUTION PROTOCOL etc. In our example, you can find the code of conduct and contribution guidelines as a file:
So before jumping directly, it is recommended to give a glance at the project guidelines (if there are any).
Now we are done with the steps to keep in mind. We have analyzed the project and learnt all the guidelines. We have noted down our contribution and have appropriate ranks to go forward. The next step is to find the contribution page (which is just a Google search) and submit our contribution to the team.
After that, just wait for the contribution to get a few comments or the result of the submission directly.
What if we don’t have anything to contribute to open-source?
Having something to contribute every time is not necessary and a lot of people just explore the project to help others. If you also feel this way, the best solution is to explore the “issues” and existing bugs page. When people find any bug in the framework/language/tool, they raise an issue on this page openly.
An issue can be something that you might have already worked on before and help them in resolving it. Or it can be something that opens up the possibility of something new. You can always pick up an issue that excites you and contribute to the fix. Even if you can’t, you will learn a lot in the process.
That’s it. It is that easy!
Open-source projects are developed for all, by all and are maintained by all. With people like us, they are regularly updated and have now become the preferred choice for millions of people. Today, a lot of people support open-source culture and believe that the code should be available for all to use.
So, how can we play our part in this process? Contributing to an open-source project looks intimidating at first but once the process is clear, it is extremely easy. The motive of this post was to shine a light on this process and help you clear out a step by step guide on contribution to open-source. I hope the post has answered all your questions. If not, do let us know in the comment section and we will reach out to you personally.
Reach out to our Discord server if you’d like some help!
Originally published at https://testsigma.com on February 9, 2022.