This week was the first evaluation for GSoC program. I got great feedback from my awesome mentors and cleared 1st phase with flying colors. Horray! As for the work, this week was mainly solving issues with the features I already added in the past few weeks and refactoring code with help of Matthias.
Adding JUnit test for SBSCL
SBSCL was refactored, recently, as per maven standards and this made the overall build and test process fluidic. Several JUnit tests were added to the src/test/java folder which can check existing features. After adding all the tests, the folder looks like this:
org/simulator/ |- sbml -> Contains test files for SBMLTestSuite and individual SBML models |- sedml -> Contains test files for SED-ML L1V1, L1V2 and L1V3 |- comp -> Contains test files to run a hierarchical SBML models |- omex -> Contains test files to run an OMEX archive |- fba -> Contains test files to run constraint based models
Each JUnit test refers to a resource file which can be found in src/test/resources. Currently, we have a few test resources of each type while big resource files such as SBMLTestSuite and BiGG models are downloaded during runtime using Travis.
Continuous integration with Travis
Continuous integration with Travis was the obvious next step. Travis is a great online GitHub app which can test your code online for every commit. This is especially useful when all the developers are using different operating systems since current code might build locally but break when others try it. Now, working-branch of SBSCL is integrated with Tavis and after every commit, Travis automatically verifies the build and runs all the JUnit tests.
To integrate Travis in your repo, simple add .travis.yml file in the home directory of your repo, define the language and version. Simple! In our case, we use Java as our programming language and maven to build our tool, therefore, a simple file looks like this:
– cd src/test
– mvn clean install
Using a new data structure for dataGenerator with repeatedTasks
Our current work is related to repeated tasks and SED-ML L1V2 support. After adding support in SBSCL to run repeated Tasks, all the code following that has to be updated with different a data structure.
Currently, all our code is on the working-branch and once all the current SED-ML issues are addressed, we will do our first merging with the master branch.