What is open source?
Study, Run, Improve!
Open Source is a software model where the program source code is freely available for people to study, improve and run. People from different countries, backgrounds, and ideas collaborate to build Open Source software in a distributed manner.
Free as in freedom, not free as in beer 🍺
Open Source software does not mean free of charge, although usually, it is. Open Source also does not mean free labor. Open Source also does not mean bad for business.
Why contribute?
Build confidence
By contributing to an Open Source project, you get immediate feedback on your development process and programming skills. You'll improve something you rely on, and build confidence.
Build a network
By contributing, you become a part of hundreds of thousands of developers. You will interact with several like-minded individuals and build a global network.
Develop skills
Whether it’s programming, user interface design, graphic design, writing, or organizing, if you’re looking for practice, there’s a task for you on an open source project.
Glossary
Issue
Basically "project planning". The maintainers create issues for new features they want to add, and users create issues for well… the issues they are facing.
Repository
In simple words, a bucket of code. Consider this to be the root directory of the project.
Upstream
The source repository of the project you are contributing to.
Fork
A copy of the upstream repository to your own account. Usually, you do changes in your fork before creating a "Pull Request".
Pull Request
Sometimes also called a "Merge Request", this is a "request" to the maintainers to merge your fork with the upstream. This goes through a review.
Review
As the name suggests, a review of your pull request by the maintainers. It is usually done to find bad code, grammatical mistakes or to suggest changes.
Maintainer
A person who is in-charge of the repository. May or may not be a group of people.
Git, GitHub and Open Source
Git
Git is a distributed source code management tool to manage code repositories. It has features like commits, branching, a staging area and itself is open source.
GitHub
GitHub is an online service which for software development and version control using Git. It has multiple features over plain Git, such as, "issues", "wikis", "pull requests" and "sponsorships".
How to contribute?
1. Find an issue
Find yourself an issue to work with. Do ask for maintainer approval before taking it up.
2. Work
Get to work. Work doesn't only mean coding. It also contains documentation reading and review cycles.
3. Upstream
After the maintainers of the repository approve your contribution, they merge it.
Finding Issues
Look for labels
Project maintainers use issue labels such as "Suggested" and "Good-first-issue" that may be good for new contributors looking for work to do.
Good first issue
Good First Issue is a DeepSource initiative that curates easy pickings from popular open-source projects, and helps you make your first contribution to open-source.
Things to keep in mind
- Contributions are not just code
- Maintainers are humans