Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
To find the state of this project's repository at the time of any of these versions, check out the tags.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.5.2] - unreleased

Added

Changed

  • input files that are now copied to a separate inputs directory within the output directory

  • EventType renamed to Management for clarity

  • insectbiomass() uses units

Deprecated

Removed

Fixed

  • all skylarks now migrate (#90)

[v0.5.1] - 13-06-2024

Added

  • Unitful.jl now used to add units to quantities

  • world.mapdirectory parameter specifies the path to the directory in which landcovermap, farmfieldsmap, and weatherfile are located

  • world.mapresolution parameter specifies the input maps' spatial resolution in meters

Changed

  • spatial functions now work with explicit distances (using Unitful.jl) rather than using the number of pixels

  • all species definitions and tests updated to use units

[v0.5.0] - 07-06-2024

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 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 (and associated macros) to replace Agents.jl functionality:

    • move!() and walk!()
    • nearby_ids(), nearby_animals(), countanimals(), neighbours()
    • directionto(), distanceto(), randomdirection()
    • nagents(), killallanimals!()
  • @here macro to return the pixel currently occupied by the active animal

  • core.logoutput parameter to define whether logs are printed to screen, file, none, or both

  • large logo and model structure diagram

  • Changelog

Changed

  • 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

  • requires Julia 1.10

Removed

  • Agents.jl dependency (including AgentBasedModel and functions for adding/moving/removing agents)

[v0.4.1] - 2023-11-14

Wrote tests for skylark migration -> made graphics output format configurable

Added

  • initial version of the Skylark species

  • small Jena map

  • animal individuals keep track of their parents' IDs

  • several new functions and macros for animals

  • installation instructions for Windows

Changed

  • graphics output is more configurable

[v0.4.0] - 2023-10-28

Refactored makieplots.jl -> Wrote tests for skylark migration

Added

  • initialisation functions for individuals (not just species)

  • migration function / migrant pool for animals that disappear from the landscape during winter

  • skylark migration

Changed

  • online documentation was expanded and restructured

  • nature macros moved to a separate file

Started changelog at this point, earlier versions are not included.