diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c9a7cd094c07fcad6550c96e17931883bb6254c..9c0261529f1f3b3dab348f74adffff2252e0521f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,9 +8,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [v0.5.0] - unreleased +This release doesn't add much new functionality, but represents a major restructuring +of the code base. Specifically, it removes the Agents.jl dependency and changes the +way the species definition macros work and are used. + ### Added -- `SimulationModel` struct +- `SimulationModel` type, extended by `AgricultureModel` struct + +- `@create` macro defines a special phase function that is called when an individual + animal is created (at birth or on model initialisation) + +- functions to replace Agents.jl functionality: + - `move!()` and `walk!()` + - `nearby_ids()`, `nearby_animals()`, `neighbours()` + - `directionto()`, `distanceto()`, `randomdirection()` - large logo and model structure diagram @@ -20,12 +32,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `SimulationModel` replaces `AgentBasedModel` +- Species definition macros revamped: + - `@species` now only defines parameters and variables and creates a mutable struct + - `@phase` must now be defined in the top-level code and creates a global function + - `@initialise` renamed to `@populate`, must also be called in the top-level code + - `initindividual()` renamed to `create!()` + +- Skylark, Wolpertinger, and Wyvern updated to match the new macros + ### Deprecated ### Removed - Agents.jl dependency (including `AgentBasedModel` and functions for adding/moving/removing agents) +- `countanimals()` and `@countanimals()` + ### Fixed @@ -74,7 +96,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 <!-- Template -## [Unreleased] +## [Unreleased] - <date> + +<comments> ### Added