From c7ab0f6a9fd524c1b96d79994709f3fc24b1c3ce Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 11:55:33 +0100 Subject: [PATCH 01/14] rename environments to include the python version --- pixi.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pixi.toml b/pixi.toml index e77edb26c9f..4d62ad3f626 100644 --- a/pixi.toml +++ b/pixi.toml @@ -6,7 +6,7 @@ platforms = ["win-64", "linux-64", "osx-arm64"] [environments] # Testing # test-just-xarray = { features = ["test"] } # https://github.com/pydata/xarray/pull/10888/files#r2511336147 -test-no-numba = { features = [ +test-py313-no-numba = { features = [ "py313", "test", "backends", @@ -15,7 +15,7 @@ test-no-numba = { features = [ "viz", "extras", ] } -test-no-dask = { features = [ +test-py313-no-dask = { features = [ "py312", "test", "backends", @@ -24,7 +24,7 @@ test-no-dask = { features = [ "viz", "extras", ] } -test = { features = [ +test-py313 = { features = [ "py313", "test", "backends", @@ -65,7 +65,7 @@ test-py311-with-typing = { features = [ "typing", ] } -test-with-typing = { features = [ +test-py313-with-typing = { features = [ "py313", "test", "backends", From a135cfc10ee82fc6849c434a70c3eb13511f57ea Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 11:57:21 +0100 Subject: [PATCH 02/14] upgrade `black` to 25.11 --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b216fdf6775..a891a84a6a3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -35,7 +35,7 @@ repos: - id: blackdoc exclude: "generate_aggregations.py" # make sure this is the most recent version of black - additional_dependencies: ["black==25.9.0"] + additional_dependencies: ["black==25.11.0"] - repo: https://github.com/rbubley/mirrors-prettier rev: v3.7.3 hooks: From e352250381db5905d027f8bc8f565e6ba2d23e1f Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:00:10 +0100 Subject: [PATCH 03/14] use basic strings, not literal strings --- pixi.toml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pixi.toml b/pixi.toml index 4d62ad3f626..567200b3e5b 100644 --- a/pixi.toml +++ b/pixi.toml @@ -320,11 +320,11 @@ test = { cmd = "pytest" } kerchunk = "*" ipykernel = "*" ipywidgets = "*" # silence nbsphinx warning -ipython = '*' -jupyter_client = '*' -jupyter_sphinx = '*' -nbsphinx = '*' -ncdata = '*' +ipython = "*" +jupyter_client = "*" +jupyter_sphinx = "*" +nbsphinx = "*" +ncdata = "*" pydata-sphinx-theme = "*" pyproj = "*" rich = "*" # for Zarr tree() From 277b0d1de7bf33a4a23e12c04afc584283a1dc4b Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:02:13 +0100 Subject: [PATCH 04/14] deduplicate the minimum versions --- pixi.toml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pixi.toml b/pixi.toml index 567200b3e5b..0912541ca5f 100644 --- a/pixi.toml +++ b/pixi.toml @@ -85,6 +85,8 @@ test-bare-min-and-scipy = { features = [ ] } test-min-versions = { features = [ "test", + "minimal", + "minimum-scipy", "min-versions", ] } @@ -209,7 +211,6 @@ jax = "*" # no way to get cpu-only jaxlib from conda if gpu is present # - Update the min version lower-bound in the corresponding feature(s) where applicable # - Update this section to pin to the min version -python = "3.11.*" array-api-strict = "1.1.*" # dependency for testing the array api compat boto3 = "1.34.*" bottleneck = "1.4.*" @@ -233,13 +234,10 @@ nc-time-axis = "1.4.*" netcdf4 = "1.6.*" numba = "0.60.*" numbagg = "0.8.*" -numpy = "1.26.*" packaging = "24.1.*" -pandas = "2.2.*" pint = "0.24.*" pydap = "3.5.*" rasterio = "1.3.*" -scipy = "1.13.*" seaborn = "0.13.*" sparse = "0.15.*" toolz = "0.12.*" From 71f8b0bd3def57f4b46a72b77e6b496b7e71d4c4 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:03:05 +0100 Subject: [PATCH 05/14] move the environments below the features --- pixi.toml | 200 +++++++++++++++++++++++++++--------------------------- 1 file changed, 100 insertions(+), 100 deletions(-) diff --git a/pixi.toml b/pixi.toml index 0912541ca5f..d3426204c7e 100644 --- a/pixi.toml +++ b/pixi.toml @@ -3,106 +3,6 @@ preview = ["pixi-build"] channels = ["conda-forge", "nodefaults"] platforms = ["win-64", "linux-64", "osx-arm64"] -[environments] -# Testing -# test-just-xarray = { features = ["test"] } # https://github.com/pydata/xarray/pull/10888/files#r2511336147 -test-py313-no-numba = { features = [ - "py313", - "test", - "backends", - "accel", - "dask", - "viz", - "extras", -] } -test-py313-no-dask = { features = [ - "py312", - "test", - "backends", - "accel", - "numba", - "viz", - "extras", -] } -test-py313 = { features = [ - "py313", - "test", - "backends", - "accel", - "numba", - "dask", - "viz", - "extras", -] } -test-nightly = { features = [ - "py313", - "nightly", - "test", - # "typing", -], no-default-feature = true } - - -test-py311 = { features = [ - "py311", - "test", - "backends", - "accel", - "numba", - "dask", - "viz", - "extras", -] } - -test-py311-with-typing = { features = [ - "py311", - "test", - "backends", - "accel", - "numba", - "dask", - "viz", - "extras", - "typing", -] } - -test-py313-with-typing = { features = [ - "py313", - "test", - "backends", - "accel", - "numba", - "dask", - "viz", - "extras", - "typing", -] } - -test-bare-minimum = { features = ["test", "minimal"] } -test-bare-min-and-scipy = { features = [ - "test", - "minimal", - "minimum-scipy", -] } -test-min-versions = { features = [ - "test", - "minimal", - "minimum-scipy", - "min-versions", -] } - - -# Extra -typing = { features = ["typing"] } -doc = { features = [ - "doc", - "backends", - "test", - "accel", - "viz", - "extras", -] } -pre-commit = { features = ["pre-commit"], no-default-feature = true } - [package] name = "xarray" version = "dynamic" # dynamic versioning needs better support in pixi https://github.com/prefix-dev/pixi/issues/2923#issuecomment-2598460666 . Putting `version = "dynamic"` here for now until pixi recommends something else. @@ -377,3 +277,103 @@ pre-commit = "*" [feature.pre-commit.tasks] pre-commit = { cmd = "pre-commit" } + +[environments] +# Testing +# test-just-xarray = { features = ["test"] } # https://github.com/pydata/xarray/pull/10888/files#r2511336147 +test-py313-no-numba = { features = [ + "py313", + "test", + "backends", + "accel", + "dask", + "viz", + "extras", +] } +test-py313-no-dask = { features = [ + "py312", + "test", + "backends", + "accel", + "numba", + "viz", + "extras", +] } +test-py313 = { features = [ + "py313", + "test", + "backends", + "accel", + "numba", + "dask", + "viz", + "extras", +] } +test-nightly = { features = [ + "py313", + "nightly", + "test", + # "typing", +], no-default-feature = true } + + +test-py311 = { features = [ + "py311", + "test", + "backends", + "accel", + "numba", + "dask", + "viz", + "extras", +] } + +test-py311-with-typing = { features = [ + "py311", + "test", + "backends", + "accel", + "numba", + "dask", + "viz", + "extras", + "typing", +] } + +test-py313-with-typing = { features = [ + "py313", + "test", + "backends", + "accel", + "numba", + "dask", + "viz", + "extras", + "typing", +] } + +test-bare-minimum = { features = ["test", "minimal"] } +test-bare-min-and-scipy = { features = [ + "test", + "minimal", + "minimum-scipy", +] } +test-min-versions = { features = [ + "test", + "minimal", + "minimum-scipy", + "min-versions", +] } + + +# Extra +typing = { features = ["typing"] } +doc = { features = [ + "doc", + "backends", + "test", + "accel", + "viz", + "extras", +] } +pre-commit = { features = ["pre-commit"], no-default-feature = true } From 371713d342111f3bcbb67ab22795baa7a767364a Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:08:28 +0100 Subject: [PATCH 06/14] use the new names in CI --- .github/workflows/ci-additional.yaml | 6 +++--- .github/workflows/ci.yaml | 8 ++++---- .github/workflows/hypothesis.yaml | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-additional.yaml b/.github/workflows/ci-additional.yaml index 9fc245db0ba..263ff2cb894 100644 --- a/.github/workflows/ci-additional.yaml +++ b/.github/workflows/ci-additional.yaml @@ -48,7 +48,7 @@ jobs: run: shell: bash -l {0} env: - PIXI_ENV: test + PIXI_ENV: "test-py313" steps: - uses: actions/checkout@v6 with: @@ -94,7 +94,7 @@ jobs: run: shell: bash -l {0} env: - PIXI_ENV: test-with-typing + PIXI_ENV: test-py313-with-typing steps: - uses: actions/checkout@v6 @@ -191,7 +191,7 @@ jobs: strategy: fail-fast: false matrix: - pixi-env: ["test-with-typing", "test-py311-with-typing"] + pixi-env: ["test-py313-with-typing", "test-py311-with-typing"] if: | always() && ( diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 00a7ef4f7ca..d114c4a530d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -63,11 +63,11 @@ jobs: - pixi-env: "test-min-versions" os: ubuntu-latest # Latest python version: - - pixi-env: "test-no-numba" + - pixi-env: "test-py313-no-numba" os: ubuntu-latest - - pixi-env: "test-no-dask" + - pixi-env: "test-py313-no-dask" os: ubuntu-latest - - pixi-env: "test" + - pixi-env: "test-py313" pytest-addopts: "flaky" os: ubuntu-latest # The mypy tests must be executed using only 1 process in order to guarantee @@ -76,7 +76,7 @@ jobs: pytest-addopts: "mypy" numprocesses: 1 os: ubuntu-latest - - pixi-env: "test-with-typing" + - pixi-env: "test-py313-with-typing" numprocesses: 1 os: ubuntu-latest steps: diff --git a/.github/workflows/hypothesis.yaml b/.github/workflows/hypothesis.yaml index 5ccf9c5be9e..3787077f0da 100644 --- a/.github/workflows/hypothesis.yaml +++ b/.github/workflows/hypothesis.yaml @@ -55,7 +55,7 @@ jobs: shell: bash -l {0} env: - PIXI_ENV: test + PIXI_ENV: "test-py313" steps: - uses: actions/checkout@v6 From d1aaf8ead7a8c98a195d83e65e82080675b27d45 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:23:30 +0100 Subject: [PATCH 07/14] forgotten env name --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d114c4a530d..0ef73a80d15 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -52,7 +52,7 @@ jobs: matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] # Bookend python versions - pixi-env: ["test-py311", "test"] + pixi-env: ["test-py311", "test-py313"] pytest-addopts: [""] include: # Minimum python version: From e8f9b5e9cefa6d1c6afbbd162cc3fdb17a2195fb Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:25:50 +0100 Subject: [PATCH 08/14] also rename the min-versions envs and ci jobs --- .github/workflows/ci.yaml | 6 +++--- pixi.toml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0ef73a80d15..f49ada5c048 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -56,11 +56,11 @@ jobs: pytest-addopts: [""] include: # Minimum python version: - - pixi-env: "test-bare-minimum" + - pixi-env: "test-py311-bare-minimum" os: ubuntu-latest - - pixi-env: "test-bare-min-and-scipy" + - pixi-env: "test-py311-bare-min-and-scipy" os: ubuntu-latest - - pixi-env: "test-min-versions" + - pixi-env: "test-py311-min-versions" os: ubuntu-latest # Latest python version: - pixi-env: "test-py313-no-numba" diff --git a/pixi.toml b/pixi.toml index d3426204c7e..b8e5901bda1 100644 --- a/pixi.toml +++ b/pixi.toml @@ -352,13 +352,13 @@ test-py313-with-typing = { features = [ "typing", ] } -test-bare-minimum = { features = ["test", "minimal"] } -test-bare-min-and-scipy = { features = [ +test-py311-bare-minimum = { features = ["test", "minimal"] } +test-py311-bare-min-and-scipy = { features = [ "test", "minimal", "minimum-scipy", ] } -test-min-versions = { features = [ +test-py311-min-versions = { features = [ "test", "minimal", "minimum-scipy", From 0ea016481914cb5e02a0d9c377a778cb2803fc04 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:33:39 +0100 Subject: [PATCH 09/14] cleanly separate pixi options from python options --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f49ada5c048..07e653c131a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -101,7 +101,7 @@ jobs: - name: Set environment variables run: | echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - echo "PYTHON_VERSION=$(pixi run -e ${{env.PIXI_ENV}} python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV + echo "PYTHON_VERSION=$(pixi run -e ${{env.PIXI_ENV}} -- python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV if [[ "${{ matrix.pytest-addopts }}" != "" ]] ; then From e25625e0b521e56f472a52e42a6fde8a7d30db29 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:35:58 +0100 Subject: [PATCH 10/14] more separation of options --- .github/workflows/ci-additional.yaml | 22 +++++++++++----------- .github/workflows/ci.yaml | 6 +++--- .github/workflows/upstream-dev-ci.yaml | 12 ++++++------ 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci-additional.yaml b/.github/workflows/ci-additional.yaml index 263ff2cb894..567c830b8bd 100644 --- a/.github/workflows/ci-additional.yaml +++ b/.github/workflows/ci-additional.yaml @@ -75,7 +75,7 @@ jobs: - name: Version info run: | - pixi run -e ${{env.PIXI_ENV}} python xarray/util/print_versions.py + pixi run -e ${{env.PIXI_ENV}} -- python xarray/util/print_versions.py - name: Run doctests run: | # Raise an error if there are warnings in the doctests, with `-Werror`. @@ -84,7 +84,7 @@ jobs: # # If dependencies emit warnings we can't do anything about, add ignores to # `xarray/tests/__init__.py`. - pixi run -e ${{env.PIXI_ENV}} python -m pytest --doctest-modules xarray --ignore xarray/tests -Werror + pixi run -e ${{env.PIXI_ENV}} -- python -m pytest --doctest-modules xarray --ignore xarray/tests -Werror mypy: name: Mypy @@ -117,14 +117,14 @@ jobs: - name: set environment variables run: | echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - echo "PYTHON_VERSION=$(pixi run -e ${{env.PIXI_ENV}} python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV + echo "PYTHON_VERSION=$(pixi run -e ${{env.PIXI_ENV}} -- python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV - name: Version info run: | - pixi run -e ${{env.PIXI_ENV}} python xarray/util/print_versions.py + pixi run -e ${{env.PIXI_ENV}} -- python xarray/util/print_versions.py - name: Run mypy run: | - pixi run -e ${{env.PIXI_ENV}} python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report + pixi run -e ${{env.PIXI_ENV}} -- python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report - name: Upload mypy coverage to Codecov uses: codecov/codecov-action@v5.5.1 @@ -166,14 +166,14 @@ jobs: - name: set environment variables run: | echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - echo "PYTHON_VERSION=$(pixi run -e ${{env.PIXI_ENV}} python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV + echo "PYTHON_VERSION=$(pixi run -e ${{env.PIXI_ENV}} -- python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV - name: Version info run: | - pixi run -e ${{env.PIXI_ENV}} python xarray/util/print_versions.py + pixi run -e ${{env.PIXI_ENV}} -- python xarray/util/print_versions.py - name: Run mypy run: | - pixi run -e ${{env.PIXI_ENV}} python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report + pixi run -e ${{env.PIXI_ENV}} -- python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report - name: Upload mypy coverage to Codecov uses: codecov/codecov-action@v5.5.1 @@ -223,14 +223,14 @@ jobs: - name: set environment variables run: | echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - echo "PYTHON_VERSION=$(pixi run -e ${{ matrix.pixi-env }} python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV + echo "PYTHON_VERSION=$(pixi run -e ${{ matrix.pixi-env }} -- python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV - name: Version info run: | - pixi run -e ${{ matrix.pixi-env }} python xarray/util/print_versions.py + pixi run -e ${{ matrix.pixi-env }} -- python xarray/util/print_versions.py - name: Run pyright run: | - pixi run -e ${{ matrix.pixi-env }} python -m pyright xarray/ + pixi run -e ${{ matrix.pixi-env }} -- python -m pyright xarray/ - name: Upload pyright coverage to Codecov uses: codecov/codecov-action@v5.5.1 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 07e653c131a..dd71013a625 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -128,11 +128,11 @@ jobs: - name: Version info run: | - pixi run -e ${{ matrix.pixi-env }} python xarray/util/print_versions.py + pixi run -e ${{ matrix.pixi-env }} -- python xarray/util/print_versions.py - name: Import xarray run: | - pixi run -e ${{ matrix.pixi-env }} python -c "import xarray" + pixi run -e ${{ matrix.pixi-env }} -- python -c "import xarray" - name: Restore cached hypothesis directory uses: actions/cache@v4 @@ -144,7 +144,7 @@ jobs: - name: Run tests run: - pixi run -e ${{ matrix.pixi-env }} python -m pytest -n ${{ matrix.numprocesses || 4 }} + pixi run -e ${{ matrix.pixi-env }} -- python -m pytest -n ${{ matrix.numprocesses || 4 }} --timeout 180 --cov=xarray --cov-report=xml diff --git a/.github/workflows/upstream-dev-ci.yaml b/.github/workflows/upstream-dev-ci.yaml index a3052957b0b..75ffddfda0c 100644 --- a/.github/workflows/upstream-dev-ci.yaml +++ b/.github/workflows/upstream-dev-ci.yaml @@ -79,15 +79,15 @@ jobs: cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }} - name: Version info run: | - pixi run -e ${{matrix.pixi-env}} python xarray/util/print_versions.py + pixi run -e ${{matrix.pixi-env}} -- python xarray/util/print_versions.py - name: Import xarray run: | - pixi run -e ${{matrix.pixi-env}} python -c 'import xarray' + pixi run -e ${{matrix.pixi-env}} -- python -c 'import xarray' - name: Run Tests if: success() id: status run: | - pixi run -e ${{matrix.pixi-env}} python -m pytest --timeout=60 -rf -nauto \ + pixi run -e ${{matrix.pixi-env}} -- python -m pytest --timeout=60 -rf -nauto \ --report-log output-${{ matrix.pixi-env }}-log.jsonl - name: Generate and publish the report if: | @@ -138,13 +138,13 @@ jobs: - name: set environment variables run: | echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - echo "PYTHON_VERSION=$(pixi run -e ${{matrix.pixi-env}} python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV + echo "PYTHON_VERSION=$(pixi run -e ${{matrix.pixi-env}} -- python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV - name: Version info run: | - pixi run -e ${{matrix.pixi-env}} python xarray/util/print_versions.py + pixi run -e ${{matrix.pixi-env}} -- python xarray/util/print_versions.py - name: Run mypy run: | - pixi run -e ${{matrix.pixi-env}} python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report + pixi run -e ${{matrix.pixi-env}} -- python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report - name: Upload mypy coverage to Codecov uses: codecov/codecov-action@v5.5.1 with: From a7dda15272c7ad16f7c76b07c0a224b70355a447 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:40:17 +0100 Subject: [PATCH 11/14] use a yaml code block --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index dd71013a625..bf317104d4e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -143,7 +143,7 @@ jobs: save-always: true - name: Run tests - run: + run: | pixi run -e ${{ matrix.pixi-env }} -- python -m pytest -n ${{ matrix.numprocesses || 4 }} --timeout 180 --cov=xarray From 9babe8177a1d0e5d0a209b45e8d4990a977cc1d2 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:42:07 +0100 Subject: [PATCH 12/14] keep the min-versions features in one place --- pixi.toml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pixi.toml b/pixi.toml index b8e5901bda1..531d829340b 100644 --- a/pixi.toml +++ b/pixi.toml @@ -28,15 +28,6 @@ xarray = { path = "." } [target.linux-64.dependencies] pydap-server = "*" -[feature.minimal.dependencies] -# minimal versions -python = "3.11.*" -numpy = "1.26.*" -pandas = "2.2.*" - -[feature.minimum-scipy.dependencies] -scipy = "1.13.*" - [feature.py311.dependencies] python = "3.11.*" @@ -105,6 +96,15 @@ iris = "*" # array jax = "*" # no way to get cpu-only jaxlib from conda if gpu is present +[feature.minimal.dependencies] +# minimal versions +python = "3.11.*" +numpy = "1.26.*" +pandas = "2.2.*" + +[feature.minimum-scipy.dependencies] +scipy = "1.13.*" + [feature.min-versions.dependencies] # minimal versions for all dependencies # Note that when you update min-supported versions, you should: From 426f8aa9bb1751a29eb2dae9901ec02e2b01bb86 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 12:44:31 +0100 Subject: [PATCH 13/14] chain the command with backslashes --- .github/workflows/ci.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bf317104d4e..baa95d7a61c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -144,11 +144,11 @@ jobs: - name: Run tests run: | - pixi run -e ${{ matrix.pixi-env }} -- python -m pytest -n ${{ matrix.numprocesses || 4 }} - --timeout 180 - --cov=xarray - --cov-report=xml - --junitxml=pytest.xml + pixi run -e ${{ matrix.pixi-env }} -- python -m pytest -n ${{ matrix.numprocesses || 4 }} \ + --timeout 180 \ + --cov=xarray \ + --cov-report=xml \ + --junitxml=pytest.xml - name: Upload test results if: always() From 78bef4bf7d37644b31b8c910db850aa25c5cd7cd Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 3 Dec 2025 14:11:33 +0100 Subject: [PATCH 14/14] use the matrix variable --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index baa95d7a61c..456c4034a59 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -101,7 +101,7 @@ jobs: - name: Set environment variables run: | echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - echo "PYTHON_VERSION=$(pixi run -e ${{env.PIXI_ENV}} -- python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV + echo "PYTHON_VERSION=$(pixi run -e ${{ matrix.pixi-env }} -- python --version | cut -d' ' -f2 | cut -d. -f1,2)" >> $GITHUB_ENV if [[ "${{ matrix.pytest-addopts }}" != "" ]] ; then