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.
The program is almost over, with only the results are yet to be out.
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.
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!