Joomla Google Summer of Code 2019

My name is Yatharth Vyas and I am a GSOC21 student working on the project Feature enhancement.

Overcome the fear of Contributing to Open Source Repositories having a huge codebase

Recently, a close acquaintance of mine began his open source journey. He asked me, "How do you not feel intimidated when you open a repository and the first thing you come across is a vast sea of folders with a myriad of files!". This brought back my memories of the days when I took my embryonic steps in open source contribution. I would be lying if I didn't admit that I felt cowed the first time. So, I have a message for all the open-source novice who has been in the same shoes as me; ‘You are not alone and you don't have to be the know-it-all fellow’.

It is never easy to adapt to change, but stepping out of your comfort zone is necessary for upscaling yourself. Based on my experience, I have algorithm-ized a set of steps that will help you climb the staircase of open source.

Back to Basics: Make sure that you have a basic understanding of the programming languages that comprise the tech stack of the repository. Alphabets make words and words make sentences, these sentences coalesce to form a language that helps you read the code. Although preliminary, this is the most necessary step.

Dock the Docs: Many ships sail past the dock of documentations because they neglect the importance of reading them. Reading documentation can prove to be the difference between reading the code and understanding the code. It is also important to note that documentation is generally written in a particular sequence like a book and it is strongly advised to follow it because every section of the documentation is analogous to chapters of a novel and the early pages build up the context for the latter.

Browse Existing PRs: It is necessary that you learn from the best before you dive and rest. Reading merged PRs help you understand the methodology and templates followed by a repository. It is important to respect these templates and if you follow along similar lines as the merged PRs then you will not only reduce the resources exhausted by maintainers in reviewing the PR but also help yourself in increasing the number of your merged PRs. It is recommended to test PRs once you get the hang of it.

Ready Set Go: At this stage, you are well equipped to take on your first Issue. GitHub has an amazing feature that allows contributors to assign 'tags' to issues. One such 'tag' is 'Good First Issue' which symbolizes a beginner-friendly issue, usually having a simple fix. Remember, it is not always easy to find a solution so for such situations, it is advisable to use the 'Subscribe to thread' feature in GitHub so you can get notified when someone comments their findings of the issue or if someone solves it. Reading through their solution will help you understand their approach and it'll surely develop your skillset for squashing future bugs. Sometimes, your PRs might not get merged instantly so it is vital to remember that Patience is the key. Never should you feel offended if a Maintainer takes time to merge your PR or decides to close it. Stepping stones are a part of learning and should be considered constructive.

Now you must wait for your PRs to get reviewed and then cherish the best moment of open source contribution, ie. The joy of knowing your PR gets merged.

Adhering to these steps, I was able to contribute to a number of Open Source Repositories, one of which was Joomla! CMS. I was fortunate to receive an opportunity to work on a Project for Joomla as a Student Developer mentored by the most qualified experts of Joomla under the Google Summer of Code Program. Stay tuned for the next blog to learn more about my journey working on this Project.