From f6d5f88e6e23d5189ef90c43efc4d2a713992a77 Mon Sep 17 00:00:00 2001 From: Ankith Date: Sun, 4 Aug 2024 18:48:43 +0530 Subject: [PATCH] Add python 3.13 wheel support --- .circleci/config.yml | 2 +- .github/workflows/build-macos.yml | 2 +- .github/workflows/build-manylinux.yml | 2 +- .github/workflows/build-windows.yml | 2 +- buildconfig/manylinux-build/docker_base/Dockerfile-aarch64 | 3 ++- buildconfig/manylinux-build/docker_base/Dockerfile-i686 | 3 ++- buildconfig/manylinux-build/docker_base/Dockerfile-x86_64 | 3 ++- pyproject.toml | 6 ++++-- setup.cfg | 2 +- setup.py | 1 + 10 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 853090aac5..d1a3ae6ed2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -42,7 +42,7 @@ jobs: - run: name: Build the Linux wheels. command: | - pip3 install --user cibuildwheel==2.19.2 + pip3 install --user cibuildwheel==2.20.0 PATH="$HOME/.local/bin:$PATH" cibuildwheel --output-dir wheelhouse - store_artifacts: diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index ec69f55ff2..71ef4fb7bd 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -138,7 +138,7 @@ jobs: uv-version: "0.2.22" - name: Build and test wheels - uses: pypa/cibuildwheel@v2.19.2 + uses: pypa/cibuildwheel@v2.20.0 - uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/build-manylinux.yml b/.github/workflows/build-manylinux.yml index 83a0aefbfd..0cd8958cd5 100644 --- a/.github/workflows/build-manylinux.yml +++ b/.github/workflows/build-manylinux.yml @@ -91,7 +91,7 @@ jobs: CIBW_MANYLINUX_I686_IMAGE: ghcr.io/${{ github.repository }}_i686:${{ steps.meta.outputs.version }} CIBW_MANYLINUX_PYPY_I686_IMAGE: ghcr.io/${{ github.repository }}_i686:${{ steps.meta.outputs.version }} - uses: pypa/cibuildwheel@v2.19.2 + uses: pypa/cibuildwheel@v2.20.0 # We upload the generated files under github actions assets - name: Upload dist diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index edce55664c..064fd9cc88 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -62,7 +62,7 @@ jobs: uv-version: "0.2.22" - name: Build and test wheels - uses: pypa/cibuildwheel@v2.19.2 + uses: pypa/cibuildwheel@v2.20.0 - uses: actions/upload-artifact@v4 with: diff --git a/buildconfig/manylinux-build/docker_base/Dockerfile-aarch64 b/buildconfig/manylinux-build/docker_base/Dockerfile-aarch64 index 8eb9c898b1..ed26478e24 100644 --- a/buildconfig/manylinux-build/docker_base/Dockerfile-aarch64 +++ b/buildconfig/manylinux-build/docker_base/Dockerfile-aarch64 @@ -1,4 +1,5 @@ -FROM quay.io/pypa/manylinux2014_aarch64 +# pin version on image for CI stability +FROM quay.io/pypa/manylinux2014_aarch64:2024.08.03-1 ENV MAKEFLAGS="-j 2" ENV PG_DEP_PREFIX="/usr/local" diff --git a/buildconfig/manylinux-build/docker_base/Dockerfile-i686 b/buildconfig/manylinux-build/docker_base/Dockerfile-i686 index d516a4581f..c29e4d33ae 100644 --- a/buildconfig/manylinux-build/docker_base/Dockerfile-i686 +++ b/buildconfig/manylinux-build/docker_base/Dockerfile-i686 @@ -1,4 +1,5 @@ -FROM quay.io/pypa/manylinux2014_i686 +# pin version on image for CI stability +FROM quay.io/pypa/manylinux2014_i686:2024.08.03-1 ENV MAKEFLAGS="-j 2" ENV PG_DEP_PREFIX="/usr/local" diff --git a/buildconfig/manylinux-build/docker_base/Dockerfile-x86_64 b/buildconfig/manylinux-build/docker_base/Dockerfile-x86_64 index e712fe8e3f..6f67121c94 100644 --- a/buildconfig/manylinux-build/docker_base/Dockerfile-x86_64 +++ b/buildconfig/manylinux-build/docker_base/Dockerfile-x86_64 @@ -1,4 +1,5 @@ -FROM quay.io/pypa/manylinux2014_x86_64 +# pin version on image for CI stability +FROM quay.io/pypa/manylinux2014_x86_64:2024.08.03-1 ENV MAKEFLAGS="-j 2" ENV PG_DEP_PREFIX="/usr/local" diff --git a/pyproject.toml b/pyproject.toml index 98f894b905..2f06c6302d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Games/Entertainment", @@ -73,7 +74,7 @@ install = ['--tags=runtime,python-runtime,pg-tag'] # dependencies. Here is where uv comes into the picture. It is an "installer" like pip, # but faster. It has been observed to save a couple of minutes of CI time. build-frontend = "build[uv]" -build = "cp3{8,9,10,11,12}-* pp3{8,9,10}-*" +build = "cp3{8,9,10,11,12,13}-* pp3{8,9,10}-*" skip = "*-musllinux_*" # build[uv] is verbose by default, so below flag is not needed here # build-verbosity = 3 @@ -109,6 +110,7 @@ only-binary = ["numpy"] # 1. skip all 32-bit manylinux (i686) # 2. skip all pypy+arm combinations # 3. skip all pypy 310 because it is so new numpy does not have wheels for it +# 4. skip all python 313 because numpy doesn't have wheels for it yet [[tool.cibuildwheel.overrides]] -select = "{*-manylinux_i686,pp*-*{arm64,aarch64},pp310-*}" +select = "{*-manylinux_i686,pp*-*{arm64,aarch64},pp310-*,*p313-*}" test-requires = [] diff --git a/setup.cfg b/setup.cfg index f7d0bed4e4..1c71cfb797 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [tox:tox] -envlist = py{38,39,310,311,312} +envlist = py{38,39,310,311,312,313} skip_missing_interpreters = True skipsdist = True diff --git a/setup.py b/setup.py index 8ad35f7efc..47648be978 100644 --- a/setup.py +++ b/setup.py @@ -44,6 +44,7 @@ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Games/Entertainment",