From ba4a705258454e55fafee4d7b971db8b2b0b9ce5 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Thu, 15 Aug 2024 11:29:34 -0400 Subject: [PATCH 1/6] ci: add 3.13 wheels Signed-off-by: Henry Schreiner --- .github/workflows/build-wheels.yml | 6 +++--- .github/workflows/packaging-test.yml | 4 ++-- .github/workflows/test.yml | 1 + awkward-cpp/pyproject.toml | 4 ++-- cibuildwheel.toml | 4 ++-- pyproject.toml | 1 + requirements-test-full.txt | 11 ++++++----- 7 files changed, 17 insertions(+), 14 deletions(-) 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 ea52274645..13c26392fc 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' 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..6ca488d0f7 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*" +before-test = 'uv pip install --only-binary=:all: "numpy>=2.1.0rc1"' diff --git a/pyproject.toml b/pyproject.toml index 678c07a279..48fc078554 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..c399c32a4e 100644 --- a/requirements-test-full.txt +++ b/requirements-test-full.txt @@ -1,9 +1,10 @@ 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" +numpy>=2.1.0rc1; 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 From 5cdb7a096a4d5ef7e79fa3b8e082682b549e8269 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 16:11:03 +0000 Subject: [PATCH 2/6] style: pre-commit fixes --- requirements-test-full.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-test-full.txt b/requirements-test-full.txt index c399c32a4e..2c7419a2ae 100644 --- a/requirements-test-full.txt +++ b/requirements-test-full.txt @@ -1,8 +1,8 @@ fsspec>=2022.11.0;sys_platform != "win32" jax[cpu]>=0.2.15;sys_platform != "win32" and python_version < "3.13" -numpy>=2.1.0rc1; python_version >= "3.13" numba>=0.50.0;sys_platform != "win32" and python_version < "3.13" numexpr>=2.7; python_version < "3.13" +numpy>=2.1.0rc1; 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 From 69b14dd104c8db2cef7868018ca9fb43202feb14 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 3 Sep 2024 13:30:13 -0400 Subject: [PATCH 3/6] Update requirements-test-full.txt --- requirements-test-full.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements-test-full.txt b/requirements-test-full.txt index 2c7419a2ae..ded83569b7 100644 --- a/requirements-test-full.txt +++ b/requirements-test-full.txt @@ -2,7 +2,6 @@ fsspec>=2022.11.0;sys_platform != "win32" 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" -numpy>=2.1.0rc1; 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 From e6a3fe485e275720d6f78f0d6467692c34610413 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 3 Sep 2024 13:30:37 -0400 Subject: [PATCH 4/6] Update cibuildwheel.toml --- cibuildwheel.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cibuildwheel.toml b/cibuildwheel.toml index 6ca488d0f7..a9b5313127 100644 --- a/cibuildwheel.toml +++ b/cibuildwheel.toml @@ -21,7 +21,3 @@ build-verbosity = 1 [tool.cibuildwheel.environment] PIP_ONLY_BINARY = "cmake,numpy" - -[[tool.cibuildwheel.overrides]] -select = "cp313*" -before-test = 'uv pip install --only-binary=:all: "numpy>=2.1.0rc1"' From 9378eb76d3657e70c183fa42d69a1807715bca8b Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 3 Sep 2024 14:07:50 -0400 Subject: [PATCH 5/6] ci: build pyo3 in forward compat mode --- cibuildwheel.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cibuildwheel.toml b/cibuildwheel.toml index a9b5313127..91827c69a0 100644 --- a/cibuildwheel.toml +++ b/cibuildwheel.toml @@ -21,3 +21,7 @@ build-verbosity = 1 [tool.cibuildwheel.environment] PIP_ONLY_BINARY = "cmake,numpy" + +[[tool.cibuildwheel.overrides]] +select = "cp313*" +environment.PYO3_USE_ABI3_FORWARD_COMPATIBILITY = "1" From 0abfa2e40ba6de2d5fcb189da406755de04c5511 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 3 Sep 2024 14:40:43 -0400 Subject: [PATCH 6/6] Update test.yml --- .github/workflows/test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 13c26392fc..f21064edb9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -107,6 +107,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