diff --git a/.github/workflows/all-tests.yml b/.github/workflows/all-tests.yml index 0d242b759a..0d6366eaeb 100644 --- a/.github/workflows/all-tests.yml +++ b/.github/workflows/all-tests.yml @@ -24,7 +24,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.10", "3.13"] # Lower and higher versions we support + python-version: ["3.10", "3.14"] # Lower and higher versions we support os: [macos-latest, windows-latest, ubuntu-latest] steps: - uses: actions/checkout@v4 @@ -83,6 +83,11 @@ jobs: - name: Install packages run: | + # On macOS with Python 3.14, numcodecs wheels are only available for native arch (not universal2) + # Force pip to use pre-built wheels to avoid build failures from source + if [[ "${{ runner.os }}" == "macOS" && "${{ matrix.python-version }}" == "3.14" ]]; then + pip install numcodecs --only-binary :all: + fi pip install -e .[test_core] shell: bash diff --git a/pyproject.toml b/pyproject.toml index 6a9d57cc64..e8a05e1d15 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,8 @@ classifiers = [ dependencies = [ "numpy>=1.20;python_version<'3.13'", - "numpy>=2.0.0;python_version>='3.13'", + "numpy>=2.0.0;python_version>='3.13' and python_version<'3.14'", + "numpy>=2.3.2;python_version>='3.14'", "threadpoolctl>=3.0.0", "tqdm", "zarr>=2.18,<3", @@ -29,7 +30,8 @@ dependencies = [ "probeinterface>=0.3.2", "packaging", "pydantic", - "numcodecs<0.16.0", # For supporting zarr < 3 + "numcodecs;python_version<'3.14'", + "numcodecs>=0.16.5;python_version>='3.14'", ] [build-system]