Add Python 3.14 preview (#2390)
* feat: add CPython 3.14 beta 1 * fix tests
This commit is contained in:
@@ -31,6 +31,7 @@ While cibuildwheel itself requires a recent Python version to run (we support th
|
||||
| CPython 3.11 | ✅ | ✅ | ✅ | ✅ | ✅² | ✅ | ✅ | ✅ | ✅ | ✅ | ✅⁵ | N/A | N/A |
|
||||
| CPython 3.12 | ✅ | ✅ | ✅ | ✅ | ✅² | ✅ | ✅ | ✅ | ✅ | ✅ | ✅⁵ | N/A | ✅⁴ |
|
||||
| CPython 3.13³ | ✅ | ✅ | ✅ | ✅ | ✅² | ✅ | ✅ | ✅ | ✅ | ✅ | ✅⁵ | ✅ | N/A |
|
||||
| CPython 3.14³ | ✅ | ✅ | ✅ | ✅ | ✅² | ✅ | ✅ | ✅ | ✅ | ✅ | ✅⁵ | ✅ | N/A |
|
||||
| PyPy 3.8 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A | N/A | N/A | N/A |
|
||||
| PyPy 3.9 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A | N/A | N/A | N/A |
|
||||
| PyPy 3.10 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A | N/A | N/A | N/A |
|
||||
|
||||
@@ -158,6 +158,8 @@ def install_cpython(_tmp: Path, version: str, url: str, free_threading: bool) ->
|
||||
if version.startswith("3.13"):
|
||||
# Python 3.13 is the first version to have a free-threading option
|
||||
args += ["-applyChoiceChangesXML", str(resources.FREE_THREAD_ENABLE_313.resolve())]
|
||||
elif version.startswith("3.14"):
|
||||
args += ["-applyChoiceChangesXML", str(resources.FREE_THREAD_ENABLE_314.resolve())]
|
||||
call("sudo", "installer", "-pkg", pkg_path, *args, "-target", "/")
|
||||
pkg_path.unlink()
|
||||
env = os.environ.copy()
|
||||
|
||||
@@ -7,6 +7,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-manylinux_x86_64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-manylinux_x86_64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-manylinux_x86_64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-manylinux_x86_64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-manylinux_x86_64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-manylinux_i686", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-manylinux_i686", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-manylinux_i686", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -14,6 +16,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-manylinux_i686", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-manylinux_i686", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-manylinux_i686", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-manylinux_i686", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-manylinux_i686", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "pp38-manylinux_x86_64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
|
||||
{ identifier = "pp39-manylinux_x86_64", version = "3.9", path_str = "/opt/python/pp39-pypy39_pp73" },
|
||||
{ identifier = "pp310-manylinux_x86_64", version = "3.10", path_str = "/opt/python/pp310-pypy310_pp73" },
|
||||
@@ -26,6 +30,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-manylinux_aarch64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-manylinux_aarch64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-manylinux_aarch64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-manylinux_aarch64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-manylinux_aarch64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-manylinux_ppc64le", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-manylinux_ppc64le", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-manylinux_ppc64le", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -33,6 +39,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-manylinux_ppc64le", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-manylinux_ppc64le", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-manylinux_ppc64le", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-manylinux_ppc64le", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-manylinux_ppc64le", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-manylinux_s390x", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-manylinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-manylinux_s390x", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -40,6 +48,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-manylinux_s390x", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-manylinux_s390x", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-manylinux_s390x", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-manylinux_s390x", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-manylinux_s390x", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-manylinux_armv7l", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-manylinux_armv7l", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-manylinux_armv7l", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -47,6 +57,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-manylinux_armv7l", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-manylinux_armv7l", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-manylinux_armv7l", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-manylinux_armv7l", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-manylinux_armv7l", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-manylinux_riscv64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-manylinux_riscv64", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-manylinux_riscv64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -54,6 +66,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-manylinux_riscv64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-manylinux_riscv64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-manylinux_riscv64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-manylinux_riscv64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-manylinux_riscv64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "pp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
|
||||
{ identifier = "pp39-manylinux_aarch64", version = "3.9", path_str = "/opt/python/pp39-pypy39_pp73" },
|
||||
{ identifier = "pp310-manylinux_aarch64", version = "3.10", path_str = "/opt/python/pp310-pypy310_pp73" },
|
||||
@@ -70,6 +84,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-musllinux_x86_64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-musllinux_x86_64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-musllinux_x86_64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-musllinux_x86_64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-musllinux_x86_64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-musllinux_i686", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-musllinux_i686", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-musllinux_i686", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -77,6 +93,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-musllinux_i686", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-musllinux_i686", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-musllinux_i686", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-musllinux_i686", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-musllinux_i686", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-musllinux_aarch64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-musllinux_aarch64", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-musllinux_aarch64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -84,6 +102,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-musllinux_aarch64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-musllinux_aarch64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-musllinux_aarch64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-musllinux_aarch64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-musllinux_aarch64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-musllinux_ppc64le", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-musllinux_ppc64le", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-musllinux_ppc64le", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -91,6 +111,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-musllinux_ppc64le", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-musllinux_ppc64le", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-musllinux_ppc64le", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-musllinux_ppc64le", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-musllinux_ppc64le", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-musllinux_s390x", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-musllinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-musllinux_s390x", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -98,6 +120,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-musllinux_s390x", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-musllinux_s390x", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-musllinux_s390x", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-musllinux_s390x", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-musllinux_s390x", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-musllinux_armv7l", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-musllinux_armv7l", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-musllinux_armv7l", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -105,6 +129,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-musllinux_armv7l", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-musllinux_armv7l", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-musllinux_armv7l", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-musllinux_armv7l", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-musllinux_armv7l", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
{ identifier = "cp38-musllinux_riscv64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-musllinux_ricv64", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-musllinux_riscv64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
@@ -112,6 +138,8 @@ python_configurations = [
|
||||
{ identifier = "cp312-musllinux_riscv64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
|
||||
{ identifier = "cp313-musllinux_riscv64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
|
||||
{ identifier = "cp313t-musllinux_riscv64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
|
||||
{ identifier = "cp314-musllinux_riscv64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
|
||||
{ identifier = "cp314t-musllinux_riscv64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
|
||||
]
|
||||
|
||||
[macos]
|
||||
@@ -137,6 +165,12 @@ python_configurations = [
|
||||
{ identifier = "cp313t-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.3/python-3.13.3-macos11.pkg" },
|
||||
{ identifier = "cp313t-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.3/python-3.13.3-macos11.pkg" },
|
||||
{ identifier = "cp313t-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.3/python-3.13.3-macos11.pkg" },
|
||||
{ identifier = "cp314-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
|
||||
{ identifier = "cp314-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
|
||||
{ identifier = "cp314-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
|
||||
{ identifier = "cp314t-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
|
||||
{ identifier = "cp314t-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
|
||||
{ identifier = "cp314t-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
|
||||
{ identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_x86_64.tar.bz2" },
|
||||
{ identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" },
|
||||
{ identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_x86_64.tar.bz2" },
|
||||
@@ -165,12 +199,18 @@ python_configurations = [
|
||||
{ identifier = "cp313t-win32", version = "3.13.3", arch = "32" },
|
||||
{ identifier = "cp313-win_amd64", version = "3.13.3", arch = "64" },
|
||||
{ identifier = "cp313t-win_amd64", version = "3.13.3", arch = "64" },
|
||||
{ identifier = "cp314-win32", version = "3.14.0-b1", arch = "32" },
|
||||
{ identifier = "cp314t-win32", version = "3.14.0-b1", arch = "32" },
|
||||
{ identifier = "cp314-win_amd64", version = "3.14.0-b1", arch = "64" },
|
||||
{ identifier = "cp314t-win_amd64", version = "3.14.0-b1", arch = "64" },
|
||||
{ identifier = "cp39-win_arm64", version = "3.9.10", arch = "ARM64" },
|
||||
{ identifier = "cp310-win_arm64", version = "3.10.11", arch = "ARM64" },
|
||||
{ identifier = "cp311-win_arm64", version = "3.11.9", arch = "ARM64" },
|
||||
{ identifier = "cp312-win_arm64", version = "3.12.10", arch = "ARM64" },
|
||||
{ identifier = "cp313-win_arm64", version = "3.13.3", arch = "ARM64" },
|
||||
{ identifier = "cp313t-win_arm64", version = "3.13.3", arch = "ARM64" },
|
||||
{ identifier = "cp314-win_arm64", version = "3.14.0-b1", arch = "ARM64" },
|
||||
{ identifier = "cp314t-win_arm64", version = "3.14.0-b1", arch = "ARM64" },
|
||||
{ identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-win64.zip" },
|
||||
{ identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip" },
|
||||
{ identifier = "pp310-win_amd64", version = "3.10", arch = "64", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.19-win64.zip" },
|
||||
|
||||
@@ -19,7 +19,7 @@ charset-normalizer==3.4.2
|
||||
# via requests
|
||||
click==8.1.8
|
||||
# via typer
|
||||
cmake==4.0.0
|
||||
cmake==4.0.2
|
||||
# via pyodide-build
|
||||
distlib==0.3.9
|
||||
# via virtualenv
|
||||
@@ -50,7 +50,7 @@ packaging==25.0
|
||||
# unearth
|
||||
pip==25.1.1
|
||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||
platformdirs==4.3.7
|
||||
platformdirs==4.3.8
|
||||
# via virtualenv
|
||||
pydantic==2.11.4
|
||||
# via
|
||||
@@ -105,7 +105,7 @@ unearth==0.17.5
|
||||
# via pyodide-build
|
||||
urllib3==2.4.0
|
||||
# via requests
|
||||
virtualenv==20.30.0
|
||||
virtualenv==20.31.2
|
||||
# via
|
||||
# build
|
||||
# pyodide-build
|
||||
|
||||
@@ -20,7 +20,7 @@ packaging==25.0
|
||||
# delocate
|
||||
pip==25.1.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.3.7
|
||||
platformdirs==4.3.8
|
||||
# via virtualenv
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
@@ -28,7 +28,7 @@ tomli==2.2.1
|
||||
# via build
|
||||
typing-extensions==4.13.2
|
||||
# via delocate
|
||||
virtualenv==20.30.0
|
||||
virtualenv==20.31.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
zipp==3.21.0
|
||||
# via importlib-metadata
|
||||
|
||||
@@ -18,11 +18,11 @@ packaging==25.0
|
||||
# delocate
|
||||
pip==25.1.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.3.7
|
||||
platformdirs==4.3.8
|
||||
# via virtualenv
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
typing-extensions==4.13.2
|
||||
# via delocate
|
||||
virtualenv==20.30.0
|
||||
virtualenv==20.31.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -18,11 +18,11 @@ packaging==25.0
|
||||
# delocate
|
||||
pip==25.1.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.3.7
|
||||
platformdirs==4.3.8
|
||||
# via virtualenv
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
typing-extensions==4.13.2
|
||||
# via delocate
|
||||
virtualenv==20.30.0
|
||||
virtualenv==20.31.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -18,11 +18,11 @@ packaging==25.0
|
||||
# delocate
|
||||
pip==25.1.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.3.7
|
||||
platformdirs==4.3.8
|
||||
# via virtualenv
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
typing-extensions==4.13.2
|
||||
# via delocate
|
||||
virtualenv==20.30.0
|
||||
virtualenv==20.31.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# This file was autogenerated by uv via the following command:
|
||||
# nox -s update_constraints
|
||||
altgraph==0.17.4
|
||||
# via macholib
|
||||
build==1.2.2.post1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
delocate==0.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.9
|
||||
# via virtualenv
|
||||
filelock==3.18.0
|
||||
# via virtualenv
|
||||
macholib==1.16.3
|
||||
# via delocate
|
||||
packaging==25.0
|
||||
# via
|
||||
# build
|
||||
# delocate
|
||||
pip==25.1.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.3.8
|
||||
# via virtualenv
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
typing-extensions==4.13.2
|
||||
# via delocate
|
||||
virtualenv==20.31.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -28,7 +28,7 @@ tomli==2.2.1
|
||||
# via build
|
||||
typing-extensions==4.13.2
|
||||
# via delocate
|
||||
virtualenv==20.30.0
|
||||
virtualenv==20.31.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
zipp==3.20.2
|
||||
# via importlib-metadata
|
||||
|
||||
@@ -20,7 +20,7 @@ packaging==25.0
|
||||
# delocate
|
||||
pip==25.1.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.3.7
|
||||
platformdirs==4.3.8
|
||||
# via virtualenv
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
@@ -28,7 +28,7 @@ tomli==2.2.1
|
||||
# via build
|
||||
typing-extensions==4.13.2
|
||||
# via delocate
|
||||
virtualenv==20.30.0
|
||||
virtualenv==20.31.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
zipp==3.21.0
|
||||
# via importlib-metadata
|
||||
|
||||
@@ -18,11 +18,11 @@ packaging==25.0
|
||||
# delocate
|
||||
pip==25.1.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.3.7
|
||||
platformdirs==4.3.8
|
||||
# via virtualenv
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
typing-extensions==4.13.2
|
||||
# via delocate
|
||||
virtualenv==20.30.0
|
||||
virtualenv==20.31.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<array>
|
||||
<dict>
|
||||
<key>attributeSetting</key>
|
||||
<integer>1</integer>
|
||||
<key>choiceAttribute</key>
|
||||
<string>selected</string>
|
||||
<key>choiceIdentifier</key>
|
||||
<string>org.python.Python.PythonTFramework-3.14</string>
|
||||
</dict>
|
||||
</array>
|
||||
</plist>
|
||||
@@ -1,47 +1,47 @@
|
||||
[x86_64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.05.03-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.05.03-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.04.26-0
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.05.03-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.05.10-2
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.05.10-2
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.05.10-2
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.05.10-2
|
||||
|
||||
[i686]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.05.03-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.05.03-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.05.10-2
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.05.10-2
|
||||
|
||||
[aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.05.03-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.05.03-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.04.26-0
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.05.03-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.05.10-2
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.05.10-2
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.05.10-2
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.05.10-2
|
||||
|
||||
[ppc64le]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.05.03-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.05.03-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_ppc64le:2025.04.26-0
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.05.03-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.05.10-2
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.05.10-2
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_ppc64le:2025.05.10-2
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.05.10-2
|
||||
|
||||
[s390x]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.05.03-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.05.03-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_s390x:2025.04.26-0
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.05.03-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.05.10-2
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.05.10-2
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_s390x:2025.05.10-2
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.05.10-2
|
||||
|
||||
[pypy_x86_64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.05.03-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.05.03-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.04.26-0
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.05.10-2
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.05.10-2
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.05.10-2
|
||||
|
||||
[pypy_i686]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.05.03-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.05.10-2
|
||||
|
||||
[pypy_aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.05.03-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.05.03-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.04.26-0
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.05.10-2
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.05.10-2
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.05.10-2
|
||||
|
||||
[armv7l]
|
||||
manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.05.03-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.05.03-1
|
||||
manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.05.10-2
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.05.10-2
|
||||
|
||||
[riscv64]
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
default = { version = "20.30.0", url = "https://github.com/pypa/get-virtualenv/blob/20.30.0/public/virtualenv.pyz?raw=true" }
|
||||
default = { version = "20.31.2", url = "https://github.com/pypa/get-virtualenv/blob/20.31.2/public/virtualenv.pyz?raw=true" }
|
||||
|
||||
@@ -8,6 +8,7 @@ from ..typing import PlatformName
|
||||
PATH: Final[Path] = Path(__file__).parent.parent / "resources"
|
||||
INSTALL_CERTIFI_SCRIPT: Final[Path] = PATH / "install_certifi.py"
|
||||
FREE_THREAD_ENABLE_313: Final[Path] = PATH / "free-threaded-enable-313.xml"
|
||||
FREE_THREAD_ENABLE_314: Final[Path] = PATH / "free-threaded-enable-314.xml"
|
||||
NODEJS: Final[Path] = PATH / "nodejs.toml"
|
||||
DEFAULTS: Final[Path] = PATH / "defaults.toml"
|
||||
PINNED_DOCKER_IMAGES: Final[Path] = PATH / "pinned_docker_images.cfg"
|
||||
|
||||
@@ -58,6 +58,7 @@ When setting the options, you can use shell-style globbing syntax, as per [fnmat
|
||||
| Python 3.11 | cp311-macosx_x86_64<br/>cp311-macosx_universal2<br/>cp311-macosx_arm64 | cp311-win_amd64<br/>cp311-win32<br/>cp311-win_arm64 | cp311-manylinux_x86_64<br/>cp311-manylinux_i686<br/>cp311-musllinux_x86_64<br/>cp311-musllinux_i686 | cp311-manylinux_aarch64<br/>cp311-manylinux_ppc64le<br/>cp311-manylinux_s390x<br/>cp311-manylinux_armv7l<br/>cp311-manylinux_riscv64<br/>cp311-musllinux_aarch64<br/>cp311-musllinux_ppc64le<br/>cp311-musllinux_s390x<br/>cp311-musllinux_armv7l<br/>cp311-musllinux_riscv64 | |
|
||||
| Python 3.12 | cp312-macosx_x86_64<br/>cp312-macosx_universal2<br/>cp312-macosx_arm64 | cp312-win_amd64<br/>cp312-win32<br/>cp312-win_arm64 | cp312-manylinux_x86_64<br/>cp312-manylinux_i686<br/>cp312-musllinux_x86_64<br/>cp312-musllinux_i686 | cp312-manylinux_aarch64<br/>cp312-manylinux_ppc64le<br/>cp312-manylinux_s390x<br/>cp312-manylinux_armv7l<br/>cp312-manylinux_riscv64<br/>cp312-musllinux_aarch64<br/>cp312-musllinux_ppc64le<br/>cp312-musllinux_s390x<br/>cp312-musllinux_armv7l<br/>cp312-musllinux_riscv64 | |
|
||||
| Python 3.13 | cp313-macosx_x86_64<br/>cp313-macosx_universal2<br/>cp313-macosx_arm64 | cp313-win_amd64<br/>cp313-win32<br/>cp313-win_arm64 | cp313-manylinux_x86_64<br/>cp313-manylinux_i686<br/>cp313-musllinux_x86_64<br/>cp313-musllinux_i686 | cp313-manylinux_aarch64<br/>cp313-manylinux_ppc64le<br/>cp313-manylinux_s390x<br/>cp313-manylinux_armv7l<br/>cp313-manylinux_riscv64<br/>cp313-musllinux_aarch64<br/>cp313-musllinux_ppc64le<br/>cp313-musllinux_s390x<br/>cp313-musllinux_armv7l<br/>cp313-musllinux_riscv64 | cp313-ios_arm64_iphoneos<br/>cp313-ios_arm64_iphonesimulator<br/>cp313-ios_x86_64_iphonesimulator |
|
||||
| Python 3.14 | cp314-macosx_x86_64<br/>cp314-macosx_universal2<br/>cp314-macosx_arm64 | cp314-win_amd64<br/>cp314-win32<br/>cp314-win_arm64 | cp314-manylinux_x86_64<br/>cp314-manylinux_i686<br/>cp314-musllinux_x86_64<br/>cp314-musllinux_i686 | cp314-manylinux_aarch64<br/>cp314-manylinux_ppc64le<br/>cp314-manylinux_s390x<br/>cp314-manylinux_armv7l<br/>cp314-manylinux_riscv64<br/>cp314-musllinux_aarch64<br/>cp314-musllinux_ppc64le<br/>cp314-musllinux_s390x<br/>cp314-musllinux_armv7l<br/>cp314-musllinux_riscv64 | |
|
||||
| PyPy3.8 v7.3 | pp38-macosx_x86_64<br/>pp38-macosx_arm64 | pp38-win_amd64 | pp38-manylinux_x86_64<br/>pp38-manylinux_i686 | pp38-manylinux_aarch64 | |
|
||||
| PyPy3.9 v7.3 | pp39-macosx_x86_64<br/>pp39-macosx_arm64 | pp39-win_amd64 | pp39-manylinux_x86_64<br/>pp39-manylinux_i686 | pp39-manylinux_aarch64 | |
|
||||
| PyPy3.10 v7.3 | pp310-macosx_x86_64<br/>pp310-macosx_arm64 | pp310-win_amd64 | pp310-manylinux_x86_64<br/>pp310-manylinux_i686 | pp310-manylinux_aarch64 | |
|
||||
|
||||
+2
-2
@@ -73,7 +73,7 @@ def update_constraints(session: nox.Session) -> None:
|
||||
if session.venv_backend != "uv":
|
||||
session.install("uv>=0.1.23")
|
||||
|
||||
for minor_version in range(8, 14):
|
||||
for minor_version in range(8, 15):
|
||||
python_version = f"3.{minor_version}"
|
||||
env = os.environ.copy()
|
||||
# CUSTOM_COMPILE_COMMAND is a pip-compile option that tells users how to
|
||||
@@ -92,7 +92,7 @@ def update_constraints(session: nox.Session) -> None:
|
||||
)
|
||||
|
||||
shutil.copyfile(
|
||||
resources / "constraints-python312.txt",
|
||||
resources / "constraints-python314.txt",
|
||||
resources / "constraints.txt",
|
||||
)
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ def test(tmp_path, request):
|
||||
"CIBW_TEST_COMMAND": "pytest ./test",
|
||||
"CIBW_ARCHS": archs,
|
||||
# TODO remove me once proper support is added
|
||||
"CIBW_MANYLINUX_RISCV64_IMAGE": "ghcr.io/mayeut/manylinux_2_31:2025.03.02-1",
|
||||
"CIBW_MANYLINUX_RISCV64_IMAGE": "ghcr.io/mayeut/manylinux_2_35:2025.05.11-1",
|
||||
"CIBW_SKIP": "*-musllinux_riscv64",
|
||||
},
|
||||
)
|
||||
|
||||
+7
-4
@@ -228,7 +228,7 @@ def _expected_wheels(
|
||||
"armv7l": ["manylinux_2_17", "manylinux2014", "manylinux_2_31"],
|
||||
"i686": ["manylinux_2_5", "manylinux1", "manylinux_2_17", "manylinux2014"],
|
||||
"x86_64": ["manylinux_2_5", "manylinux1", "manylinux_2_28"],
|
||||
"riscv64": ["manylinux_2_31"],
|
||||
"riscv64": ["manylinux_2_31", "manylinux_2_35"],
|
||||
}.get(machine_arch, ["manylinux_2_17", "manylinux2014", "manylinux_2_28"])
|
||||
|
||||
if musllinux_versions is None:
|
||||
@@ -247,9 +247,12 @@ def _expected_wheels(
|
||||
]
|
||||
|
||||
if EnableGroup.CPythonFreeThreading in enable_groups:
|
||||
python_abi_tags += [
|
||||
"cp313-cp313t",
|
||||
]
|
||||
python_abi_tags.append("cp313-cp313t")
|
||||
|
||||
if EnableGroup.CPythonPrerelease in enable_groups:
|
||||
python_abi_tags.append("cp314-cp314")
|
||||
if EnableGroup.CPythonFreeThreading in enable_groups:
|
||||
python_abi_tags.append("cp314-cp314t")
|
||||
|
||||
if EnableGroup.PyPy in enable_groups:
|
||||
python_abi_tags += [
|
||||
|
||||
@@ -120,6 +120,7 @@ before-all = "true"
|
||||
|
||||
monkeypatch.chdir(pkg_dir)
|
||||
monkeypatch.setattr(sys, "argv", ["cibuildwheel", "--platform=linux"])
|
||||
monkeypatch.delenv("CIBW_ENABLE", raising=False)
|
||||
|
||||
main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user