This summer, I was very fortunate to work on the Apache Airavata open source project as part of the Google Summer of Code. My mentor Suresh Marru and the whole team at Airavata were very helpful. I worked on a few features of Airavata which I will summarize in this post.

My Contributions:

During this period, I worked and solved many issues on JIRA which were later merged into the Airavata code on Github.

As I was working from the Science Gateways Research Center at Indiana University Bloomington (IUB), I was in constant touch with the Airavata team and took part in meetings and code reviews throughout my summer. I also got the opportunity to attend the Practice and Experience in Advanced Research Computing conference held in New Orleans, LA from July 9-13 where I presented a poster on Database Versioning in Apache Airavata - PEARC17_Poster_DatabaseVersioning.pdf

Tools I Learnt:

Laravel, an open source PHP web framework

Django, an open source Python web framework

Liquibase, an open source version control tool for databases

Issues Assigned and Associated Pull Requests:

You can find all the issues I worked on and the PRs I created that were merged in this document.

Challenges Faced:

Since most of the tools I worked on during my summer were new to me, it took me a while to get accustomed to them. But with the help of some KTs and meetings, I was able to pick it up and contribute to resolving issues.

Database versioning is a challenging task as we must keep in mind not only schema changes but also data changes made. Testing the available tools and finding the right fit was time consuming. Now that I have decided to use Liquibase, it will be necessary to cover all sorts of corner cases and situations while testing it.

Future Work:

There is a lot of work to be done with respect to Airavata's Sharing Service and Registry Database Versioning.

Airavata's Sharing Service - We now have a simple group management portal which achieves user group creation and management. We still need to integrate file uploading and project sharing features so that the users can also share their experiments and workflows with the group members.

Registry Database Versioning - With the Registry changing every day and a lot of migration that needs to be done with respect to the legacy data, we need a method to version the database changes so that we can maintain the revisions and perform rollbacks efficiently.

When I started with GSoC late April, I was not aware of the ways of open source development. The Science Gateway Architectures courses (taught by Marlon Pierce and Suresh Marru) I took in my first year at IUB introduced me to good practices in distributed systems and Apache Airavata. Writing to the Airavata dev mailing list has helped me in solving most of my problems. I wish to contribute more to Airavata in the coming days and work on the issues and take part in code reviews.