Last updated on 16th July 2024
22nd August 2018
This is a minor improvement release, including a compatibility update for deployment on Spark 2.2.x.
json4s
is has been downgraded to version 3.2.11 to match Spark 2.2.x.Agent#setEnvironment
signature has been updated to be consistent with that in Vertex
, resolving a warning showing in some IDEs.LongAccumulator
and DoubleAccumulator
when running on machines with high core counts has been improved.final
or effectively final values such as Scala vals as inputs now gives a clearer, eager error detailing the issue.2nd August 2018
This is a bug-fix release, most importantly fixing issues relating to execution on Spark using YARN.
akka
and akka-http
have been updated to their latest versions (2.5.13 and 10.1.3 respectively)akka-slf4j
is now included as a dependency.akka-http-testkit
is no longer included as a dependency.26th June 2018
This is a critical bug-fix release relating to deployment on Cloudera Spark clusters.
fastutil
library has been downgraded from version 8.1.1 to 6.3, to match commonly deployed ambient libraries.null
when set from the console.8th June 2018
This release is primarily focused on bug fixes but does include a minor API change to be aware of when upgrading; Data injectors for links now receive the agent itself rather than an InitContext. This change allows link attributes to be set based on the agent, and for agents to be altered based on their links. Access to the seeded PRNG and agent ID is then available directly from the agent, e.g. Agent#getPrng()
.
Group<MyAgent> = generateGroup(MyAgent.class, 100)
// Before
myGroup.fullyConnected(otherGroup, MyLink.class,
// receives types InitContext and MyLink
(initContext, myLink) -> { ... });
// After
myGroup.fullyConnected(otherGroup, MyLink.class,
// receives types MyAgent and MyLink
(myAgent, myLink) -> { ... });
This release includes some improvements which can affect the behaviour of your models.
NaN
as the current value.int
and long
will no longer show decimal places in the agent table.String
are now supported in the console.nexus-server.nexus-lifetime
, has been increased from 30 to 60 minutes.nexus-server.batchrun-lifetime
configuration property to determine how long the server stores the results, and this is now timed from when the results are generated rather than when the batch processing is started.AgentSelection
, as returned by AgentBasedModel#select(Class<AgentType>)
, now includes subclasses of the given agent type in the selection.Agent#getMessagesOfType(Class<MessageType>)
, now include subclasses of the given type.loadGroup(Class<AgentType>, Source, SerializableConsumer<T>)
now runs after data from the source has been injected, rather than before.Agent
instance itself, rather than an InitContext
. This allows links to be created based on attributes of the agent, and also for agents to be updated based on link properties.Note that changes within this module should not directly affect any users of the API unless noted under core-abm, unless you are using this lower level implementation directly.
VertexSelection
now includes subclasses of the given agent type in the selection.Vertex
is now an abstract class, rather than an interface. Methods relating to accessing links, such as Environment#getLinks()
have moved from the Environment
interface to the Vertex
class.Graph#addVertices
now receives an InitContext
rather than a ConnectionInitializer
simudyne.core.graph.SerializationLevel
and related configuration setting core-abm.serialization-level
have been removed.17th May 2018
This is a minor bug fix release, primarily resolving issues with the network tile display. Improvements have also been made to the ABM API, allowing more flexible definition of actions, as well as injection of attributes to agents loaded from external sources.
Added AgentSystem#loadGroup(Class<AgentType>, Source, Consumer<AgentType>)
(as well as AgentBasedModel#loadGroup(...)
shortcut method).
April 19th 2018
First major release of the new Simudyne SDK 2.0.