GSoC 2018 journey

What is GSoC?

Google Summer of Code (GSoC) is an online, international program designed to encourage university student participation in open source software development. Students work for an open source software organization, and earn a stipend for successfully completing the project. If you want to know more about GSoC, click here.

How it all started?

I joined a student club called FOSS@AMRITA in Amrita University, where a group of students work on various open source projects helping each other. I got to know about GSoC from the club itself, most of the previous year GSoC students from our college were members of the club. I was motivated by seeing them and started learning coding, staying in the lab after my college hours. Why I was attracted to GSoC is for real world experience, to prove myself that I can do something and for swag, stipend too.

Why coala?


Choosing an organization from previous year GSoC orgs was a hard one. Initially, I chose Joomla and started searching for beginner issues in it. As I was very new to software development, understanding the documentation and guides was so difficult to me and I was going no where with any issue. One of my friends, Naveen Tata suggested me to join coala, I did join coala and I received a proper welcome, documentation to start with. If I recall correctly, it was John Vandenberg, who welcomed me. I started reading documentation and it was very clear, properly formatted. I have to say, coala is the best newcomer friendly organization. FYI, coala stands for code analyzer application and coala is always written with a lower case `c` :P

How was your journey in coala?

coala has a very large community and everyone tries to help each other. In January 2017, with the help from community I made my first contribution to coala by fixing a newcomer issue. Then, I worked on various repositories fixing bugs and I even added a bear called TOMLBear in coala-bears. A bear in coala means a linter to analyze code. By seeing cobot, I started gaining interest in developing chat bot, automation. I have fixed some issues in it and my significant work was to add a feature called `Hello World` to automatically invite users to organization when a user sends `Hello World` message  through Gitter.  In 2017, I couldn't apply for GSoC because I wasn't prepared and wasn't old enough to apply for GSoC. In the same year, a project was selected to port cobot which is a based on coffescript bot framework hubot to python bot framework errbot. So, cobot was changed to corobo and I was somewhat left out. I haven't done any significant work after that. After few days, I was selected as a mentor for Google Code In(GCI) 2017. I mentored mostly newcomer and corobo related tasks. That way I again started working on corobo.

What made you choose a particular Project?

During GCI 2017, there was some guy who was creating some nuisance with the community members and started misusing our automation bots, corobo and rultor, to get PRs merged. So, due to security issues, rultor and corobo were shutdown. Maintainers work increased and everyone missed corobo. In GSoC 2018, I made a proposal on a project to enhance corobo security and introduce some new features. Are you confused where the hell is GitMate? Here comes the twist, when I asked John Vandenberg to review my corobo project proposal, he suggested some enhancements and asked to make a proposal on GitMate plugins project to add plugins which support coala development workflow. Initially, I hesitated to make a proposal on GitMate project, because I didn't have any idea about it's working and it was just 2 days before proposal deadline. But, John encouraged me that I already have some experience in corobo, so I was capable to understand GitMate too and as my first proposal was finished I thought of considering writing a backup proposal. I did some research on GitMate and finally ended up writing a better proposal than the first one. In the mean time, I tried to understand GitMate, not because that I have written a proposal, just was interested to know about it. After few days, results were out, I was very happy that I was selected, at the same time I was also shocked to see that I was accepted for GitMate project but not for corobo project. Many thanks to John for insisting me to make a backup proposal, it did help me out. Fun fact: John also suggested me to write a third proposal for another organization :P I should have written a third one also.


How did you spend your GSoC time period?

I didn't have much experience with GitMate, so when results were out, my first work in community bonding period was to get familiar with GitMate and IGitt code base. I thought best way was to solve some issues in those repositories and understanding it's working. In few days, I got familiar with those code base with the help from my mentor Naveen Kumar Sangi. In the first two weeks of first phase of coding, I couldn't work for much time due to my University exams, but in the final two weeks I gave my best to complete as much as possible. My mentor Naveen was upset with me as I couldn't complete my work, but he gave me another chance to prove myself by getting me pass in the first evaluation. In the second phase of coding, I didn't waste any time and was working in the weekends too. With the guidance from Naveen, I completed most of the planned tasks in the second phase along with some incomplete work from first phase. In third phase, I worked most of time on implementing assign plugin and finishing off incomplete work from previous phases. After third phase completion only one issue was left out, which was to merge all review plugins into one, because it took some extra time for thinking of how to share settings between different plugins. I couldn't have completed the project without the help of Naveen, he was always helpful, active most of the time and he was able understand my problems. As I met almost all my goals, I think I will pass final evaluations.


How was your experience as a GSoC student?

I have changed around 10000 lines of code including additions and deletions during my GSoC period, but most of them are storing API request response, effectively I would have written around 4000 lines. I have made some good connections with community members, fellow GSoC students, mentors. I gained experience of real world software development and earned some money too. So, overall it was a great experience with coala and GitMate. 


What did you learn?

I learned management skills like time management, project management, communication, handling pressure situations. As for the technical skills, I am now strong at python, handling API request, web hooks and automation. My code quality has become better, I improved at writing tests, maintaining proper code coverage. I can also write some proper blog posts and documentation.


What will you do after GSoC?

I will still be contributing to coala and GitMate whenever possible. I will learn some new technology and create an interesting project.

Finally, I would like to thank John Vandenberg and Naveen Kumar Sangi for all the help they have done to me. If you want to check a detailed report on my project work, click here. This is my last blog post about GSoC. Once, I get the results, I will update this post.



EDIT - 1:

Yaay! Results are out and I passed my final evaluation too. It really feels great to complete GSoC.


Comments

Popular posts from this blog

GSoC coding phase 2

GSoC Coding Phase 3 ends