Releases: AlchemistSimulator/Alchemist
Releases · AlchemistSimulator/Alchemist
11.3.0
Maintenance release. This release only includes dependency updates and tweaks to allow the simulator to run and build under Java 16.
- Updated Protelis to 15.0.0. This allows the simulator to run Protelis on Java 16.
- The legacy swing effects serialization has been updated to be able to work with Java 16
11.2.0
- Re-introduced terminators, that were mistakenly eliminated with release 11.0.0.
- Drop-in replacement for 11.1.0
- Scafi can now clone nodes #802
- Fixed a concurrency bug in GPSTraceLoader #803
- Provide means to inform the simulator about the addition/removal of reactions in existing nodes #804
- TimeDistributions can now be cloned with Node-specific data: #79
11.1.0
- Fixed a critical bug with batch execution
- Improved error reporting
11.0.0
- Loading system renewed and written in Kotlin
- displacements are now called deployments
- transparent recursive loading of nested YAML arrays and maps
- Updates to dependencies and build system
10.0.1
New features
- CircularArc deployment
- Protelis'
ExecutionContext
can be accessed from external modules - Protelis' NetworkManager now supports modelling packet drop based on distance
- Allow acecss to Protelis' internal
NetworkManager
AnyRealDistribution
is noCondition
-aware, and suspends execution as expected when conditions are not met- Created
MoleculeControlledTimeDistribution
, allowing event control from reactions directly - Updated Scafi
Bug Fixes
DiracDeltaAsDistribution
is nowSerializable
- Access to
AlchemistNetworkManager
is now non-destructive - Several improvements to the Scafi incarnation by @metaphori
Dependencies
- konf 1.0.0
- jpx 2.2.0
- Protelis 14.1.7
- Classgraph 4.8.102
- dsiutils 2.6.19
- JIRF 0.4.0
Build System
- Forks do not attempt deploy anymore
- Upgrade Gradle to 6.8.2
- Better tune test time allowance for Scafi tests
- PMD 6.31.0
- mockito 3.7.7
- Kotest 4.4.0
- publish-on-central 0.4.2
- JUnit 5.7.1
- SpotBugs 4.2.1
10.0.0
One of the biggest releases of all time, packed with features and bugfixes.
Non retro-compatible with 9.3.0, even though some simulation files may still work, as no change in the YAML syntax has been made.
New Features
- Alchemist now supports simulating Smart Cameras thanks to @fedpet.
- Alchemist has now beta support for cognitive pedestrians, thanks to @mazzio97 and @paagamelo
- Experimental JavaFX GUI, thanks to @NiccoMlt and @Vuksaa
- Alchemist can now use arbitrarily complex variables to compute values of free variables, see a9fb58a.
Bugfixes
- Fixed cases of NullPointerException
- OpenGL rendering can now be disabled 58dbf17
Improvements
- Euclidean geometry, physics, and other spatial concerns are now incapsulated in specific modules
- Improved MoleculeReader 4357fb0
- Improved time displaying 006285d
- Large refactoring of many classes, methods, and fields
- Improved Scafi integration a96383c
Dependency updates
- Protelis 14.1.5
- Antlr 4.9.1
- Mapsforge 0.15.0
- Classgraph 4.8.98
- Guava 30.1-jre
- Caffeine 2.8.7
- Kotlin 1.4.21
- dsiutils 2.6.15
- GraphHopper 2.3
- Scala 2.13.4
- Apache Ignite 2.9.0
- Groovy 3.0.5
Build structure updates
- Dropped Travis CI due to their new policy hostile to open source, switched to GitHub Actions.
- Alchemist beta versions that complete the CI process are published on GitHub packages
- The project has been flattenet (easier import in IDEs)
- Publication via new Sonatype Server
- Dokka 1.4.10.2 is now used in place of Javadoc throughout the project
- Mockito 0.15.0
- Detekt 1.15.0
- PMD 6.30.0
- Kotest 4.3.2
- Spotbugs 4.2.0
- Gradle 6.8
- Orchid 0.21.1
9.3.0
9.2.1
**NON-RETROCOMPATIBLE CHANGES** * None **POTENTIALLY NON-RETROCOMPATIBLE CHANGES** * Code creating SAPERE LSAs via `SAPEREIncarnation.createMolecule(String)` and catching exceptions for failures may now stop working as intended, as `null` and empty strings now cause the method to return `null` without even attempting a parse operation. Code relying on exceptions as a form of flow control was bad anyway. **DEPRECATIONS** * None **FIXED BUGS** * Non-parsable LSAs are not sent to the SAPERE parser causing exception to be thrown. Rather, the `SAPEREIncarnation` returns `null`. **IMPROVEMENTS** * None **DOCUMENTATION** * None **BUILD SYSTEM AND CONTINUOUS INTEGRATION** * None **OTHER MINOR CHANGES** * None
9.2.0
NON-RETROCOMPATIBLE CHANGES
- Scafi now explicitly requires a
send
action to be able to share information among neighbors, as Protelis does.
POTENTIALLY NON-RETROCOMPATIBLE CHANGES
- Upgraded Protelis to 13.1.0
DEPRECATIONS
- None
FIXED BUGS
- None
IMPROVEMENTS
- Scafi now supports executing end-of-round messages with arbitrary distributions, and it is feature-parity with Protelis under this point of view, thanks to @metaphori
- Smartcam is now independent of Protelis
- Upgraded Protelis to 13.1.0
DOCUMENTATION
- Add documentation for cognitive agents
- Upgraded to Orchid 0.17.6
BUILD SYSTEM AND CONTINUOUS INTEGRATION
- Use Travis wait function when deploying on Central
- Upgraded to Gradle 5.6.3
- Reduced the Java compiler strictness
- Upgraded to Ktlint 9.1.0
- Excluded some overly pedantic PMD rules
OTHER MINOR CHANGES
- Upgraded several minor libraries
- Minor style changes