Version 0.9.0 (9 July 2026)
Supported versions
- The minimum supported version of Dask and distributed is now 2025.11.0. Although this does not cover the full SPEC0 support window, this release added two features that the simulator makes use of.
Breaking changes
-
The
utilmodule was renamed toutilsand split into sub-modules. The quaternion utilities now need to be imported fromopenstb.simulator.utils.quaternion. Attempting to import them directly fromutilwill fail. -
The
abc.SimulationConfigclass was renamed toabc.ControllerConfigto match the naming of the Controller plugin it configures.
New features
-
Added the ScatteringModel plugin type to model acoustic scattering from an interface. Plugins for constant scattering and Lambertian scattering are included.
-
A circular trajectory plugin was added. This is registered under the name
circular. -
The
openstb.simulator.utils.reduction.DaskReductionTreeclass was added to implement a generic reduction tree. This submits tasks to a Dask cluster to run user-provided reduction functions, and passes final results to a given output function. -
A
openstb.simulator.controller.base.LoopControllerbase class was created to perform common actions for a simulation controller which loops over a set of variables. -
Environmentplugins now provide adensitymethod. The base class provides a default implementation which estimates the density using the Gibbs SeaWater toolbox so any existing plugins inheriting from the base class will work without modification.
Improvements
-
The simple point controller plugin was restructured to make the code cleaner. It now uses the new
LoopControllerbase class andDaskReductionTreeutility added in this release. -
Clarified that the salinity method of an Environment plugin should give the value in g/kg.
-
Some of the static type hinting was simplified using features available in Python 3.12+.
Fixes
- The type hinting in the tests was fixed so the tests can run in a Python 3.12 environment.
Project management
-
Various continuous integration workflows were added to check code quality and run the unit tests on push and pull request were added. This includes testing in an environment with the oldest supported versions of the dependencies.
-
A CI workflow to publish released versions to PyPI using trusted publishing was added.