Last updated on 16th July 2024
24th September 2022
This is a major relase of the software which focuses on improvements to data output, simulation control, determinism and debugging, scenario manipulation, and more. Please note that while 2.5.0 is available it is highly recommended to use 2.5.2 due to various fixes for both Spark/Hive configuration, Scala compatibility versioning, and console fixes.
Upgrading can be done by changing the simudyne.version setting in your pom.xml to 2.5.2. You MUST also switch any instance in your pom.xml where a library like simudyne-core-abm_2.11 exists to simudyne-core-abm_2.12 - This is because as of version 2.4 the SDK is now using Scala 12. If you have been using 2.4.0 or 2.4.1 you will likely not need to make this change.
There are a few breaking changes in version 2.5 that may affect your existing models:
@ModelSettings annotation. Most notably the ticks and macroStep have been removed in favor of the new end for working with new simulation control clockcore.parquet-export-path is now core.export-path and core.export.username/core.export.password instead of hive-exportMost other features have been additive function wise and should have no discernable impact.
The following changes have been broken into the main X categories below.
We've provided a change to how models process start, interim, and end states. This allows for both better control, and easier readability in composed sequence flows of models. For more info please refer to the modelling sections particularly Model Interface
firstStep, lastStep, kickOff functions that act as run but at corresponding timesdone function for actions to be called once model has ended, and finish to prematurely end the model@ModelSettingsAtomic Logging is a new process by which actions and messaging can be set to automatically record to an external file every 'atomic' action that occurs. This will allow for greater debugging, and is tied into the Determinsim health check which has seen some changes. See Atomic Logging for more.
3 ticks, this to support control clock changes in functionality such as kickOffThe Simudyne SDK previously was able to handle ingestion of JSON/CSV data to populate agents/network, and output to Parquet or Parquet format on HIVE, with other data available only via the REST API in JSON. We've now added multiple output formats as standard that will work the same as Parquet in terms of serializing structures or working with output channels.
As part of changes in 2.4.1 we made some changes to improve how scenarios work with the console in Interactive mode. Typically scenarios are meant to be used/defined with the Scenario Runner, but as the console remains an easy way to debug and see visually changes in parameters this required some changes.