How to start with open source contribution ???
Advice from successful Google Summer of code Contributors.
Table of contents
No headings in the article.
Want to contribute to open source? A guide to making open source contributions, for first-timers and for veterans.
When you actually start to look for open source contributions, you get motivated initially but when you see that you are unable to find issues or solve issues and everything seems so complicated as a beginner.
Now you don't need worry about, I will break it down step by step for you:
The first step is to find projects. Leverage the Technology Stack you already know or have an interest in, to find relevant projects that you would like to contribute to. It would ensure that you already are familiar with the technologies associated and can contribute seamlessly with some guidance from an experienced mentor.
The second step would be to leverage README/Wiki/Quickstart. Almost every well-maintained Project would have some Docs. Get a better glimpse of what the project is intended for. If the Docs are missing (and it is a big project) you can plug your efforts in. Otherwise, seek well-documented projects.
Now that you have found a community and a project, do a BFS and an iterative DFS.
Do a BFS (Breadth-First Search) and understand the Project Structure, what some files or directories are supposed to do, and explore as much as possible. Hit up Google if you are getting stuck somewhere.
Now do a DFS (Depth First Search), and understand the Project from the core.
Both of these will take a lot of time (2~3 months) but will ensure that you have a rock-solid foundation for the contribution to start.
During this process understand the Test Suite as well. Don't let the Test Suite mess up with your contributions. Understand how the Test Suite works under the hood so that you don't push buggy code or the maintainers don't reject your PRs, for failing the checks. If the project lacks test/CI pipelines, that is a good way to contribute to the project since no maintainer would refuse to have good test cases.
Now that you have done all of these things, get your hands dirty. Create a local branch and start breaking stuff. Learn a lot in the process. Try out various approaches in which you can solve a bug and maybe raise a PR for (?).
And lastly, keep communicating. Reach out to the Mentors/Maintainers on Communication Channel (Slack/Gitter/Discord/IRC) and talk with them. Most of them are quite helpful and would point you towards specific resources to get the hang of the Project. Leverage that.
Credit for advice :Harsh Bardhan Mishra , Google SoC '21
Post written by : Tanmay Shukla, G Soc'22