This release brings significant improvements to the QGIS plugin, allocation, and CLI latency. The QGIS plugin is now published in the QGIS plugin repository and has a simplified UI; you can drag a TOML to QGIS to open a model. The black screen in the iMOD plugin is fixed in the latest version of the iMOD plugin, and the Arrow errors on loading results are also fixed.
Iteratively working on a model in a Python session has become easier now that model.<node_type>.add can replace existing nodes, and run_ribasim(toml_path) shows you live progress in all editors.
Breaking changes: There are two changes that shouldn't be breaking but might affect some users nonetheless. The input_dir default has been changed to "input". Python models now forbid any extra values in schema validation for stricter data integrity.
Added
- Add
run_ribasim(toml_path)convenience function. #2653 - Allow replacing nodes with add API. #2664
- Flow communication between primary and secondary networks. #2556
- Read NetCDF files with demand_priority. #2604
- Make reduction factor thresholds configurable. #2592 #2681
- QGIS: Add menu and dropdown interface. #2634
- Add docs on reloading model in QGIS plugin guide. #2583
- Document
pandasrequirement for QGIS plugin. #2642
Changed
- Set
input_dirdefault to "input". #2641 - Python: Forbid any extra values in (base)model for stricter validation. #2595
- Support Scientific Python SPEC 0 for broader compatibility. #2630
- QGIS: Always use GDAL instead of pyarrow for better stability. #2591
- Publish QGIS plugin. #2654 #2658
- Improved build performance and compilation. #2652
Fixed
- Finalize progress bar. #2665
- Fix Junctions with subnetwork ID. #2633
- Delwaq: Restore correct water/mass balance with Junctions. #2607
- Delwaq: Limit endtime for partially failed Ribasim runs. #2637
- Delwaq: Improved performance of flow boundary concatenation. #2597
- Fix remaining DelWAQ netCDF warnings. #2621
- Fix DataInterpolations integration bug. #2576
- QGIS: Fix empty Arrow results. #2585
- Log clear error on decreasing area in
S(h). #2600 - QGIS: Faster results drawing. #2618
- QGIS: Fix crash on Reload Ribasim model. #2661
- Reset
ribasim_versioninmodel_post_init. #2578 - Convert Path to str with
.as_posix()for cross-platform compatibility. #2579 - Support pydantic 2.12. #2650
All changes
What's Changed
- Use threads in CI. by @evetion in #2574
- Fix DataInterpolations integration bug by @SouthEndMusic in #2576
- Convert path to str with
.as_posix()by @visr in #2579 - Reset
ribasim_versioninmodel_post_initby @visr in #2578 - Add docs on reloading model in QGIS plugin guide by @visr in #2583
- Fix empty Arrow results by @visr in #2585
- Update typing in Ribasim Python by @visr in #2581
- Small interpolation improvements by @SouthEndMusic in #2589
- QGIS: Always use GDAL instead of pyarrow by @visr in #2591
- Switch to quarto-actions/publish by @visr in #2593
- [python] Forbid any extra values in (base)model by @evetion in #2595
- Use quarto-publish task by @visr in #2594
- [delwaq] Improved performance of flow boundary concatenation. by @evetion in #2597
- Bump prefix-dev/setup-pixi from 0.9.0 to 0.9.1 by @dependabot[bot] in #2601
- Log clear error on decreasing area in S(h) by @simulutions in #2600
- Update Julia manifest by @evetion in #2606
- Update pre-commit hooks by @evetion in #2609
- Update Julia manifest by @evetion in #2611
- Update pixi lockfile by @evetion in #2610
- Update pixi lockfile by @evetion in #2613
- Update pre-commit hooks by @evetion in #2612
- [QGIS] Faster results drawing. by @evetion in #2618
- Add edge_coordinates attributes to generate.py by @visr in #2619
- [delwaq] Restore correct water/mass balance with Junctions by @evetion in #2607
- [ci] Skip failing allocation test on Linux. by @evetion in #2620
- Read NetCDF files with demand_priority by @visr in #2604
- Fix remaining DelWAQ netCDF warnings by @visr in #2621
- Rebase PackageCompiler fork by @visr in #2622
- Order, order! by @evetion in #2625
- Revert skipping of Outlet allocation test. by @evetion in #2626
- Flow communication between primary and secondary networks by @SouthEndMusic in #2556
- Support Scientific Python SPEC 0 by @visr in #2630
- Set JULIA_CONDAPKG_BACKEND to Null by @visr in #2635
- [qgis] Add menu and dropdown. by @evetion in #2634
- [delwaq] Limit Delwaq endtime for partially failed Ribasim runs. by @evetion in #2637
- Bugfix: junctions with subnetwork ID by @simulutions in #2633
- Pass profile path for QGIS (plugins). by @evetion in #2640
- Use Julia 1.12, Pkg workspaces and JuliaC sans trimming by @visr in #2629
- [docs] Document
pandasrequirement for QGIS plugin. by @evetion in #2642 - Set
input_dirdefault to "input" by @visr in #2641 - Try JULIA_CPU_TARGET native by @visr in #2644
- Go back to Julia 1.11 by @visr in #2649
- Try pydantic 2.12.2 by @visr in #2650
- Split test_offline_delwaq_coupling by @visr in #2651
- Bump prefix-dev/setup-pixi from 0.9.1 to 0.9.2 by @dependabot[bot] in #2655
- QGIS release worthy by @evetion in #2658
- Get QGIS plugin ready to publish by @visr in #2654
- Set QGIS plugin prefix by @visr in #2659
- Don't specialize on build, take 2 by @visr in #2652
- Remove scripts/ tests/ from QGIS zip by @visr in #2660
- Make
is_layer_visiblemore robust by @visr in #2661 - Allow replacing nodes with add API by @visr in #2664
- Formulate in terms of flows, solve in terms of storages by @SouthEndMusic in #2624
- Add
run_ribasim(toml_path)function by @visr in #2653 - Finalize progress bar by @visr in #2665
- Revert "Formulate in terms of flows, solve in terms of storages (#2624)" by @visr in #2667
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #2668
- Improved testing for subnetwork communication by @simulutions in #2647
- [QGIS] Also visualize Area layers. by @evetion in #2673
- Update changelog for v2025.6.0 by @visr in #2676
- Use
warningsfor replacing node, add test by @visr in #2677 - Replace Set with OrderedSet by @visr in #2669
- Remove hardcoded or even magic constants. by @evetion in #2592
- Document and modify reduction factor thresholds by @visr in #2681
- Prepare release v2025.6.0 by @visr in #2680
Full Changelog: v2025.5.0...v2025.6.0