From 3cb2a52b9c3ed382ee721e5c7516c52efd019711 Mon Sep 17 00:00:00 2001 From: Kate Case Date: Wed, 8 Nov 2023 16:49:13 -0500 Subject: [PATCH] Start building Python 3.12 wheels (#532) ##### SUMMARY Fixes: https://github.com/ansible/pylibssh/issues/531 Depends-on: #533 ##### ISSUE TYPE - Feature Pull Request --- .github/workflows/ci-cd.yml | 19 +++++++++++++++++++ docs/changelog-fragments/532.misc.rst | 1 + requirements-build.txt | 2 +- setup.cfg | 1 + tox.ini | 8 +++----- 5 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 docs/changelog-fragments/532.misc.rst diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 84fdef41a..8657c1c27 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -586,6 +586,7 @@ jobs: # NOTE: Research on the wheel names / platform tags and how they # NOTE: are matched under various macOS versions: # NOTE: https://github.com/MacPython/wiki/wiki/Spinning-wheels + - "3.12" - "3.11" - "3.10" - 3.9 @@ -794,9 +795,11 @@ jobs: - cp39-cp39 - cp310-cp310 - cp311-cp311 + - cp312-cp312 manylinux-year-target: - 2014 - _2_24 + - _2_28 manylinux-image-target: # NOTE: Keep in sync with `build-manylinux-container-images.yml`. # NOTE: Ordered from "heavy" to "fast". @@ -850,6 +853,12 @@ jobs: arch: x86_64 qemu_arch: amd64 manylinux-year-target: 1 + exclude: + # NOTE: cp312-cp312 unavailable before _2_28 + - manylinux-python-target: cp312-cp312 + manylinux-year-target: 2014 + - manylinux-python-target: cp312-cp312 + manylinux-year-target: _2_24 env: ANSIBLE_PYLIBSSH_TRACING: >- @@ -1008,9 +1017,11 @@ jobs: - cp39-cp39 - cp310-cp310 - cp311-cp311 + - cp312-cp312 manylinux-year-target: - 2014 - _2_24 + - _2_28 manylinux-image-target: # NOTE: Keep in sync with `build-manylinux-container-images.yml`. # NOTE: Ordered from "heavy" to "fast". @@ -1018,6 +1029,12 @@ jobs: qemu_arch: arm64 - arch: s390x - arch: ppc64le + exclude: + # NOTE: cp312-cp312 unavailable before _2_28 + - manylinux-python-target: cp312-cp312 + manylinux-year-target: 2014 + - manylinux-python-target: cp312-cp312 + manylinux-year-target: _2_24 env: ANSIBLE_PYLIBSSH_TRACING: >- @@ -1643,6 +1660,7 @@ jobs: strategy: matrix: python-version: + - "3.12" - "3.11" - "3.10" - 3.9 @@ -1867,6 +1885,7 @@ jobs: strategy: matrix: python-version: + - "3.12" - "3.11" - "3.10" - 3.9 diff --git a/docs/changelog-fragments/532.misc.rst b/docs/changelog-fragments/532.misc.rst new file mode 100644 index 000000000..ca799bf79 --- /dev/null +++ b/docs/changelog-fragments/532.misc.rst @@ -0,0 +1 @@ +Added support for Python 3.12 -- by :user:`Qalthos` diff --git a/requirements-build.txt b/requirements-build.txt index d47d7e8a3..b1cee45e3 100644 --- a/requirements-build.txt +++ b/requirements-build.txt @@ -4,7 +4,7 @@ # # pip-compile --allow-unsafe --output-file=requirements-build.txt --strip-extras - # -cython==0.29.32 +cython==3.0.5 # via -r - expandvars==0.9.0 # via -r - diff --git a/setup.cfg b/setup.cfg index ca13495b9..cbcf3d0ab 100644 --- a/setup.cfg +++ b/setup.cfg @@ -35,6 +35,7 @@ classifiers = Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 + Programming Language :: Python :: 3.12 Programming Language :: Cython Topic :: Software Development :: Libraries :: Python Modules diff --git a/tox.ini b/tox.ini index 808a1d585..82c339a7e 100644 --- a/tox.ini +++ b/tox.ini @@ -235,7 +235,7 @@ description = Verify that dists under the dist/ dir have valid metadata depends = build-dists - build-dists-manylinux{1,2010,2014,_2_24}-{x86_64,i686,aarch64,armv7l,ppc64,ppc64le,s390x} + build-dists-manylinux{1,2010,2014,_2_24,_2_28}-{x86_64,aarch64,ppc64le,s390x} build-wheels-pip delocate-macos-wheels deps = @@ -250,7 +250,7 @@ commands = twine check --strict {env:PEP517_OUT_DIR}/* -[testenv:build-dists-manylinux{1,2010,2014,_2_24}-{x86_64,i686,aarch64,armv7l,ppc64,ppc64le,s390x}] +[testenv:build-dists-manylinux{1,2010,2014,_2_24,_2_28}-{x86_64,aarch64,ppc64le,s390x}] allowlist_externals = {env:DOCKER_EXECUTABLE:docker} basepython = python3 @@ -278,10 +278,7 @@ setenv = {[testenv]setenv} x86_64: MANYLINUX_ARCH_TAG = x86_64 - i686: MANYLINUX_ARCH_TAG = i686 aarch64: MANYLINUX_ARCH_TAG = aarch64 - armv7l: MANYLINUX_ARCH_TAG = armv7l - ppc64: MANYLINUX_ARCH_TAG = ppc64 ppc64le: MANYLINUX_ARCH_TAG = ppc64le s390x: MANYLINUX_ARCH_TAG = s390x @@ -289,6 +286,7 @@ setenv = manylinux2010: MANYLINUX_VERSION_TAG = 2010 manylinux2014: MANYLINUX_VERSION_TAG = 2014 manylinux_2_24: MANYLINUX_VERSION_TAG = _2_24 + manylinux_2_28: MANYLINUX_VERSION_TAG = _2_28 skip_install = true