From 83978a26303e1febe72a2aaba383919a6e907a18 Mon Sep 17 00:00:00 2001 From: Charles Martin Date: Sat, 26 Sep 2026 16:07:24 +1000 Subject: [PATCH] ci: build Python 3.14 wheels Add cp314 to the cibuildwheel build patterns and a 3.14 classifier, and update cibuildwheel from v2.22 to v4.2.1 (v2.22 predates 3.14 support). PyPy 3.9 and 3.10 are now behind cibuildwheel's pypy-eol flag, so enable it to keep building those wheels. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/pr_to_master.yml | 2 +- .github/workflows/push_to_master.yml | 2 +- .github/workflows/release.yml | 2 +- pyproject.toml | 9 +++++---- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/pr_to_master.yml b/.github/workflows/pr_to_master.yml index a6fbf52..377fff3 100644 --- a/.github/workflows/pr_to_master.yml +++ b/.github/workflows/pr_to_master.yml @@ -51,7 +51,7 @@ jobs: if: matrix.os == 'windows-latest' - name: Build wheels - uses: pypa/cibuildwheel@v2.22 + uses: pypa/cibuildwheel@v4.2.1 env: # Skip trying to test arm64 builds on Intel Macs CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_universal2:arm64" diff --git a/.github/workflows/push_to_master.yml b/.github/workflows/push_to_master.yml index f7f0115..dd71041 100644 --- a/.github/workflows/push_to_master.yml +++ b/.github/workflows/push_to_master.yml @@ -51,7 +51,7 @@ jobs: if: matrix.os == 'windows-latest' - name: Build wheels - uses: pypa/cibuildwheel@v2.22 + uses: pypa/cibuildwheel@v4.2.1 env: # Skip trying to test arm64 builds on Intel Macs CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_universal2:arm64" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3711903..d04ca97 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,7 +54,7 @@ jobs: if: matrix.os == 'windows-latest' - name: Build wheels - uses: pypa/cibuildwheel@v2.22 + uses: pypa/cibuildwheel@v4.2.1 env: # Skip trying to test arm64 builds on Intel Macs CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_universal2:arm64" diff --git a/pyproject.toml b/pyproject.toml index 187145b..339a767 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Multimedia :: Sound/Audio :: MIDI", "Topic :: Software Development :: Libraries :: Python Modules", ] @@ -97,9 +98,9 @@ test-requires = "pytest" test-command = "pytest -v -m ci {package}/tests" [tool.cibuildwheel.linux] -build = ["cp3{9,10,11,12,13}-manylinux*", "pp3{9,10,11}-manylinux*"] +build = ["cp3{9,10,11,12,13,14}-manylinux*", "pp3{9,10,11}-manylinux*"] archs = ["auto64"] -enable = ["pypy"] +enable = ["pypy", "pypy-eol"] # Install system libraries before-all = [ "dnf -y install alsa-lib-devel alsa-utils", @@ -113,9 +114,9 @@ before-all = [ repair-wheel-command = "auditwheel repair --exclude libasound.so.2 --lib-sdir . -w {dest_dir} {wheel}" [tool.cibuildwheel.macos] -build = "cp3{9,10,11,12,13}-macosx*" +build = "cp3{9,10,11,12,13,14}-macosx*" archs = ["x86_64", "arm64"] [tool.cibuildwheel.windows] -build = "cp3{9,10,11,12,13}-win*" +build = "cp3{9,10,11,12,13,14}-win*" archs = ["AMD64"]