Hey there! So, I am guessing you've already stumbled upon the word "Open Source". If you are new to this word, then worry not as I will attempt to satiate your inquisitiveness about it. Now, let's delve deeper into what open source is and how it could be beneficial to you.
What is open source contribution?
There are various software and projects whose code is publicly available to modify and use. Such software and projects come under the category of Open source. For example, Linux, WordPress, and VLC media player are open-source software.
Open source contribution involves contributing to the development or improvement of software and projects. This contribution may include improving documentation, adding new features, fixing bugs and much more. All these contributions play a significant role towards making the projects functional and enhancing the user experience to a greater extent.
What is GSSoC?
Many organisations conduct Open Source programs to familiarise students with open source. One such organization is the GirlScript Foundation which conducts GSSoC every year.
GSSoC is an acronym for 'GirlScript Summer of Code'. It is a 3-month long Open Source Program conducted every summer mainly from March to May where contributors from various aspects of life gather and work towards contributing to different projects.
Do not get confused by its name, this program is not gender-specific. This program is open to participants of all genders, age groups, and countries. The main aim of it is to spread awareness about open-source development while encouraging diversity.
How to apply?
The registrations for participants mainly begin in February or March. All you have to do is fill out a google form mentioning your details and answering some questions such as:
Why do you want to participate in this event?
What are your expectations?
Give a detailed descriptive answer as it will play a key role in your selection. They should be able to see how passionate you are about it.
After filling out the form, if you are eligible then you will receive a confirmation email within 1-2 weeks of applying.
Visit and explore their website for getting the registration form and further details.
How to choose projects?
In GSSoC, there are hundreds of projects to choose from. You are free to work on any project but I would suggest you start with a project which is based on your tech stack or tech which you are intrigued to learn.
Step 1. On the official website of GSSoC, click on the project section.
Step 2. Choose any project that matches your tech stack or in which you are interested.
Step 3. Click on project details to get the project video as well as the GitHub repository's link.
Pro Tip- Don't just stick to one project. Try contributing to at least 3-4 projects. This will give you the experience of how different organisations work, and what are their rules and code of conduct. It will be beneficial for you when working in a professional environment.
How to start contributing?
Now, we have reached the crux. Let's take it to step by step.
Firstly, navigate to the GitHub repository of the project and see what new features or bug fixes you can contribute to the project. Then, create an issue and explain how you will solve this issue.
If you are facing difficulty in deciding how you should contribute to the project then you can start by improving the documentation or adding README.md, CONTRIBUTION.md and CODE_OF_CONDUCT.md files to the project as these files act as a guiding light for new contributors.
The links given above can be taken as a reference when adding those files to your selected project.
Some projects already have a set of issues created and those are assigned on a first come-first serve basis. You have to comment on the issue telling that you are a GSSoC contributor and that you wish to work on this issue.
The issue will be assigned to you by the project admin or mentor. The mentor will also assign labels to the issue.
Once you've been assigned the issue, you can start working on it by setting up the project.
Start working on an issue only after it has been assigned to you otherwise your PR(pull request) will not be accepted.
A. Setting Up The Project
Step 1. Fork the project.
Step 2. Open Git Bash in the folder where you wish to work on the project in your system and clone your forked copy of the project.
$ git clone https://github.com/<your-account-username>/<your-forked-project>.git
Step 3. Move to the project folder.
$ cd <your-forked-project-folder>
Step 4. Add a reference to the original repository.
$ git remote add upstream https://github.com/<author-account-username>/<original-project>.git
Step 5. Check the remotes for this repository.
$ git remote -v
Step 6. Always take a pull from the upstream repository to your main branch to keep it at par with the main project(updated repository).
$ git pull upstream main
B. Contributing To The Project
Step 1. Create a new branch (Do not name it 'main', 'master' or anything random).
$ git checkout -b <your_branch_name>
Step 2. Perform your desired changes to the code base.
Step 3. Track your changes.
$ git add .
Step 4. Commit your changes.
$ git commit -m "<commit message>"
Step 5. Push your changes.
git push -u origin <your_branch_name>
Step 6. Go to GitHub. Then, head over to your forked repo and click on "Compare and pull request".
Hooray! You have made a PR. Now, the project maintainers will review your PR and merge it. They will also assign Level labels to the PR according to the difficulty of the issue.
Prizes- When the event ends, the prizes will be distributed to the contributors as per the following criteria:
1. Top 3 contributors will receive amazing cash prizes.
2. Top 10 contributors will receive internship opportunities.
3. Top 25 contributors will receive cool T-shirts and swags.
4. Top 50 contributors will get Shout-outs on socials.
5. Top 100 participants will get a Certificate of Appreciation.
6. All the participants who have acquired at least 60 points on the leaderboard will receive a Certificate of Participation.
The above-given data is for GSSoC'22. It may vary for upcoming years.
Doubt Solving- Once the event starts, then community bonding sessions are held to familiarise mentors and contributors with each other so that queries and doubts can be easily addressed. The mentors are highly supportive and will always try to solve your problem.
Networking- You can make numerous connections and improve your communication skills here.
Workshops- Various workshops are organised on Git, GitHub, Open Source and new technologies to enrich your knowledge.
Growth- After 3 months, you will see that you have come a long way and gained a lot of knowledge. This will reflect your growth.
Now, it's time to narrate my experience. I came to know about Open Source and GSSoC when I heard some of my peers applied for it last year. So, then I searched what it is and filled out the registration form with the necessary details and descriptive answers.
The coding period started on 1st March. I searched through various projects and selected a project which was based on ReactJS as I wanted to learn React. I commented on an already existing issue and it got assigned to me. But in March, I had my end-semester exams due to which I couldn't contribute the whole month.
In April, I made my first PR for the issue and it got merged. I felt exhilarated and wanted to contribute more. Then, I selected 3-4 projects and began contributing extensively to them.
This is my contribution chart on GitHub.
Whenever I had doubts, I asked them on the discord channels and received immense help from the mentors and fellow contributors. I also helped other contributors if I knew the solution to their questions. I learned a lot throughout this journey. Also, I ended up being one of the top contributors in GSSoC'22.
I hope I was able to provide you with sufficient information and clear all your doubts regarding GSSoC through my blog.