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 inMANIFEST.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 thegh-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 thegh-pages
branch, and regeneratecompositeContents.xml
andcompositeArtifacts.xml
. - Add setup link for eclipse installer in the
static/installation-links.html
file ofgh-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.