Skip to content

Commit 49d4eec

Browse files
authored
Prepare release 2026.6.0 (#487)
1 parent 45002ee commit 49d4eec

9 files changed

Lines changed: 50 additions & 20 deletions

File tree

.teamcity/IMODCollector/buildTypes/IMODCollector_X64development.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ object IMODCollector_X64development : BuildType({
4444
name = "Get coupler dependencies"
4545
workingDir = "coupler"
4646
scriptContent = """
47-
pixi run -e dev install-imod-collector
47+
pixi run -e dev fetch-imod-collector
4848
""".trimIndent()
4949
}
5050
script {

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,31 @@ All notable changes to this project will be documented in this file.
1212

1313
### Removed
1414

15+
## [v2026.6.0]
16+
17+
### Added
18+
- Add continue logic for non-converging coupled simulations: when MODFLOW 6
19+
`CONTINUE` is set in `mfsim.nam`, the coupler logs a warning instead of
20+
raising an error on non-convergence
21+
- Add user acceptance test to CI pipeline
22+
- Add SonarQube buildstep to TeamCity pipeline
23+
- Add Deploy pipeline to TeamCity (PyPI publishing and GitHub releases)
24+
- Add pixi update build to TeamCity
25+
26+
### Fixed
27+
- Fix silent crash when encountered an exception during unit tetst
28+
- Fix exchange logger not being closed after ribametamod run, causing file
29+
lock errors on Windows
30+
31+
### Changed
32+
- Update Ribasim to version v2026.1.1
33+
- Update MetaSWAP to version v9.0
34+
- Update MODFLOW6 to version 6.7.0
35+
- Rename `install-*` tasks to `fetch-*` in `pixi.toml` to better reflect
36+
that these tasks download binaries rather than install packages
37+
- Rename `install-test-dependencies` to `setup-test-dependencies`
38+
39+
1540
## [v2025.11.0]
1641

1742
### Changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ To develop `imod_coupler` locally:
3232
pixi install -e dev
3333
```
3434

35-
4. Install the test dependencies:
35+
4. Setup the test dependencies:
3636

3737
```sh
38-
pixi run -e dev install-test-dependencies
38+
pixi run -e dev setup-test-dependencies
3939
```
4040

4141
This command:

imod_coupler/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2024.3.0"
1+
__version__ = "2026.6.0"

imod_coupler/drivers/driver.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def get_driver(
8686
config_dict: dict[str, Any], config_dir: Path, base_config: BaseConfig
8787
) -> Driver:
8888
from imod_coupler.drivers.metamod.config import MetaModConfig
89-
from imod_coupler.drivers.metamod.metamod import MetaMod, MetaModNewton
89+
from imod_coupler.drivers.metamod.metamod import MetaMod
9090
from imod_coupler.drivers.ribametamod.config import RibaMetaModConfig
9191
from imod_coupler.drivers.ribametamod.ribametamod import RibaMetaMod
9292
from imod_coupler.drivers.ribamod.config import RibaModConfig
@@ -100,7 +100,10 @@ def get_driver(
100100
if base_config.driver_type == "metamod":
101101
metamod_config = MetaModConfig(config_dir=config_dir, **config_dict["driver"])
102102
if base_config.modflow_newton_formulation:
103-
return MetaModNewton(base_config, metamod_config)
103+
raise NotImplementedError(
104+
"The MODFLOW Newton formulation is not yet implemented for MetaMod. "
105+
"Please set modflow_newton_formulation to false in the config file."
106+
)
104107
return MetaMod(base_config, metamod_config)
105108
elif base_config.driver_type == "ribamod":
106109
ribamod_config = RibaModConfig(config_dir=config_dir, **config_dict["driver"])

imod_coupler/drivers/ribametamod/ribametamod.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,7 @@ def finalize(self) -> None:
491491
self.ribasim.finalize()
492492
for coupling in self.couplings.values():
493493
coupling.finalize_log()
494+
self.exchange_logger.finalize()
494495

495496
def exchange_rib2mod(self) -> None:
496497
self.ribasim.update_subgrid_level()

pixi.toml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ pyinstaller = "*" # Use pypi version instead of condforge due to issues with the
3434
ribasim = "==2026.1.1"
3535

3636
[feature.common.tasks]
37-
# Install
38-
install-ribasim = { cmd = "python scripts/download_ribasim.py 2026.1.1 ./.imod_collector/develop/ribasim", cwd="." }
39-
install-modflow = { cmd = "python scripts/download_modflow.py 6.7.0 ./.imod_collector/develop/modflow6", cwd="." }
40-
install-metaswap = "aws s3 cp s3://metaswap/releases/r2410 ./.imod_collector/develop/metaswap --recursive --no-sign-request --endpoint-url https://s3.deltares.nl --no-verify-ssl"
41-
install-metaswap-test-db = "aws s3 cp s3://metaswap/db/LHM2016_v01vrz ./.imod_collector/LHM2016_v01vrz --recursive --no-sign-request --endpoint-url https://s3.deltares.nl --no-verify-ssl"
42-
43-
install-imod-collector = { depends-on = ["install-metaswap", "install-ribasim", "install-modflow"] }
44-
install-imod-collector-regression = "python scripts/download_regression.py 2025.11.0 ./.imod_collector/regression"
37+
# Fetch binaries
38+
fetch-ribasim = { cmd = "python scripts/download_ribasim.py 2026.1.1 ./.imod_collector/develop/ribasim", cwd="." }
39+
fetch-modflow = { cmd = "python scripts/download_modflow.py 6.7.0 ./.imod_collector/develop/modflow6", cwd="." }
40+
fetch-metaswap = "aws s3 cp s3://metaswap/releases/r2410 ./.imod_collector/develop/metaswap --recursive --no-sign-request --endpoint-url https://s3.deltares.nl --no-verify-ssl"
41+
fetch-metaswap-test-db = "aws s3 cp s3://metaswap/db/LHM2016_v01vrz ./.imod_collector/LHM2016_v01vrz --recursive --no-sign-request --endpoint-url https://s3.deltares.nl --no-verify-ssl"
42+
43+
fetch-imod-collector = { depends-on = ["fetch-metaswap", "fetch-ribasim", "fetch-modflow"] }
44+
fetch-imod-collector-regression = "python scripts/download_regression.py 2025.11.0 ./.imod_collector/regression"
4545
generate-env-file = "python scripts/generate_env_file.py"
4646

4747
# Tests
@@ -68,11 +68,11 @@ twine = "*"
6868
mypy2junit = "*"
6969

7070
[feature.dev.tasks]
71-
# Install
72-
install-test-dependencies = { depends-on = [
73-
"install-metaswap-test-db",
74-
"install-imod-collector",
75-
"install-imod-collector-regression",
71+
# Setup
72+
setup-test-dependencies = { depends-on = [
73+
"fetch-metaswap-test-db",
74+
"fetch-imod-collector",
75+
"fetch-imod-collector-regression",
7676
"generate-env-file",
7777
] }
7878

pre-processing/primod/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@
1818
"RibaModPassiveDriverCoupling",
1919
)
2020

21-
__version__ = "2024.3.0"
21+
__version__ = "2026.6.0"

tests/test_imod_coupler/test_metamod_cases.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ def case_newton(
212212
)
213213

214214

215+
@pytest.mark.skip(reason="Inactive since we raise a NotImplementedError for now")
215216
def case_newton_perched(
216217
coupled_mf6_model_newton_perched: Modflow6Simulation,
217218
prepared_msw_model_newton_perched: MetaSwapModel,

0 commit comments

Comments
 (0)