If you are active in any developer community, chances are you have come across the buzzword opensource. What is it all about, why should you be a part of the open-source movement and how to get started with contributing to Open Source projects! I’ve got it all covered for you in one place!
What is OpenSource?
Any software released under a license which the copyright holder grants users the right to use, study, change, and distribute the software and its source code to anyone for any purpose is called Open Source Software (OSS). OSS is usually developed in a collaborative public manner. Open source projects and initiatives make use of the principles of open exchange, collaborative participation, transparency, and community-oriented development.
The Open Source Software movement is a movement that supports the use of open-source licenses for software, a part of the broader notion of open collaboration. The movement was started to spread the concept/idea of open-source software. Developers who support the open source movement contribute to the open-source community by voluntarily writing and exchanging code for software development.
Today, OSS is the secret sauce that greases the internet’s wheels, with over 78% of the businesses being built on Open source software!
Why Should You Contribute?
Community
For most developers, contributing to open source is being part of the larger open source movement, a part of something much bigger than a single individual. It provides a sense of community and agency over one’s own life and the software that you use.
Upskilling
Whether it’s coding, design, or even writing, if you’re looking for a place to practice and upskill yourself, there’s a task for you on an open source project!
Build a Portfolio
Contributing to open source projects can also be an interesting addition to your work portfolio, which you can use as samples of your work available in the public domain.
Network
Alongside all the above-mentioned reasons, the OSS community is also the best place to network with like-minded people from the tech community. Many people find mentors, collaborators and teachers, who are all interested in the community’s wellbeing.
Ready to Contribute?
Myth: You need to write code to Contribute!
This is a myth that I often encounter in my circle of friends, which is absolutely baseless. Open source is much more than just code. Successful open source projects include code, usability, community and documentation together. Without documentation, your code is useless as it cannot be used to its full potential. Additionally, while making your first contribution is surely scary, making a non-code contribution can ease your way into the OSS community. Additionally, the process of collaboration will build your confidence and experience.
Other ways you can Contribute:
Writing Documentation
Organising Events Around Open Source Projects
Improving Design, Layout, UI/UX of the project
Support Queries - Answering questions and FAQs around using the project on forums like StackExchange.
Warming Up to Get Started
Every Open Source project has the following type of People:
Author: The person/s or organization that created the project.
Maintainers: Contributors who are responsible for managing the project.
Contributors: Everyone who has contributed something to the project; be it code, design or even documentation.
Community: People who use the project for various purposes.
Before we dive into how to get started, let’s get ourselves equipped with some basic open-source terminologies:
Git
In open source projects, many developers work on a single project. In this case, there is one original file that each developer has a copy of and is working on. This is where Git comes in and simplifies the process.
In Git, each change in any file is tracked down and this can be easily pushed to the original file. This avoids any sort of issue where everyone edits the original file without knowing each other’s code.
“Git is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.”
Additionally, it becomes easy to go back to the previous code if there is a bug in the new code and making it compatible with the previous code again.
GitHub
Git provides control over the source code, and GitHub is a platform that uses git version control to upload open source projects to their cloud for sharing code with others. Git is local while GitHub is cloud-based, allowing developers to easily work together on projects.
Issue tracker
Issue Tracker is a way to keep track of tasks, enhancements, and bugs for your projects. They can be shared and discussed with the rest of your team.
Pull requests
Pull request is created for the change in code or documentation that is ready to merge into the original code after approval by the maintainer of the repository. Such changes can be discussed and reviews before merging into the repository.
README
README is an instruction manual that welcomes members to the project. It should clearly explain why the project is useful and how to get started with using the project.
Code of Conduct
A code of conduct is a document that establishes expectations for social behaviour from all of your project’s participants. A code of conduct can help create a positive atmosphere for your community and may help distance yourself from avoidable conflicts.
Contributing Docs
Contributing docs assist people in contributing to the project. It explains how to contribute and what sort of contributions are required.
Not every project has a Contributing file.
Finding a Project!
Now that you have all the background information you need to get started, you need to find an open-source project to get started on. **
The best way to find a project to start working on is to start contributing on a project you already use or find interesting. For such projects, you’ve probably already had thoughts crossing your mind like, “what if this was better?” or “I wish someone would fix this bug!”.
You might read through the documentation and find an issue that you think should really be in the documentation. Instead of tip-toeing around it, or asking someone else to fix it, make it your chance to step in. That’s what open source is all about! This is the best place to start your first open-source contribution.
Additionally, every open source project has a /contribute page that shows issues you can start out with. Navigate to the main page of the repository on GitHub, and then add /contribute at the end of the URL.
https://github.com/typesense/typesense/contribute
Getting started
Now that you have found your repository of choice as well as a contribution to make to it, it’s time to submit your contribution to the project.
Note: Before doing anything, make sure your idea hasn’t been discussed elsewhere. Go through the project’s README, and issues in detail. If you can’t find your idea elsewhere, proceed with it.
Before you can open an issue or pull request, you need to check the project’s contributing docs, to see whether you need to include anything specific. Some projects may need you to follow a specific template while raising a pull request or issue.
Opening a Pull Request
As mentioned above, a pull request is used to make changes in code or documentation.
It is better to open a pull request early on, so others can give you feedback on your progress. Especially so if the changes are not trivial.
Step 1: Fork the repo by Pressing Fork in the top right corner of your Github window.
Step 2: Next, clone the repo by opening the terminal on your computer using the below code. Use your GitHub username instead of <YourUserName>
git clone https://github.com/<YourUserName>/typesense
Step 3: Change to the repository directory on your computer. Then create a new branch and create a new remote for the upstream repo.
In this case, "upstream repo" refers to the original repo you created your fork from.
cd Typesense
git checkout -b new_branch
git remote add upstream https://github.com/<YourUsername>/chatwoot
Step 4: Make changes to the code. Add those changes to the branch you just created using the git add command:
git add
git commit -m "your_commit_message"
Step 5: Push your changes using the command:
git push origin <branch-name-that-you-created>
Step 6: Once you push the changes to your repo, the “Compare & pull request” button will appear on GitHub. Clicking on it will lead you to a window where you can create a pull request. This allows the repo's maintainers to review your contribution. From here, they can merge it if it is good, or they may ask you to make some changes.
It is always better to provide clear understanding of your request in the pull request title and comments so that the maintainer can understand what you've worked on.
🥳Congratulations, you are now an open-source contributor!
Post-Submission
Once you submitted your submission, one of many things may happen!
Your contribution is accepted!
Good for you if this happens! Your Contribution is officially accepted.
Your contribution is rejected
Don’t be disheartened, this is not a failure. In this case, you can ask the maintainer for feedback and clarification to make use of in the future.
Someone requests a change to your contribution
This could be feedback on the scope of your idea or changes to your code. Respect the time and energy that they’ve taken to review your contribution. Opening a Pull Request and walking away is not respectable. If you don’t know how to make changes, feel free to ask for help if you need it.
I hope this has motivated you to make your very first open-source contribution! Welcome to the OSS Community! We hope this is one of the many more great contributions you are about to make to the community.
To find the original version of this article published on Aviyel, Click here