Google Code-in 2016
05 January 2017 on contest. 4 minutes
Over the past month I have been participating in Google Code-in (#gci2016) and it has been a great journey for me! It is all about FOSS development, and all of the challenges and skills involved. I discovered it through a recommended blog post written by m4tx, a graduated student from my school who participated in 2013. After reading his blog post, I got motivated to follow his workflow and chose to do tasks for Wikimedia. So after studying the contest rules, I signed up for the contest and got my first task started.
I already had some experiences in contributing to free open-source software development, so tools like Git or Gerrit weren’t anything new for me. Also I had got a look 2 years ago as a intern in closed-source software development, where version control using Git was heavily used to work together in team. But I never was able to collaborate with others on a project of a such scale like Wikimedia was.
Wait, do you mean Wikipedia or isn’t this a typo?
No. The Wikimedia Foundation is the non-profit organization behind Wikipedia, Wiktionary, Wikiquote and other wiki projects, while MediaWiki is the software that powers all of these sites. Click here to read more about the differences between Wikipedia, Wikimedia, MediaWiki, and wiki.
How was my experience with Wikimedia?
At the beginning I was a little bit confused of the fact that they host the code on Gerrit and fill bug reports on Phabricator, instead of doing that on GitHub. So the first thing that I did, is adding a small note to the Gerrit/Tutorial page on MediaWiki for future contributors like me.
Setting up the development environment using MediaWiki-Vagrant was an easy task and done within 2 hours on my old laptop, on which I installed Ubuntu 16.10 beforehand. Also, I decided to setup an IRC bouncer to be always up-to-date with conversations in the IRC channels while I’m away. For that purpose I simply installed ZNC on my VPS, setup the IRC network and joined some channels. Now I can connect my IRC client to my VPS, instead to Freenode and close it without missing any interesting conversations or messages, nice!
After that, I began my work by selecting my first task. I decided to skip maybe the beginner tasks, as they weren’t challenging enough for me. So I ended up with picking up a small task, to warmup, which said “WikidataPageBanner when using page images generated API renders badly cropped images”. It was a nice feel to submit my first patch to Gerrit for review, as I didn’t know what feedback to expect from my mentors. After my change got merged and the task on GCI was approved, I claimed more and more tasks, as my goal was to finish one task every 2 days. I wrote code in PHP and JavaScript, with each change improving (or sometimes destroying) some parts of the MediaWiki related projects like extensions or the core itself. And with time to time I learned to get more familiar with the APIs, I began to understand where to look and how to search for the things I needed. With that knowledge I was able to complete my tasks faster and better.
Yes, you could say that I motivated myself to keep going, but it was definitely worth doing that.
Here is a sample of the tasks I did:
- Replaced wrong message-key used in NewsletterDiffEngine.php
- Removed deprecated class ImageGallery
- Added ability to configure the web service endpoint
- Improved code readability in Quiz extension by reformatting code
Each of these tasks had one or more mentors assigned and nearly every mentor I worked with at Wikimedia was nice and helpful. I would like to thank AKlapper (Andre Klapper), Reedy (Sam Reed), FlorianSW (Florian Schmidt), Mvolz (Marielle Volz), Jdlrobson (Jon Robson) and many other WMF employees along with volunteer contributors; you guys are doing amazing work for community! I spent my best time of my life during the contest when working with Wikimedia and I decided to keep up contributing to MediaWiki as volunteer in my free time.
Will I participate next year?
Sure, yes, I will! Taking all my experience I’ve got over the last month I can only recommend everyone who is reading this to take part in next year’s Google Code-in. It let’s you feel important, because you get to code real-life things and be a part of the community that power some highly used piece of software.
P.S. You can still jump into GCI 2016 before 13th January 2017, so go ahead and take a look inside!
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.