A customized Collektive bootstrap for experiments based on the Alchemist simulator, with releases and data analysis ready. For further information about how the Alchemist simulator works, please refer to the Alchemist documentation.
Upon generation of an experiment from this template:
- add a secret github token with
repo
permissions namedDEPLOYMENT_TOKEN
; - edit the project name in
settings.gradle.kts
; - edit the DockerHub user name in
docker-compose.yml
; - add a secret called
DOCKER_PASSWORD
with your DockerHub password; - edit the DockerHub password in
.github/workflows/build-and-deploy.yml
;
WARNING: re-running the whole experiment may take a very long time on a normal computer.
- Install docker and docker-compose
- Run
docker-compose up
- The charts will be available in the
charts
folder.
- Install a Gradle-compatible version of Java.
Use the Gradle/Java compatibility matrix
to learn which is the compatible version range.
The Version of Gradle used in this experiment can be found in the
gradle-wrapper.properties
file located in thegradle/wrapper
folder. - Install the version of Python indicated in
.python-version
(or usepyenv
). - Launch either:
./gradlew runAllBatch
on Linux, MacOS, or Windows if a bash-compatible shell is available;gradlew.bat runAllBatch
on Windows cmd or Powershell;
- Once the experiment is finished, the results will be available in the
data
folder. Run:pip install --upgrade pip
pip install -r requirements.txt
python process.py
- The charts will be available in the
charts
folder.
Follow the instructions for reproducing the entire experiment natively, but instead of running runAllBatch
,
run runEXPERIMENTGraphics
, replacing EXPERIMENT
with the name of the experiment you want to run
(namely, with the name of the YAML simulation file).
If in doubt, run ./gradlew tasks
to see the list of available tasks.
To make changes to existing experiments and explore/reuse, we recommend to use the IntelliJ Idea IDE. Opening the project in IntelliJ Idea will automatically import the project, download the dependencies, and allow for a smooth development experience.
We keep a copy of the data in this repository,
so that the charts can be regenerated without having to run the experiment again.
To regenerate the charts, run docker compose run --no-deps charts
.
Alternatively, follow the steps or the "reproduce natively" section,
starting after the part describing how to re-launch the simulations.