My journey through GSoC ‘19

Community Bonding Period

Laksh Singla
InterMine
3 min readJun 9, 2019

--

INTRODUCTION

I am among the 6 selected students who will be working with InterMine during Google Summer of Code ‘19. During the period of 3 months, I will be working on making improvements in the imjs and im-tables libraries. Before I share my experience about the community bonding period, I would like to thank my mentors Aman and Yo for guiding me during the proposal period and the community bonding period, and trusting me with this task.

ABOUT THE PROJECT

InterMine helps in storing of biological data, and makes querying data from different sources easier. imjs is the client(web) side library used to eliminate the boilerplate code involved in achieving the above task. im-tables helps in displaying the queried data in a tabular format. imjs and im-tables are the primary libraries leveraged to build web-apps using InterMine's data sources. Dependencies of both of the libraries are out of date, and one part of my project aims to update these dependencies and ensure that the libraries build properly. Another part of my project aims to improve upon the current condition of the tests of the libraries by dividing them into integration and unit, and setup a response mocking framework in place. Documentation of both the libraries will be improved and helper functions for the intermine-registry API will be added to imjs. A more detailed version, additional tasks and proposed timeline for the project can be found out in my proposal.

As stated earlier, I’ve been assigned two mentors for my project, Aman Dwivedi and Yo Yehudi (yo) who will guide me throughout GSoC period and review my ideas .

WORK DURING COMMUNITY BONDING PERIOD

I was primarily focussed on upgrading the outdated dependencies. The current state of the dependencies (after the Community Bonding Period) is as follows:

1. imjs: I have successfully updated all of the outdated dependencies of imjs library to their latest version, and ensured that the tests pass. Extensive testing of the library in real scenarios still remains, and is important to ensure stability of the library as tests are not a formal and complete measure to prove the correctness of a software. Untested bugs could have crept in due to interaction of the newer versions of the libraries.

2. im-tables: Most of the dependencies have been updated. However `grunt-contrib-coffee` (and therefore `grunt`, listed as its peerDependency, whose newer version is incompatible with the current(obsolete) version of `grunt-contrib-coffee`) is causing the build to fail. CoffeeScript’s newer version introduces many breaking changes. The major issue arises because the plugin is unable to pinpoint which portion of the code is causing the error. Its like looking for a needle in the haystack. I might try using linters to see if I can find the error.

PS: The community call was fun. I need to open up more :/

Looking for a productive vacation (note the irony!) ahead.
Laksh Singla

--

--

Laksh Singla
InterMine

Open source enthusiast, Rock Lover, GSoC ’19 @ InterMine…