diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index d6f992588e..361d292285 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -105,7 +105,7 @@ jobs: - name: Prepare build files run: pipx run nox -s prepare - - uses: pypa/cibuildwheel@v2.19 + - uses: pypa/cibuildwheel@v2.20 env: CIBW_BUILD: "${{ matrix.build }}*" CIBW_ARCHS: ${{ matrix.arch }} @@ -136,7 +136,7 @@ jobs: SOURCE_DATE_EPOCH: ${{ needs.determine-source-date-epoch.outputs.source-date-epoch }} strategy: matrix: - python: [38, 39, 310, 311, 312] + python: [38, 39, 310, 311, 312, 313] arch: [aarch64] steps: @@ -157,7 +157,7 @@ jobs: - uses: docker/setup-qemu-action@v3.2.0 - - uses: pypa/cibuildwheel@v2.19 + - uses: pypa/cibuildwheel@v2.20 env: CIBW_BUILD: cp${{ matrix.python }}-* CIBW_ARCHS: ${{ matrix.arch }} diff --git a/.github/workflows/packaging-test.yml b/.github/workflows/packaging-test.yml index 8317cc58a2..20ae0fe714 100644 --- a/.github/workflows/packaging-test.yml +++ b/.github/workflows/packaging-test.yml @@ -68,7 +68,7 @@ jobs: - name: Prepare build files run: pipx run nox -s prepare - - uses: pypa/cibuildwheel@v2.19 + - uses: pypa/cibuildwheel@v2.20 env: CIBW_ARCHS_MACOS: universal2 CIBW_BUILD: cp39-win_amd64 cp310-manylinux_x86_64 cp38-macosx_universal2 @@ -76,7 +76,7 @@ jobs: config-file: cibuildwheel.toml package-dir: awkward-cpp - - uses: pypa/cibuildwheel@v2.19 + - uses: pypa/cibuildwheel@v2.20 if: matrix.os == 'ubuntu-latest' env: CIBW_BUILD: cp312-manylinux_x86_64 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5ef43543af..2c58f66746 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -39,6 +39,7 @@ jobs: - ubuntu-latest - macos-13 python-version: + - '3.13' - '3.12' - '3.11' - '3.10' @@ -110,6 +111,11 @@ jobs: files: | awkward-cpp/dist/*.whl + - name: Add workaround for 3.13 + cramjam + if: matrix.python-version == '3.13' + run: echo 'PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1' >> $GITHUB_ENV + shell: bash + - name: Install awkward, awkward-cpp, and dependencies run: >- python -m pip install -v . ${{ steps.find-wheel.outputs.paths }} pytest-github-actions-annotate-failures diff --git a/awkward-cpp/pyproject.toml b/awkward-cpp/pyproject.toml index 9d64da31ab..9c5637b5d3 100644 --- a/awkward-cpp/pyproject.toml +++ b/awkward-cpp/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "scikit-build-core>=0.9", + "scikit-build-core>=0.10", "pybind11", ] build-backend = "scikit_build_core.build" @@ -59,7 +59,7 @@ Releases = "https://github.com/scikit-hep/awkward-1.0/releases" [tool.scikit-build] -minimum-version = "0.9" +minimum-version = "build-system.requires" build-dir = "build/{cache_tag}" sdist.reproducible = true sdist.include = [ diff --git a/cibuildwheel.toml b/cibuildwheel.toml index 96f94455fe..91827c69a0 100644 --- a/cibuildwheel.toml +++ b/cibuildwheel.toml @@ -23,5 +23,5 @@ build-verbosity = 1 PIP_ONLY_BINARY = "cmake,numpy" [[tool.cibuildwheel.overrides]] -select = "cp312-*" -environment.PIP_PRE = "1" +select = "cp313*" +environment.PYO3_USE_ABI3_FORWARD_COMPATIBILITY = "1" diff --git a/pyproject.toml b/pyproject.toml index 20e701f5de..b985ae05cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,6 +32,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Scientific/Engineering :: Mathematics", diff --git a/requirements-test-full.txt b/requirements-test-full.txt index 51e47e53f2..ded83569b7 100644 --- a/requirements-test-full.txt +++ b/requirements-test-full.txt @@ -1,9 +1,9 @@ fsspec>=2022.11.0;sys_platform != "win32" -jax[cpu]>=0.2.15;sys_platform != "win32" and python_version < "3.12" -numba>=0.50.0;sys_platform != "win32" and python_version < "3.12" -numexpr>=2.7; python_version < "3.12" -pandas>=0.24.0;sys_platform != "win32" and python_version < "3.12" -pyarrow==16.0.0;sys_platform != "win32" and python_version < "3.12" +jax[cpu]>=0.2.15;sys_platform != "win32" and python_version < "3.13" +numba>=0.50.0;sys_platform != "win32" and python_version < "3.13" +numexpr>=2.7; python_version < "3.13" +pandas>=0.24.0;sys_platform != "win32" and python_version < "3.13" +pyarrow==16.0.0;sys_platform != "win32" and python_version < "3.13" pytest>=6 pytest-cov pytest-xdist