Releases: Deltares/Ribasim
v2025.1.0
The first release of 2025 makes the Ribasim core more robust and stable, and speeds up
initialization for large models. The biggest new feature is the experimental support for
calculating tracers in Ribasim directly, which will hopefully make it easier to track where
the water resources are heading.
Added
- Remove Z coordinate on constructing Node in Python. #1986
- Add "Basin / subgrid_time" table. #1975
- Sign Ribasim binaries. #2007
- Experimental: Calculate tracer concentrations internally. #1849
- Document parsing Delwaq results. #1845
Removed
- Drop Python 3.10 support. #2012
Changed
- Allocation: optimize per source. #1927
- The Edge table no longer supports
subnetwork_id
; this is automatically inferred. #1956
Fixed
- ManningResistance is more stable around Δh=0. #1896
- Fixes to Delwaq model generation. #1903 #1917 #1948
- Add step limiter to avoid negative flows or too large flows. #1911 #1912
- Fix README.md in builds. #1935 #1938
- Speed up initialization. #1977
- Automatically name index in Python. #1974
- Table sorting related fixes. #2003
All changes
What's Changed
- Remove database from struct Toml by @visr in #1882
- Revert to old tolerances for level control. by @evetion in #1893
- Use
hatch build
rather thanpython -m build
by @visr in #1891 - Add pixi command to generate delwaq input for a given model by @evetion in #1895
- Document parsing Delwaq results. by @evetion in #1845
- Save all results via saving callback (follow up) by @SouthEndMusic in #1896
- Add explanation of water balance error options by @SouthEndMusic in #1899
- Update compat requirements for stdlibs by @visr in #1898
- Fix duplicate boundaries in Delwaq generation. by @evetion in #1903
- Calculate tracer concentrations internally by @evetion in #1849
- Minor edits of comments by @visr in #1908
- Add
step_limiter!
to avoid negative flows or too large flows by @SouthEndMusic in #1911 - Introduce experimental config section and use it for concentrations. by @evetion in #1909
- Update interpolation type parameters by @SouthEndMusic in #1913
- Switch to Julia 1.11.1 by @visr in #1914
- Added DVC, teamcity-messages and Julia TC integration by @evetion in #1915
- [WQ] Drop duplicate boundaries instead of making them unique. by @evetion in #1917
- Finetune
step_limiter!
by @SouthEndMusic in #1912 - Add forgotten contact.qmd. by @evetion in #1924
- Update pre-commit hooks by @github-actions in #1923
- Update Julia manifest by @github-actions in #1925
- Update pixi lockfile by @github-actions in #1926
- Callstack visualization by @SouthEndMusic in #1922
- Some small tweaks to the callstack plots. by @evetion in #1928
- Return nothing from mutating BMI functions by @visr in #1931
- Use FlatVector for generating concentration table by @SouthEndMusic in #1933
- Fix README.md in builds by @visr in #1935
- Add some basic concentration tests. by @evetion in #1934
- CompatHelper: bump compat for StructArrays to 0.7 for package core, (keep existing compat) by @github-actions in #1939
- Bump codecov/codecov-action from 4 to 5 by @dependabot in #1940
- Fix test_version during release process and simplify versions in README.md by @visr in #1938
- Remove isolated nodes from Delwaq network. by @evetion in #1948
- Refactor of concentration code by @SouthEndMusic in #1929
- Fix description of
FlowBoundary
in docs by @SouthEndMusic in #1950 - Avoid
curl_easy_setopt
error logs by @Manangka in #1641 - Allocation: optimize per source by @SouthEndMusic in #1927
- Get rid of
Base.RefValue
fields by @SouthEndMusic in #1954 - Edits to tutorial text by @visr in #1951
- Exclude fewer Ruff rules by @visr in #1955
- Add allocation training model by @SouthEndMusic in #1958
- Get rid of specifying sources in allocation by edges by @SouthEndMusic in #1956
- Not so auto update by @visr in #1959
- Remove unused outstate config option by @visr in #1967
- Put level as the first column in basin.arrow by @visr in #1971
- Automatically name index by @visr in #1974
- Speed up initialization by @visr in #1977
- Add
Basin / subgrid_time
table by @visr in #1975 - Bump schema version to 3 by @visr in #1979
- Add generated, performant snake_case for NodeID. by @evetion in #1982
- Don't update concentrations if not opting in to feature by @visr in #1980
- Update pre-commit hooks by @github-actions in #1983
- Update pixi lockfile by @github-actions in #1984
- Update Julia manifest by @github-actions in #1985
- Update Julia manifest by @github-actions in #1990
- Update pre-commit hooks by @github-actions in #1989
- Fix for OteraEngine v1 by @visr in #1991
- Update pixi lockfile by @github-actions in #1992
- Remove Z coordinate on constructing Node by @visr in #1986
- refactor: change to
depends-on
by @tdejager in #1993 - Update pixi lockfile by @github-actions in #1995
- Sorting things out by @visr in #2003
- CompatHelper: bump compat for Makie in [weakdeps] to 0.22 for package core, (keep existing compat) by @github-actions in #2005
- Switch artefact to a signed one. by @evetion in #2007
- Use interpolations to update forcing in Basin by @visr in #2006
- Make nightly release by @evetion in #2008
- Drop Python 3.10 support by @visr in #2012
- Remove prerequisites from tutorial by @visr in #2009
- Fix minio upload of binaries by @evetion in #2014
- Prepare release v2025.1.0 by @visr in #2013
New Contributors
Full Changelog: v2024.11.0...v2025.1.0
v2024.11.0
This major new release contains many improvements. A new formulation allows much smaller water balance errors, which is combined with several performance improvements. Ribasim Python does more validation that was previously only done in the core. The Ribasim QGIS plugin now sets the relations between tables for easier model inspection. Adding min_upstream_level
and max_downstream_level
to Pump and Outlet means DiscreteControl is often no longer needed.
The most significant breaking change is making the node_id
and edge_id
the index of the Node and Edge table; these need to be globally unique.
Starting from this release Ribasim is labeled as beta software. Since development is currently mainly driven by applications in the Dutch water system, we expect that addition work needs to be done for general use outside the Netherlands.
For coupled simulation with MODFLOW and/or MetaSWAP, this release is part of the iMOD Coupler, specifically release v2024.4.0
Added
- Support discrete control based on an external concentration condition. #1660
- Add
results/solver_stats.arrow
with solver statistics over time. #1677 - Add icon to
ribasim.exe
on Windows. #1712 - Save QGIS styling in the model database. #1713
- Add Delwaq coupling guide. #1619
- Solver speedup due to backtracking relaxation. #1761
- Reject adding a duplicate edge in Python. #1719
- Support transient UserDemand return factor. #1727
- Document the interpolation of input data. #1720
- Automate Jacobian sparsity detection. #1606
- Support specifying the
edge_id
asmodel.edge.add(a, b, edge_id=5)
. #1737 - Use https://ribasim.org/ to host our documentation. #1736
- Validate geometry types in Python. #1760
- Add relationships between tables in QGIS. #1755
- Support migrating from older Ribasim versions in Python. #1764
- Add quick start guide to docs. #1787
- Add
min_upstream_level
andmax_downstream_level
to Pump and Outlet. #1792 - Add
max_downstream_level
to TabulatedRatingCurve. #1795 - Validate edge connections in Python. #1765
- Add low storage reduction factor to ManningResistance. #1796
Changed
- Refactor of the core to ensure smaller water balance errors. #1819
- Make
node_id
globally unique. #1717 - Make the Node ID the index of the Node table, and Edge ID for Edge. #1737
- Make more Python functions private. #1702
- Put the contents of the CLI zips in a folder. #1722
- Changed water balance error definition. #1767
- Disallow missing priority parameter when using allocation. #1745
- Rename Outlet's
min_crest_level
tomin_upstream_level
. #1788 - Only allow flow under gravity in TabulatedRatingCurve. #1795
- Use
dtype_backend="pyarrow"
for Pandas DataFrames. #1781
Fixed
All changes
What's Changed
- Use install-ci on CI by @visr in #1656
- Update release process a bit by @visr in #1657
- Update basin.qmd by @Fati-Mon in #1662
- Remove
SmoothInterpolation
as a dependency by @SouthEndMusic in #1649 - Delwaq pixi run install-ci by @visr in #1664
- Listen to concentration by @SouthEndMusic in #1660
- test
libribasim.get_value_ptr
with all names by @SouthEndMusic in #1665 - Refactor build pipeline by @Manangka in #1645
- Ruff: apply all fixes by @visr in #1667
- Add technical documentation for allocation by @Jingru923 in #1579
- Fix development tools by @deltamarnix in #1670
get_value_ptr("basin.subgrid_level")
now return non-nan values by @Jingru923 in #1671- Update pre-commit hooks by @github-actions in #1673
- Update pixi lock file by @github-actions in #1692
- Pin older Delwaq build by @evetion in #1694
- Add
Makie
extension to Ribasim core by @SouthEndMusic in #1675 - Write output table with solver stats per saveat by @SouthEndMusic in #1677
- Fix links in Python README.md files by @visr in #1696
- Use
BackTracking
in non-linear interations by @SouthEndMusic in #1697 - Make more python functions private by @SouthEndMusic in #1702
- Plot labels + clean up running instructions in examples notebook by @SouthEndMusic in #1699
- Enforce aspect ratio bound and limit figure size in docs by @SouthEndMusic in #1706
- Update pixi lockfile by @github-actions in #1708
- Update GitHub action for updating lockfiles by @visr in #1701
- Use pixi to fix julia package permissions on Windows by @evetion in #1710
- Update figures in README and docs homepage by @SouthEndMusic in #1711
- [chore] Make mypy happy again by @evetion in #1714
- Add "add icon" step to windows pipeline by @Jingru923 in #1712
- Save QGIS styles in geopackage and remove them from QGIS plugin by @evetion in #1713
- Use a fixed relaxation factor of 0.1 by @visr in #1715
- Add Delwaq coupling guide by @evetion in #1619
- Regression tests for ODE solver and integration tests for production model is in place by @Jingru923 in #1695
- Make node_id globally unique (again) by @evetion in #1717
- no more Zip bomb from built binaries by @Jingru923 in #1722
- Duplicate edges by @Jingru923 in #1719
- fix regression test after global uniq id by @Jingru923 in #1728
- Use targets for windows specific pipeline by @evetion in #1731
- Support transient user demand return factor by @Jingru923 in #1727
- Interpolation documentation by @SouthEndMusic in #1720
- Symbolic Jacobian sparsity by @visr in #1606
- Make edge_id user configurable by @evetion in #1737
- Document dependency use by @SouthEndMusic in #1738
- Add CNAME file for docs deployment by @evetion in #1742
- clarify priority in user demand node by @Jingru923 in #1746
- Use relaxed square root for ManningResistance by @SouthEndMusic in #1750
- Use ribasim.org domain name by @visr in #1736
- Load qml styles in QGIS by @evetion in #1748
- Move from ReTestItems to TestItemRunner by @visr in #1758
- Remove TimerOutputs by @visr in #1749
- refactor
get_influx
for performance by @SouthEndMusic in #1753 - Validate geometry types in Python. by @evetion in #1760
- Remove
build
package from our environment. by @deltamarnix in #1766 - Initial qgis test pla...
v2024.10.0
For this release we said goodbye to the problematic FractionalFlow node, but welcome the ContinuousControl as a long requested feature.
Added
- Control: Add ContinuousControl node type. #1602
- Control: Support listening to flow through connector nodes. #1594
- Validate that TabulatedRatingCurve levels are above Basin bottom. #1607
- Validate that Outlet crest levels are above Basin bottom. #1607
- Always show convergence bottlenecks. #1636
- Docstrings for Ribasim Python. #1643
- Allocate to UserDemand from directly connected Basin if possible. #1581
- Add
basin_state.arrow
results. #1626 - Also write stacktraces to
ribasim.log
. #1653
Changed
- Require QGIS 3.34 (LTR) or newer for Ribasim QGIS plugin.
Fixed
- Compatibility with latest NumPy, Pandera and PyArrow releases. #1618
- LevelDemand can now be without
min_level
ormax_level
. #1629
Removed
- Removed unused urban runoff variable from Basin. #1611
- Removed unneeded static table from Terminal. #1624
- Removed FractionalFlow node. #1616
All changes
What's Changed
- change the names of artifacts by @Jingru923 in #1572
- quick fix the name of our executables by @Jingru923 in #1578
- Fix QGIS crash on plugin initialization by @visr in #1580
- Add controllable parameters table by @SouthEndMusic in #1584
- Update Julia manifest by @github-actions in #1598
- Support listening to flows trough conservative connector nodes by discrete control by @SouthEndMusic in #1594
- CompatHelper: bump compat for TranscodingStreams to 0.11 for package core, (keep existing compat) by @github-actions in #1604
- Fix cascading polders image in docs by @visr in #1613
- Stop using local JULIAUP_DEPOT_PATH by @visr in #1614
- Use the latest greatest Python deps by @evetion in #1618
- Use pixi update to update lockfile by @visr in #1622
- Validate level with upstream basin by @Jingru923 in #1607
- Remove urban_runoff from Basin by @visr in #1611
- Remove
Terminal / static
table by @visr in #1624 - Fix DataInterpolations to 0.5.2 by @visr in #1628
- Remove FractionalFlow by @visr in #1616
- Require QGIS 3.34 (LTR); remove activation scripts by @visr in #1627
- Take discontinuities in flow introduced through BMI into account by @SouthEndMusic in #1634
- Fix the failing pipeline by @Manangka in #1640
- Always show convergence bottlenecks by @visr in #1636
- Resolve the SSL error produced when running the build task on windows by @Manangka in #1644
level_demand
can now be without max_level or min_level by @Jingru923 in #1629- Remove unapplied patches by @Manangka in #1646
- QGIS: Update minimal TOML with new required fields by @visr in #1647
- Update install.qmd by @Fati-Mon in #1642
- Update docstrings of Ribasim python API by @SouthEndMusic in #1643
- Add
ContinuousControl
node by @SouthEndMusic in #1602 - Improve subprocess docs by @visr in #1650
- Allocate to UserDemand from directly connected basin if possible by @SouthEndMusic in #1581
- Add
basin_state.arrow
results by @visr in #1626 - Log stacktraces by @visr in #1653
- Prepare release 2024.10.0 by @visr in #1654
Full Changelog: v2024.9.0...v2024.10.0
v2024.9.0
Added
- Support for concentration state and time for Delwaq coupling.
- Show exact commit on
ribasim --version
if it is not a release. #1479
Changed
- Optimized performance.
- Documentation has been overhauled to be more user-friendly.
- Stricter TabulatedRatingCurve validation. #1469
- Stricter Basin / profile validation. #1486
- Allocation objective function now gives equal ratios during shortage. #1386
Fixed
- Don't require unique node IDs. #1513
All changes
What's Changed
- Bump prefix-dev/setup-pixi from 0.6.0 to 0.7.0 by @dependabot in #1459
- Move to DataInterpolations v5 by @visr in #1464
- Fix subgrid_id in output by @visr in #1466
- Support macOS in our cli build by @evetion in #1476
- Add git status to Ribasim CLI wrapper version by @evetion in #1479
- Offline coupling with Delwaq by @evetion in #1137
- Stricter TabulatedRatingCurve validation by @visr in #1469
- Update Julia manifest by @github-actions in #1488
- Add coupling documentation. by @evetion in #1481
- Fix QGIS 'LevelDemand / static' schema by @visr in #1489
- Stronger 'Basin / profile' validation by @visr in #1486
- Update pixi lock file by @github-actions in #1487
- Support
model.to_xugrid(add_allocation = True)
by @visr in #1478 - Allow
missing
as static user demand by @SouthEndMusic in #1493 - Equal ratio allocation objective take 2 by @SouthEndMusic in #1386
- Run allocation at
t = 0
by @SouthEndMusic in #1496 - Fix github release script by @visr in #1492
- Test Integrating discontinuous flow by @SouthEndMusic in #1499
- Bump prefix-dev/setup-pixi from 0.7.0 to 0.8.0 by @dependabot in #1500
- Update Julia manifest by @github-actions in #1516
- Bump prefix-dev/setup-pixi from 0.8.0 to 0.8.1 by @dependabot in #1518
- Fix edge table in netCDF used for Delwaq coupling. by @evetion in #1519
- Allocation refactoring by @Jingru923 in #1503
- Fix a few issues found by JET by @visr in #1510
- corrected the link in Ribasim Python API readme.md by @Jingru923 in #1523
- Split usage to separate pages by @visr in #1522
- Don't trigger Github CI in a PR on merging Teamcity config commits by @evetion in #1528
- Write Delwaq boundary concentrations with time. Includes basin boundaries. by @evetion in #1524
- Don't require unique node IDs by @visr in #1513
- Update to Julia 1.10.4 by @visr in #1533
- Compute mean realized flows by @SouthEndMusic in #1514
- Generate basin concentration state for Delwaq by @evetion in #1534
- Add subgrid levels results
subgrid_level.arrow
to docs by @Jingru923 in #1525 - Add ipykernel to pixi deps by @evetion in #1542
- Don't write empty result tables by @visr in #1538
- Refactor docs to follow diataxis concept by @evetion in #1541
- Convert TeamCity xml configuration files to Kotlin by @Manangka in #1546
- Discrete Control performance improvements based on AGV model by @SouthEndMusic in #1529
- BMI docs page by @SouthEndMusic in #1521
- Restructure docs a bit more by @visr in #1548
- Include Ribasim Python API reference by @visr in #1553
- Improve first sentence index.qmd by @gijsber in #1557
- Integrate Delwaq into our Python package by @evetion in #1554
- Refactor all the things by @SouthEndMusic in #1559
- Incorporate SmoothInterpolation by @SouthEndMusic in #1543
- line_marker_at_central_point by @DanielTollenaar in #1563
- Move node equations to the node reference pages by @visr in #1564
- Prepare Ribasim release v2024.9.0 by @visr in #1561
- Use keywords for creating parameter structs by @visr in #1566
- Allow for meta_ prefix in spatial tables. by @evetion in #1568
- Auto-generate framework for Python API reference documentation by @Jingru923 in #1565
- Check only connected control states in FractionalFlow validation by @visr in #1569
- Disallow multiple outflows from Outlet at validation by @visr in #1570
Full Changelog: v2024.8.0...v2024.9.0
New Contributors
- @Manangka made their first contribution in #1546
- @DanielTollenaar made their first contribution in #1563
v2024.8.0
Highlights
- Performance improvements have been a focus of this release, giving up to 10x faster runs. #1433, #1436, #1438, #1448, #1457
- Users of the QGIS plugin need to remove the old version to avoid two copies due to #1453.
- If the model does not converge and the used algorithm supports it, we log which Basins don't converge. #1440
- The CLI exe is now always in the root of the zip and makes use of the libribasim shared library. #1415
- If negative storages unadvertently happen, we now throw an error. #1425
- There is more validation on the edges. #1434
What's Changed
- Remove dutch_waterways model by @SouthEndMusic in #1403
- testmodelrun: Actually exit with an error code if it fails by @Hofer-Julian in #1405
- Use pixi task cache by @Jingru923 in #1407
- Bump prefix-dev/setup-pixi from 0.5.2 to 0.6.0 by @dependabot in #1408
- docs: Move from
subprocess.call
tosubprocess.run
by @Hofer-Julian in #1410 - only release if branch stars with v20 by @Jingru923 in #1411
- Use the same network for allocation as for the physical layer by @SouthEndMusic in #1399
- Use a Rust binary to expose Ribasim CLI by @Hofer-Julian in #1415
- Add tstops for more timeseries by @SouthEndMusic in #1418
- update the doc for CI by @Jingru923 in #1421
- Build change follow-ups by @visr in #1420
- Negative storage check by @SouthEndMusic in #1425
- Require pandera 0.18 by @visr in #1426
- FlowBoundary is flow direction constraining by @visr in #1424
- Use mean input in allocation by @SouthEndMusic in #1427
- Don't run allocation if not active during BMI runs by @SouthEndMusic in #1437
- Precalculate resistance neighbors by @visr in #1436
- Update vertical fluxes all at once by @visr in #1433
- Tighten edge validation by @visr in #1434
- Switch to TimeZones release 1.15 by @visr in #1432
- Make LevelDemand min_level and max_level optional by @visr in #1430
- Precalculate Basin neighbors by @visr in #1438
- Avoid unconstrained sections in allocation networks by @SouthEndMusic in #1429
- Update pixi lock file by @github-actions in #1443
- Update julia from 1.10.0 to 1.10.3 by @visr in #1445
- Update pixi lock file by @github-actions in #1450
- Re-enable validation in Ribasim python by @Jingru923 in #1446
- Bump julia-actions/cache from 1 to 2 by @dependabot in #1454
- Rename QGIS plugin to Ribasim by @visr in #1453
- Add waterquality (substance/concentration) tables by @evetion in #1267
- Remove Julia API reference by @visr in #1451
- Let Aqua check for persistent tasks by @visr in #1452
- Pre-calculate flow neighbor IDs for Pump, Outlet, UserDemand, FractionalFlow, TabulatedRatingCurve by @visr in #1448
- Redo the "stop explicitly requiring
--environment=dev
when running pixi install tasks" with new pixi release by @Jingru923 in #1455 - Show convergence bottleneck nodes to users by @SouthEndMusic in #1440
- CompatHelper: bump compat for DataInterpolations to 5 for package core, (keep existing compat) by @github-actions in #1458
- Increase performance by reducing lookups by @SouthEndMusic in #1457
- release Ribasim version 2024.8.0 by @Jingru923 in #1462
Full Changelog: v2024.7.0...v2024.8.0
v2024.7.0
DiscreteControl has been changed. We write all water balance terms to results. And crs
is a new required keyword in the TOML file. See the linked pull requests for more information.
Breaking
- Support specifying coordinate reference system (CRS) of geometries by @Hofer-Julian in #1339
- Support conditions on linear combinations of variables for
DiscreteControl
by @SouthEndMusic in #1371 - Discrete control with discrete callback by @SouthEndMusic in #1393
What's Changed
- Add results to xugrid by @visr in #1369
- Split vertical fluxes on basin by @SouthEndMusic in #1300
- Add remaining water balance terms to basin.arrow by @visr in #1367
- Write full Node table once by @visr in #1312
- Stop printing warnings when you can't read from database file by @Hofer-Julian in #1332
- Expose proper vertical flux data by @SouthEndMusic in #1337
- Split collecting subnetwork demand into internal sources and main network phases by @SouthEndMusic in #1235
- Fix allocation arrow bug by @SouthEndMusic in #1347
- Simplify sparsity.jl by @SouthEndMusic in #1349
- Disallow LevelBoundary next to ManningResistance by @SouthEndMusic in #1352
- Fix node ID bug in allocation by @SouthEndMusic in #1330
- Fix allocation flow output by @SouthEndMusic in #1355
- Don't add the endtime to basin.arrow results by @visr in #1359
- Add
Model.to_crs
method in order to reproject by @Hofer-Julian in #1360 - Guide documentation for cascade polder basins by @Jingru923 in #1258
- Sort only Edge fid so edge_id becomes more stable by @visr in #1363
- Add error starttime > endtime by @SouthEndMusic in #1379
- Run allocation first after BMI stop by @visr in #1390
Full Changelog: v2024.6.1...v2024.7.0
v2024.6.1
What's Changed
Full Changelog: v2024.6.0...v2024.6.1
v2024.6.0
What's Changed
- Parallelize generate testmodels by @Hofer-Julian in #1309
- Error early on non globally unique node IDs by @visr in #1311
- Set the Node fid back to the node_id by @visr in #1316
- Use 32 bit signed integer on the Python side as well by @visr in #1315
- Minimal pixi default environment by @Hofer-Julian in #1322
- Add
model.to_xugrid()
by @visr in #1314 - Bump version number for release by @visr in #1323
Full Changelog: v2024.5.0...v2024.6.0
v2024.5.0
The biggest breaking change of this release is the refactoring of the Ribasim Python API.
You can find its usage in the examples.
The same examples with the old API can be found in this PDF.
Breaking
- Ribasim Python: Add-API by @Hofer-Julian in #1110
- Initialize spatial table as GeoDataFrame by @Huite in #1242
- Enable read method again with the new add API by @evetion in #1243
- Infer edge type in add API by @Hofer-Julian in #1275
Changed
- Use 32 bit signed integer for all IDs and priorities by @visr in #1252
- QGIS: don't crash on unknown layers in database by @visr in #1265
- Improve Model repr and make more API private by @visr in #1270
- Sort Node and Edge tables by @visr in #1272
- Refactor function UserDemand in read.jl by @SouthEndMusic in #1268
- Add
model.node_table()
, take two by @visr in #1279 - Assert no timezone for naive datetimes. by @Huite in #1286
- Test Ribasim Python with multi environment feature by @Hofer-Julian in #1285
- Examples: bring necessary symbols into scope by @Hofer-Julian in #1287
- activate subnetwork plotting by @SouthEndMusic in #1291
- Plot listen edges by @SouthEndMusic in #1288
- Stop pinning Python version for default environment by @Hofer-Julian in #1290
- change int to string for PID listen_node_type by @Jingru923 in #1293
- Don't save states on callbacks by @visr in #1281
- Fix variable name in Python tests by @Hofer-Julian in #1294
- Add FlowDemand node type by @SouthEndMusic in #1188
- Treat
UserDemand
return flow as a source by @SouthEndMusic in #1226 - Update version numbers by @Hofer-Julian in #1303
- Add support for indexing into TableModel, except Edge by @Huite in #1304
Full Changelog: v2024.4.0...v2024.5.1
v2024.4.0
What's Changed
- Update pixi lock file by @github-actions in #1205
- Fix precompile script by @visr in #1211
- Deleted relevant code of alternative object functions in Ribasim python and core by @Jingru923 in #1199
- Document
listen_feature_type
inDiscreteControl / condition
by @Hofer-Julian in #1214 - Stop 'Julia auto update' from upgrading Julia version by @visr in #1215
- Update to HiGHS 1.7.0 by @visr in #1219
- QGIS plugin updates for
node_type
, removeexplode_and_connect
by @visr in #1220 - Add plotting support for multiple line segment edges by @Huite in #1223
- Pin pixi version for now in CI by @Hofer-Julian in #1225
- Add
pixi run ribasim-models
to run all test models by @visr in #1224
Full Changelog: v2024.3.0...v2024.4.0