For the last few weeks I got the opportunity to be involved in the Google Code-In 2014 program as a mentor for FOSSASIA (Thanks Andun Sameera!). It was challenging than I thought specially while doing a full time job. But was a great experience and I learned things myself with the students.
FOSSASIA’s co-admin Mario Behling initiated an interesting project at the start of the program to give students an opportunity to experience open source development culture. The project was to create a small website to hold FOSSASIA’s students’ and mentors’ details. It came out to be a great success with a cute little website being created and more importantly a nice little community of students created around it.
Usually there is a barrier you need to get past as a novice contributor, to get your first commit merged in to an open source project. The administrators would want you to follow annoying coding conventions, to “combine your 5 commits, solving a simple small bug into one big commit” or to “rebase your pull request on top of master”. Until you continue contributing for some time and realize the importance of those, and start to appreciate them, they are just some annoyance that you have to deal with, on the way to get your work integrated.
We for this project initially made this barrier very very less challenging. We would merge pull requests if they do the job. This so that young student contributors don’t feel discouraged and only until they get themselves started. But having being well mentored at Google Summer of Code 2013 I wanted some niceties in our git commits. So I made learning them into a task.
Google Code-In Mentor Aruna Herath at work
The task was to learn how to make your local commits look nice before you push them to the repo. To make it more organized and can be evaluated, and hopefully fun, I built up a small set of commits with a interesting bit of a commit history; a story. I added the set of commits to a Github repo that includes wrongly commited commit message and two commits that could look better sqashed into a bigger commit. Students are asked to clone the repo and then using git interactive rebase, make the commit history look better. The story of the commits and a set of instructions are given. Then they have to blog about there experience. They came up with some great write ups! Some focused on the technical aspects and were of a tutorial point of view. Some were explaining the personal experience writers themselves got and were on a lighter, less technical, language. However all were great!
I think I got few students to learn something that will be valuable in their future careers and also one student to start blogging! When I saw a set of commits that could be better organized in a pull request for any of FOSSASIA’s repositories, from a student who completed this task, I asked them to make them better. Thanks to above task, they knew the terminology, and communication was easier. When I say squash these commits and reword the commit message to something like this, they knew what I was saying, and how to do that, and were happy to oblige.
We gradually made it harder and more challenging, bringing the barrier to the usual level, for students who hang around to complete more tasks. This hopefully resulted in not only the finish product, but also the path towards it, to be in great shape. Students managed to complete many more very valuable work for FOSSASIA. It was fun working with them and I wish them an exciting and a fruitful future!