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.
During this period, I worked and solved many issues on JIRA which were later merged into the Airavata code on Github.
- Worked on improving the SciGaP's PGA Laravel Portal which is a PHP Gateway for Airavata.
JIRA ticket - SciGaP portal's gateway request form needs to be modified
Pull Request - PGA Enhancements and Bug Fixes, Checking for duplicate gateway request
- Started work on the Database Versioning to help the evolving Airavata Registry.
Reports on Database Versioning tools - SGA Contributions
Github Repository - Liquibase Prototype
- Started work on the new Django Group Management portal for Airavata's Sharing Service.
JIRA ticket - Web-based user interface for Group Management
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.
- 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.
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.