Building the Simulation Tool - dice-project/DICE-Simulation GitHub Wiki

Building

⚠️ We strongly recommend you to check the minimum required versions of Java for the Eclipse/DICE Simulation tool version you plan to build. Maven should be run in a JVM meeting these requirements. ⚠️

Please, also notice that newer versions of Java have a shorter life cycle and as a consequence they may be deprecated by Tycho (the Eclipse build system). For that reason, we strongly recommend you to only use LTS versions of Java that meet the compatibility requirements.

The DICE Simulation Tool is built with maven and Tycho. You only need a working installation of maven to build the DICE Simulation Tool by your own.

To build the plugins and create an update site, simply clone this repository, and execute the clean and verify maven phases in the root of the project. I.e.:

git clone https://github.com/dice-project/DICE-Simulation.git
cd DICE-Simulation
mvn clean verify

Once the compilation has finished, a readily usable update site will be generated in the releng/update/target/repository subdirectory.

Tests

The build process also includes tests. Some of them, however, require a running GreatSPN instance. Tests requiring GreatSPN are disabled by default.

As in the case of running the DICE Simulation Tool, you can use our Docker image to run the tests requiring GreatSPN. In such a case, first launch the GreatSPN instance, and then explicitly ask for the execution of the integration tests by running:

mvn clean verify -Pintegration-tests

If you changed any of the default configurations of our GreatSPN image, YOU MUST UPDATE the connection data used for the tests by editing the file tests/es.unizar.disco.simulation.tests/src/test/resources/config.properties.

Generate pre-built product

Generating pre-build products of the DICE Simulation tool is costly. For that reason, the generation is disabled by default. To generate the pre-build products, it is necessary to activate the build-products profile:

mvn clean verify -Pbuild-products

Preparing a new release

In order to prepare a new release, it is necessary to change the version of all plugins, features, and pom.xml files at a time. To do this, simply execute (where x.x.x must be replaced by the desired version number):

mvn clean tycho-versions:set-version -Pbuild-products -DnewVersion=x.x.x-SNAPSHOT

Release checklist

Releases and versions of the DICE Simulation are referenced from several places. This is a check list of things that may need to be checked on every official release:

  • Update version numbers in MANIFEST.MF.
  • Update minimum version in Require-Bundle directive in MANIFEST.MF.
  • Refresh dependencies in feature.xml files.
  • Add release x.x.x to the file releng/setup/dice.simulation.catalog.setup.
  • Create a dedicated setup file for the release in releng/setup/dice.simulation.configuration.x.x.x.setup.
  • Add new release in a dedicated directory in the form updates/x.x.x. to the gh-pages branch. The directory with the version number must be a composite update site, pointing to DICE-Simulation-Utils with the actual build inside a child directory (see releases >= 0.7.0).
  • Add new release in the updates/build.xml file of the gh-pages branch, and regenerate compositeContents.xml and compositeArtifacts.xml.
  • Add setup link for eclipse installer in the static/installation-links.html file of gh-pages branch.
  • Update the compatibility between Eclipse versions and the DICE Simulation Tools table (only on major releases).
  • Add release to Archived Update Sites.
  • Add setup link in Installation.
  • Update changelog in the wiki.
  • Create a release in GitHub, tagging it as vx.x.x.