diff --git a/.github/workflows/core_compat_helper.yml b/.github/workflows/core_compat_helper.yml index ac35110da..9c211232d 100644 --- a/.github/workflows/core_compat_helper.yml +++ b/.github/workflows/core_compat_helper.yml @@ -15,9 +15,9 @@ jobs: run: which julia continue-on-error: true - name: Install Julia, but only if it is not already available in the PATH - uses: julia-actions/setup-julia@v1 + uses: julia-actions/setup-julia@v2 with: - version: '1' + version: "1" arch: ${{ runner.arch }} if: steps.julia_in_path.outcome != 'success' - name: "Add the General registry via Git" @@ -37,7 +37,10 @@ jobs: - name: "Run CompatHelper" run: | import CompatHelper - CompatHelper.main(; subdirs=["core"]) + CompatHelper.main(; + subdirs=["core"], + bump_compat_containing_equality_specifier=false, + ) shell: julia --color=yes {0} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/core_testmodels.yml b/.github/workflows/core_testmodels.yml index 8a5580b79..91d5f6e3f 100644 --- a/.github/workflows/core_testmodels.yml +++ b/.github/workflows/core_testmodels.yml @@ -29,15 +29,15 @@ jobs: - x64 steps: - uses: actions/checkout@v4 - - uses: julia-actions/cache@v1 + - uses: julia-actions/cache@v2 with: cache-compiled: "true" cache-registries: "true" - - uses: prefix-dev/setup-pixi@v0.5.1 + - uses: prefix-dev/setup-pixi@v0.6.0 with: - pixi-version: "v0.15.2" + pixi-version: "latest" - name: Prepare pixi - run: pixi run install-ci + run: pixi run --environment=dev install-ci - name: Run testmodels with Ribasim Core run: | pixi run ribasim-core-testmodels diff --git a/.github/workflows/core_tests.yml b/.github/workflows/core_tests.yml index 0a765a530..921469bc4 100644 --- a/.github/workflows/core_tests.yml +++ b/.github/workflows/core_tests.yml @@ -29,15 +29,15 @@ jobs: - x64 steps: - uses: actions/checkout@v4 - - uses: julia-actions/cache@v1 + - uses: julia-actions/cache@v2 with: cache-compiled: "true" cache-registries: "true" - - uses: prefix-dev/setup-pixi@v0.5.1 + - uses: prefix-dev/setup-pixi@v0.6.0 with: pixi-version: "latest" - name: Prepare pixi - run: pixi run install-ci + run: pixi run --environment=dev install-ci - name: Test Ribasim Core run: | pixi run test-ribasim-core-cov diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3dbb49563..622ba67f7 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -20,15 +20,15 @@ jobs: contents: write steps: - uses: actions/checkout@v4 - - uses: julia-actions/cache@v1 + - uses: julia-actions/cache@v2 with: cache-compiled: "true" cache-registries: "true" - - uses: prefix-dev/setup-pixi@v0.5.1 + - uses: prefix-dev/setup-pixi@v0.6.0 with: pixi-version: "latest" - name: Prepare pixi - run: pixi run install-ci + run: pixi run --environment=dev install-ci - name: Check Quarto installation and all engines run: pixi run quarto-check @@ -41,7 +41,7 @@ jobs: - name: Publish Quarto Project if: github.ref == 'refs/heads/main' - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./docs/_site diff --git a/.github/workflows/julia_auto_update.yml b/.github/workflows/julia_auto_update.yml index f0011c3c8..3bfd87d37 100644 --- a/.github/workflows/julia_auto_update.yml +++ b/.github/workflows/julia_auto_update.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v4 with: ssh-key: ${{ secrets.SSH_PRIVATE_KEY }} - - uses: prefix-dev/setup-pixi@v0.5.1 + - uses: prefix-dev/setup-pixi@v0.6.0 with: pixi-version: "latest" - name: Update Julia manifest file diff --git a/.github/workflows/python_lint.yml b/.github/workflows/mypy.yml similarity index 87% rename from .github/workflows/python_lint.yml rename to .github/workflows/mypy.yml index 15bcb778e..e20da5c90 100644 --- a/.github/workflows/python_lint.yml +++ b/.github/workflows/mypy.yml @@ -1,4 +1,4 @@ -name: Python Lint +name: Mypy Type Check on: push: branches: [main, update/pixi-lock] @@ -16,11 +16,11 @@ jobs: continue-on-error: true steps: - uses: actions/checkout@v4 - - uses: prefix-dev/setup-pixi@v0.5.1 + - uses: prefix-dev/setup-pixi@v0.6.0 with: pixi-version: "latest" - name: Prepare pixi - run: pixi run install-ci + run: pixi run --environment=dev install-ci - name: Run mypy on python/ribasim run: | pixi run mypy-ribasim-python diff --git a/.github/workflows/pixi_auto_update.yml b/.github/workflows/pixi_auto_update.yml index 0b9096599..9c3ee9e42 100644 --- a/.github/workflows/pixi_auto_update.yml +++ b/.github/workflows/pixi_auto_update.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v4 with: ssh-key: ${{ secrets.SSH_PRIVATE_KEY }} - - uses: prefix-dev/setup-pixi@v0.5.1 + - uses: prefix-dev/setup-pixi@v0.6.0 with: pixi-version: "latest" cache: false diff --git a/.github/workflows/python_codegen.yml b/.github/workflows/python_codegen.yml index 3d6cac018..c14cbbd9f 100644 --- a/.github/workflows/python_codegen.yml +++ b/.github/workflows/python_codegen.yml @@ -16,11 +16,11 @@ jobs: continue-on-error: true steps: - uses: actions/checkout@v4 - - uses: prefix-dev/setup-pixi@v0.5.1 + - uses: prefix-dev/setup-pixi@v0.6.0 with: pixi-version: "latest" - name: Prepare pixi - run: pixi run install-ci + run: pixi run --environment=dev install-ci - name: Test if codegen runs without errors run: pixi run codegen - name: Ensure that no code has been generated diff --git a/.github/workflows/python_tests.yml b/.github/workflows/python_tests.yml index 1a64d7922..6546b815f 100644 --- a/.github/workflows/python_tests.yml +++ b/.github/workflows/python_tests.yml @@ -11,7 +11,7 @@ concurrency: cancel-in-progress: true jobs: test: - name: Python ${{ matrix.python-version }} - ${{ matrix.os }} + name: ${{ matrix.pixi-environment }} - ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -20,26 +20,19 @@ jobs: - ubuntu-latest - macOS-latest - windows-latest - python-version: - - "3.10" - - "3.11" - - "3.12" + pixi-environment: + - py312 + - py311 + - py310 steps: - uses: actions/checkout@v4 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + - uses: prefix-dev/setup-pixi@v0.6.0 with: - python-version: "${{ matrix.python-version }}" - - - name: Install test dependencies - run: | - pip install --editable "python/ribasim_testmodels" - pip install --editable "python/ribasim[tests]" - - - name: Run tests - run: pytest --numprocesses=auto --cov=ribasim --cov-report=xml python/ribasim/tests - + pixi-version: "latest" + - name: Prepare pixi + run: pixi run --environment ${{ matrix.pixi-environment }} install-python + - name: Test Ribasim Python + run: pixi run --environment ${{ matrix.pixi-environment }} test-ribasim-python-cov - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 with: diff --git a/.github/workflows/qgis.yml b/.github/workflows/qgis.yml index e8f46b333..6130f4dd5 100644 --- a/.github/workflows/qgis.yml +++ b/.github/workflows/qgis.yml @@ -22,12 +22,12 @@ jobs: - windows-latest steps: - uses: actions/checkout@v4 - - uses: prefix-dev/setup-pixi@v0.5.1 + - uses: prefix-dev/setup-pixi@v0.6.0 with: pixi-version: "latest" - name: Prepare pixi run: | - pixi run install-ci + pixi run --environment=dev install-ci - name: Run tests run: pixi run test-ribasim-qgis-cov - name: Upload coverage to Codecov diff --git a/.gitignore b/.gitignore index 8ee64eb35..5e8b06ffc 100644 --- a/.gitignore +++ b/.gitignore @@ -10,8 +10,8 @@ docs/build/ docs/site/ /generated_testmodels -build/ribasim_cli/ -build/libribasim/ +build/ribasim/ +build/cli/target JuliaSysimage.dll LocalPreferences.toml diff --git a/.teamcity/Ribasim/buildTypes/Ribasim_GenerateTestmodels.xml b/.teamcity/Ribasim/buildTypes/Ribasim_GenerateTestmodels.xml index 6ec728832..c2945c1aa 100644 --- a/.teamcity/Ribasim/buildTypes/Ribasim_GenerateTestmodels.xml +++ b/.teamcity/Ribasim/buildTypes/Ribasim_GenerateTestmodels.xml @@ -19,7 +19,7 @@ source /usr/share/Modules/init/bash module load pixi pixi --version -pixi run install-ci]]> +pixi run --environment=dev install-ci]]> @@ -39,13 +39,10 @@ pixi run generate-testmodels]]> - - - - - + + @@ -59,4 +56,3 @@ pixi run generate-testmodels]]> - diff --git a/.teamcity/Ribasim/buildTypes/Ribasim_GitHubIntegrationTemplate.xml b/.teamcity/Ribasim/buildTypes/Ribasim_GitHubIntegrationTemplate.xml index 4b62b639d..53d47f3cd 100644 --- a/.teamcity/Ribasim/buildTypes/Ribasim_GitHubIntegrationTemplate.xml +++ b/.teamcity/Ribasim/buildTypes/Ribasim_GitHubIntegrationTemplate.xml @@ -6,7 +6,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/.teamcity/Ribasim/buildTypes/Ribasim_Linux.xml b/.teamcity/Ribasim/buildTypes/Ribasim_Linux.xml new file mode 100644 index 000000000..901a95ae3 --- /dev/null +++ b/.teamcity/Ribasim/buildTypes/Ribasim_Linux.xml @@ -0,0 +1,20 @@ + + + diff --git a/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_BuildPythonWheels.xml b/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_BuildPythonWheels.xml deleted file mode 100644 index e81d4a0a2..000000000 --- a/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_BuildPythonWheels.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - Build Python Wheels - - - - - - - - - - - - - - - - - - - - - - - - - - - -+:v*]]> - - - - - - - - - diff --git a/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_MakeGitHubRelease.xml b/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_MakeGitHubRelease.xml index 341866805..074939b49 100644 --- a/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_MakeGitHubRelease.xml +++ b/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_MakeGitHubRelease.xml @@ -2,9 +2,9 @@ Make GitHub Release - + - + @@ -14,8 +14,7 @@ set -euxo pipefail . /usr/share/Modules/init/bash module load pixi -pixi run github-release -]]> +pixi run github-release]]> @@ -24,13 +23,12 @@ pixi run github-release - - - + - + @@ -58,17 +56,17 @@ pixi run github-release - + - + - + - + - + - + - + - + - + + diff --git a/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_MakeQgisPlugin.xml b/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_MakeQgisPlugin.xml index 61df7b30f..f40eff904 100644 --- a/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_MakeQgisPlugin.xml +++ b/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_MakeQgisPlugin.xml @@ -2,10 +2,13 @@ Make QGIS plugin - + + + + @@ -24,26 +27,6 @@ zip -r ribasim_qgis.zip ribasim_qgis]]> - - - - - -+:v*]]> - - - - - - - - - - diff --git a/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_PushSuccessfulNightlyBuildToS3.xml b/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_PushSuccessfulNightlyBuildToS3.xml deleted file mode 100644 index 9fe85659d..000000000 --- a/.teamcity/Ribasim/buildTypes/Ribasim_Ribasim_PushSuccessfulNightlyBuildToS3.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - Push successful nightly build to S3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.teamcity/Ribasim/buildTypes/Ribasim_Windows.xml b/.teamcity/Ribasim/buildTypes/Ribasim_Windows.xml new file mode 100644 index 000000000..978df74f5 --- /dev/null +++ b/.teamcity/Ribasim/buildTypes/Ribasim_Windows.xml @@ -0,0 +1,19 @@ + + + diff --git a/.teamcity/Ribasim/project-config.xml b/.teamcity/Ribasim/project-config.xml index 48a3307fa..c3c16c983 100644 --- a/.teamcity/Ribasim/project-config.xml +++ b/.teamcity/Ribasim/project-config.xml @@ -3,6 +3,20 @@ Ribasim + + + + + + + + + + + + + + @@ -11,9 +25,9 @@ - + - + @@ -46,20 +60,6 @@ - - - - - - - - - - - - - - diff --git a/.teamcity/Ribasim/vcsRoots/Ribasim_Ribasim.xml b/.teamcity/Ribasim/vcsRoots/Ribasim_Ribasim.xml index 6d2362381..754676e5a 100644 --- a/.teamcity/Ribasim/vcsRoots/Ribasim_Ribasim.xml +++ b/.teamcity/Ribasim/vcsRoots/Ribasim_Ribasim.xml @@ -3,18 +3,18 @@ Ribasim - + + - - + diff --git a/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_BuildLibribasim.xml b/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_BuildRibasim.xml similarity index 80% rename from .teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_BuildLibribasim.xml rename to .teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_BuildRibasim.xml index 646583b20..d47affbe6 100644 --- a/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_BuildLibribasim.xml +++ b/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_BuildRibasim.xml @@ -1,13 +1,11 @@ - Build libribasim + Build Ribasim - + - @@ -19,7 +17,7 @@ source /usr/share/Modules/init/bash module load pixi pixi --version -pixi run install-ci]]> +pixi run --environment=dev install-ci]]> @@ -34,7 +32,7 @@ source /usr/share/Modules/init/bash module load pixi module load gcc/11.3.0 pixi run remove-artifacts -pixi run build-libribasim]]> +pixi run build]]> @@ -46,9 +44,7 @@ pixi run build-libribasim]]> - - - + @@ -56,11 +52,10 @@ pixi run build-libribasim]]> - + - diff --git a/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_BuildRibasimCli.xml b/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_BuildRibasimCli.xml deleted file mode 100644 index b5f19d98f..000000000 --- a/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_BuildRibasimCli.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - Build ribasim_cli - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_TestRibasimApi.xml b/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_TestRibasimBinaries.xml similarity index 84% rename from .teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_TestRibasimApi.xml rename to .teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_TestRibasimBinaries.xml index 9a3c252da..a49348465 100644 --- a/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_TestRibasimApi.xml +++ b/.teamcity/Ribasim_Linux/buildTypes/Ribasim_Linux_TestRibasimBinaries.xml @@ -1,15 +1,13 @@ - Test ribasim_api + Test Ribasim Binaries - + - - - - + @@ -19,7 +17,7 @@ source /usr/share/Modules/init/bash module load pixi pixi --version -pixi run install-ci]]> +pixi run install-python]]> @@ -32,8 +30,9 @@ pixi run install-ci]]> source /usr/share/Modules/init/bash module load pixi -pixi --version -pixi run test-ribasim-api]]> +pixi run --environment=dev install +pixi run test-ribasim-api +pixi run test-ribasim-cli]]> @@ -51,8 +50,7 @@ pixi run test-ribasim-api]]> - -+:v*]]> + @@ -74,14 +72,6 @@ pixi run test-ribasim-api]]> - - - - - - - - @@ -89,15 +79,23 @@ pixi run test-ribasim-api]]> + + + + + + + + - + - + - +