diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c0b724c..a0e2bf3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,10 +23,10 @@ jobs: strategy: matrix: # We test NumPy dev on 3.11 - python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] requires: ['requirements.txt'] include: - - python-version: '3.8' + - python-version: '3.10' requires: 'min-requirements.txt' steps: diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index e9ee67c..d8c4686 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -60,15 +60,9 @@ jobs: buildplat: - [ubuntu-latest, musllinux_x86_64] - [ubuntu-latest, manylinux_aarch64] - - [macos-13, macosx_x86_64] # native Intel hardware + - [macos-15-intel, macosx_x86_64] # native Intel hardware - [windows-latest, win_amd64] - python: ["cp38", "cp39", "cp310", "cp311", "cp312"] - # No NumPy wheels on 3.8 aarch64 or musl - exclude: - - buildplat: [ubuntu-latest, manylinux_aarch64] - python: "cp38" - - buildplat: [ubuntu-latest, musllinux_x86_64] - python: "cp38" + python: ["cp310", "cp311", "cp312", "cp313", "cp314"] include: # Manylinux and arm64 builds (on native hardware) are cheap, do all in one - { buildplat: ["ubuntu-latest", "manylinux_x86_64"], python: "*" } @@ -79,10 +73,8 @@ jobs: with: fetch-depth: 0 - - uses: actions/setup-python@v6 - - - name: Update pip/pipx - run: python -m pip install --upgrade pip pipx + - name: Install the latest version of uv + uses: astral-sh/setup-uv@v6 # For aarch64 support # https://cibuildwheel.pypa.io/en/stable/faq/#emulation @@ -92,7 +84,7 @@ jobs: if: runner.os == 'Linux' && endsWith(matrix.buildplat[1], 'aarch64') - name: Build wheel(s) - run: pipx run --spec "cibuildwheel>=2.15" cibuildwheel + run: uvx cibuildwheel env: CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }} diff --git a/pyproject.toml b/pyproject.toml index 02dbc21..8d43bf8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,9 +4,7 @@ requires = [ "setuptools_scm[toml]>=6.2", "cython", # Wheels need to be built with NumPy 2.0 to be compatible with 2.0 and 1.x - "numpy>=2.0.0rc1,<3; python_version > '3.8'", - # NEP29-minimum as of Aug 17, 2023 (1.25 doesn't support 3.8) - "numpy==1.22; python_version == '3.8'", + "numpy>=2", ] build-backend = "setuptools.build_meta" @@ -16,7 +14,7 @@ dynamic = ["version"] description = "Nitime: timeseries analysis for neuroscience data" readme = "README.rst" license = { file = "LICENSE" } -requires-python = ">=3.8" +requires-python = ">=3.10" authors = [ { name = "Nitime developers", email = "neuroimaging@python.org" }, ]