This blog tells you more about how I started my open-source contributions what are the challenges that I encountered and the steps that I took to tackle them.
The world of open source remained unknown to me for a long time because of my background and limited access to knowledge. When I first got to know about open source, it fascinated me and I was excited to dive deep. I always want to contribute in projects that is used by many people so I can see my changes impacting many lives. It not only feels good but also made my technical skills more stronger, and On top of it it adds a tag of CONTRIBUTOR on my github profile ;) that looks pretty COOL!!
I started skimming over various projects in search of a place to start, but soon I realised I was getting nowhere.
Without any guidance, it is very difficult to know where to start. After days of searching and reading articles, I decided to ask help from the open source community itself.
As a newcomer it was difficult to find a person to whom I could contact, wondering how to message or question him/her, whether they would find my question reasonable, grammatical correctness of language, waiting for response all such thoughts flooded my mind.
After few failures, I was able to connect with a person who could explain me how to contribute in software. Even after I got a rough idea on the way of contributing, another challenge was waiting for me. I was unable to decide the projects that I can contribute to. I wished there was someone who could understand my skill-set and guide me to shortlist a project suitable for me.
Without any help, I struggled a lot with projects which were either too difficult for me to understand or some were not related to my skill-set at all.
Finally, I decided to start with KUBERNETES repository.
After deciding the project the next challenge was to understand the code issues and project architecture. So Now I would like to add detailed steps of how one should proceed.
1. Decide your language in which you want to contribute.
For me it was golang. Even if your just a beginner choose any language that is used extensively nowadays.
2.Google about the most used projects written in that languages and choose one of them
I got a list of multiple projects and among them I choosed Kubernetes.
3. Setup project in your local
First search for kubernetes github it will open a kuberentes github code.
On that page you fill find out the steps to be followed. Then look for developer's documentation Where you will get the whole guide list.
Along with this join the slack channel for kubernetes community where you can discuss your issues with other people.
Read the developer documentation and follow the steps on How to setup in your local? documentation.
Next we will see how to find the right issue to start with.
4.Find the right issue to start with
In the slack channel join #kubernetes-dev and first give a brief introduction about yourself and ask on which issue you should start contributing.
Everyone suggested me to start with fixing Static check failures issue that can be solved without any prior knowledge of kuberentes.(If you want to learn about kuberentes then follow this)
Then open the issues and read all comments carefully on the PR, with this you get a jist of what's happening. Look at other people's PR and see what did they did. (For reference you can check my PR to fix some static check failures).
After this pick some packages from static file and start doing the changes in local.
Before commiting your changes DON'T forget to run test file on the package that you would change. This will give you more confidence on your changes.
After doing all changes go ahead with the commit and push your changes. And if it requires any further change then all those steps will me mentioned in your PR by mentors.