Non-functionals

Coding style

We’ve defined a relatively strict coding style, and have committed to also convert existing code and new changes to this format.

macOS support

We initially had lots of troubles for macOS, mostly related to the ability of specifying the random generator(static and non-static min/max methods). But these problems are now solved. We no longer use polymorphism for the random generator. Instead we use a templated attribute of the population generator to specify the random generator. We chose to use the standard random generators (random library) because of the extensive documentation. Moreover the random generator is no longer specified in the XML config file. We now use the commandline interface to indicate which specific seed and which random generator you wan’t to use.

Besides the random generators, there was also a minor issue with the visualization app. This problem was caused by a different folder structure of the Electron app on mac OS. The folder issue was resolved quickly and doesn’t require further information.

Continous Integration

At first, we misunderstood the requirements related to CI. These requirements are relatively easy to do in Jenkins, but our Git Workflow (which we’re very fond of) is thightly integrated with Travis.

As a solution, we’ve properly divided the build and run steps, and provided a much cleaner job log that gives you an instant overview of what tests failed.

We also use Travis Build Stages, a new beta-feature in Travis that allows us to build in 3 stages:

  • Code quality check
  • Unit Tests
  • Scenario Tests

and stop a build as soon as one of the stages fails, that way we have faster cycles and a better workflow.

Documentation

We host the documentation, for both the report and the user manual, on readthedocs.io. Since our documentation will rarely get printed, it makes sense to focus on web first, and pdf second. However, readthedocs.io still provides pdf’s.

We also make Doxygen documentation available through ReadTheDocs. We’ve tried integrating it into Sphinx, but the results were disappointing. For this reason, we simply used the html generated by Doxygen. (This too, is saved per branch).