Downloading developers: The Google Summer of Code

Posted by s.aragon on 12 October 2016 - 9:52am

 

MentoringBy Raniere Silva, Software Sustainability Institute, David Pérez-Suárez, University College London, Stian Soiland-Reyes, University of Manchester.

Ian Holmes said on Twitter:

"You can download our code from the URL supplied. Good luck downloading the only postdoc who can get it to run, though".

Ian's quote raises awareness that those working on research software need to use best practices, such as version control, testing and documentation, in their daily work because otherwise, other researchers, developers or even the authors themselves will have difficulty getting hold of the software or making it work. Keeping software effort in your research project for a long period of time can be challenging, especially if you don't have access to a big budget; this is also true for many open source projects.

To help the open source ecosystem, Google has a programme called Google Summer of Code (GSoC) in which open source projects can mentor students "enrolled in or accepted into an accredited institution, including a college, university, masters program, PhD program and/or undergraduate program, as of the Acceptance Date" (Google Summer of Code 2016's Rules) during the summer. Google pays students US$5,500 for their work over three months.

During 2015 and 2016, we were involved in GSoC and met several successful students including some that continued to contribute to the project after the programme. In a way, the students could still be "downloaded", and their contributions were understandable some years after they had officially ‘left’.

Below, we detail some of these successful student projects and cover what the students did and how they continued to contribute even after their GSoC period was over.

Apache Taverna

In 2015, Larry Akah was one of three students accepted by Google Summer of Code—the other two were Menaka Madushanka and Denis Karyakin—to work on Apache Taverna (incubating) with his proposal to develop from scratch an Android application for Taverna. After the summer of 2015, he couldn't continue to develop the Android application at the same speed, but he stayed in touch on the Taverna mailing list or, in other words, Taverna community still could "download" Larry's expertise.

For Google Summer of Code 2016, Apache Taverna got two students: Nadeesh Dilanga, who added support for the container stack, Docker, and Thilina Manamgoda, who added support for Common Workflow Language and now has committer rights.

Additionally, Rajan Maurya also submitted a GSoC 2016 proposal to further improve the Taverna Mobile app. However, after all the slots and projects were  allocated, Rajan opted for his preferred proposal, Mifos X Android app. Rajan’s co-student, Sagar, volunteered to work on Taverna Mobile as an unofficial intern on his own initiative, and Rajan volunteered to mentor him. Working well together and with the wider Taverna community which Larry is part of, these students improved Taverna Mobile which is now ready for release. It’s also planned to make it available via the the Google Play store—an Apache first!

RouteFlow

RouteFlow "is an open source project to provide virtualized IP routing services over OpenFlow enabled hardware" that was born at the Brazilian CPqD Telecom Research and Development Center as part of an MSc thesis in University of Campinas. In 2010, the project was open sourced to make it accessible for other researchers. RouteFlow was a mentoring organization in 2013, 2014 and 2015, and during this time they mentored eight students. Christian Esteve Rothenberg and Raphael V. Rosa mentioned that RouteFlow reached out to other research groups thanks to Google Summer of Code and Google Summer of Code Mentor Summit, and, as a result, they had the opportunity to collaborate with interested students abroad on Software Defined Networking (SDN). Also, some interesting work was done in a fork of the project as described in the paper referring to Cardigan, which took RouteFlow into production for over a year. Christian also mentioned that Raphael started to work on RouteFlow in 2011 during his masters and continued to contribute to the project—he was a Google Summer of Code mentor on the 2013-2015 editions.

SunPy

SunPy has been benefiting from Google Summer of Code since 2013. For the first three years SunPy was under the Python Software Foundation umbrella and this year it moved to Open Astronomy. These umbrella organisations help small organisations to get noticed by many of the ambitious students GSoC attracts. SunPy is a library created to help solar physicists to analyse data within the scientific Python ecosystem, and if not for the support obtained through the GSoC and the European Space Agency's Summer of Code in Space their project wouldn't be where it is today. In SunPy's first participation in GSoC, they mentored Simon Liedtke who worked to implement a database system that allows scientists to know which data have already been downloaded and where it's stored. Since that first year, Simon has been around helping to fix bugs and even co-mentoring other projects in the following years. From all the 18 students SunPy have had the pleasure of working with over these years, David has had the opportunity meeting the three of them in person, and when that happen is a great feeling.

SymPy

In 2015, Amit Kumar was one of the six Google Summer of Code students working on SymPy, a Python library for symbolic math. He worked on extending the equation solvers, or “solveset” as they called it. Thanks to his work, Sympy now includes the solution to the equation |z| = 1, i.e. the infinite solutions in complex domain, and the solution to many other equations. After the summer, Amit continued to contribute to SymPy and in 2016 he mentored two Google Summer of Code students that worked on Extending solveset and Completing Solveset. During PyCon UK 2016, Raniere had the opportunity to meet Amit in person. The authors are sure that the fact that SymPy users could "download" Amit (due to his continued engaged after one year of writing his first pull request to SymPy) makes their life much easier. It also increased SymPy's bus factor because more people are "downloadable".

Software Carpentry and AMY

In 2015, Piotr Banaszkiewicz was the only GSoC student working for Software Carpentry, a non-profit organisation that "teaches researchers in science, engineering, medicine, and related disciplines the computing skills they need to get more done in less time and with less pain." He worked on AMY, a customer relationship management software solution, under the supervision of Greg Wilson. Thanks to his work,Software Carpentry and Data Carpentry, its sister organisation, could expand the number of workshops organised every year.

After the summer, Piotr kept contributing to AMY as well as being a Software Carpentry instructor in Krakow. In 2016, he was a Google Summer of Code mentor for the first time and mentored Christopher Medrela. Christopher extended AMY to handle the instructor training events run by Software Carpentry, which was a bottleneck at the time in accommodating increasing number of requests.

How can my project participate?

Mentoring pays off since it increases the probability of someone be "downloaded" by the previous success cases, so if you want your project to  be part of Google Summer of Code 2017, follow these simple steps: .

  1. Your project must be open source. If it isn't, you can read these guidelines on how to make your project open source.

  2. Your project must have some mentors. You can start by inviting your colleagues to be mentors.

  3. Your project must have some project ideas. Project ideas are suggestions of what students can accomplish over the summer. All project ideas must have at least one possible mentor. Check how the projects listed above list their ideas.

  4. Read more about what it means to be a Google Summer of Code mentor. If you have questions, you can ask on the Google Summer of Code mailing list.

Normally, applications for mentoring organisations will open on January 19, 2017 as announced by Google but we suggest that you start organising the application early on. Many academic institutions joined previous edition of Google Summer of Code, even with quite specific projects. You will find a list of some academic institutions in the further information section below.

Further information

  1. Google Summer of Code 2016: Common Workflow Language, Docker and Apache Taverna. Stian Soiland-Reyes. http://bioexcel.eu/gsoc2016-cwl-docker-taverna/

  2. And Google Summer of Code has ended this year!!! David Pérez-Suárez, Tom Aldcroft,  Erik Tollerud, Stuart Mumford. https://mail.scipy.org/pipermail/astropy/2016-August/004303.html