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-export
Most 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@ModelSettings
Atomic 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 kickOff
The 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.