diff --git a/.github/workflows/ci-i386.yml b/.github/workflows/ci-i386.yml index 6e53d563..4a43bf39 100644 --- a/.github/workflows/ci-i386.yml +++ b/.github/workflows/ci-i386.yml @@ -48,7 +48,7 @@ jobs: - name: Install zfp and numcodecs run: | uv venv - uv pip install --group dev + uv pip install --group dev --group test --group test-extras PYTHON_INCLUDE=$(uv run python -c 'from sysconfig import get_paths; print(get_paths()["include"])'); PYTHON_LIB=$(uv run python -c 'import sysconfig; print(sysconfig.get_config_var("LIBDIR"))'); git clone https://github.com/LLNL/zfp @@ -59,7 +59,7 @@ jobs: uv run sudo make -C zfp/build install uv pip install ./zfp uv pip install --no-build-isolation -v . - uv pip install "numcodecs[test,test_extras,msgpack,google_crc32c,crc32c,zfpy]" + uv pip install "numcodecs[msgpack,google_crc32c,crc32c,zfpy]" shell: alpine.sh {0} - name: List installed packages diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7e2bac06..6dea07f1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -51,9 +51,13 @@ jobs: run: | # TODO: Remove this conditional when pcodec supports Python 3.14 if [[ "${{ matrix.python-version }}" == "3.14" ]]; then - python -m pip install -v ".[test,test_extras,msgpack,google_crc32c,crc32c,zfpy]" + python -m pip install -v \ + --group test --group test_extras \ + ".[msgpack,google_crc32c,crc32c,zfpy]" else - python -m pip install -v ".[test,test_extras,msgpack,google_crc32c,crc32c,pcodec,zfpy]" + python -m pip install -v \ + --group test --group test_extras \ + ".[msgpack,google_crc32c,crc32c,pcodec,zfpy]" fi - name: List installed packages @@ -106,9 +110,9 @@ jobs: - name: Install numcodecs run: | if [[ -n "${{ matrix.extras }}" ]]; then - python -m pip install -v ".[${{ matrix.extras }},test]" + python -m pip install -v --group test ".[${{ matrix.extras }}]" else - python -m pip install -v ".[test]" + python -m pip install -v --group test . fi - name: List installed packages @@ -159,7 +163,9 @@ jobs: - name: Install numcodecs and Zarr run: | - python -m pip install -v ".[test,test_extras]" "${{ matrix.zarr-pkg }}" crc32c + python -m pip install -v \ + --group test --group test_extras \ + . "${{ matrix.zarr-pkg }}" crc32c - name: List installed packages run: python -m pip list diff --git a/docs/contributing.md b/docs/contributing.md index e4bd9b73..8ad8acc4 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -116,8 +116,8 @@ bootstrap the build dependencies, then install numcodecs in editable mode: ``` $ uv venv -$ uv pip install --group dev -$ uv pip install --no-build-isolation -e ".[test,test_extras,msgpack]" +$ uv pip install --group dev --group test --group test_extras +$ uv pip install --no-build-isolation -e ".[msgpack]" ``` The first ``uv pip install`` step bootstraps the build tools into the virtualenv. @@ -141,8 +141,8 @@ $ python -m venv venv $ source venv/bin/activate # macOS/Linux $ # .\venv\Scripts\activate # Windows -$ pip install --group dev -$ pip install --no-build-isolation -e ".[test,test_extras,msgpack]" +$ pip install --group dev --group test --group test_extras +$ pip install --no-build-isolation -e ".[msgpack]" $ pytest -v ``` diff --git a/pyproject.toml b/pyproject.toml index 878c912a..16507ed0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,6 +62,16 @@ crc32c = [ google_crc32c = [ "google-crc32c>=1.5" ] + +[dependency-groups] +dev = [ + "meson-python>=0.17", + "meson>=1.6.0", + "ninja", + "cython>=3.0", + "setuptools-scm>=6.2", + "numpy>=2", +] docs = [ "sphinx", "sphinx-issues", @@ -79,16 +89,6 @@ test_extras = [ "importlib_metadata", "crc32c", # TODO: remove once zarr-python does not depend on crc32c anymore ] - -[dependency-groups] -dev = [ - "meson-python>=0.17", - "meson>=1.6.0", - "ninja", - "cython>=3.0", - "setuptools-scm>=6.2", - "numpy>=2", -] test-zarr-308 = [ "pytest", "pytest-cov", @@ -243,8 +243,8 @@ warn_unused_configs = true # meson-python editable installs require build deps (ninja, meson) at runtime for # auto-rebuild on import. Skip build isolation so the venv's ninja is used. # The "dev" dependency group provides these build tools. Bootstrap with: -# `uv pip install --group dev` before running -# `uv pip install --no-build-isolation -e ".[test,test_extras,msgpack]"`. +# `uv pip install --group dev --group test --group test_extras` before running +# `uv pip install --no-build-isolation -e ".[msgpack]"`. no-build-isolation-package = ["numcodecs"] conflicts = [ # Zarr versions conflict with each other