From a63e11a1c40bf45810a29b0837a72312202cb00b Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Mon, 7 Aug 2023 12:31:37 -0400 Subject: [PATCH] feat: build using 3.12 RC by default Signed-off-by: Henry Schreiner --- README.md | 2 +- cibuildwheel/util.py | 2 +- unit_test/build_selector_test.py | 4 ++-- unit_test/linux_build_steps_test.py | 3 ++- unit_test/option_prepare_test.py | 19 ++++++++++++++++--- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index df066df55..d03c4a617 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ What does it do? ² Windows arm64 support is experimental.
³ Alpine 3.14 and very briefly 3.15's default python3 [was not able to load](https://github.com/pypa/cibuildwheel/issues/934) musllinux wheels. This has been fixed; please upgrade the python package if using Alpine from before the fix.
⁴ Cross-compilation not supported with PyPy - to build these wheels you need to run cibuildwheel on an Apple Silicon machine.
-⁵ CPython 3.12 is available using the [CIBW_PRERELEASE_PYTHONS](https://cibuildwheel.readthedocs.io/en/stable/options/#prerelease-pythons) option.
+⁵ CPython 3.12 is built by default using Python RCs, starting with cibuildwheel 2.15.
- Builds manylinux, musllinux, macOS 10.9+, and Windows wheels for CPython and PyPy - Works on GitHub Actions, Azure Pipelines, Travis CI, AppVeyor, CircleCI, GitLab CI, and Cirrus CI diff --git a/cibuildwheel/util.py b/cibuildwheel/util.py index 93aad1860..7875ea404 100644 --- a/cibuildwheel/util.py +++ b/cibuildwheel/util.py @@ -250,7 +250,7 @@ class BuildSelector: requires_python: SpecifierSet | None = None # a pattern that skips prerelease versions, when include_prereleases is False. - PRERELEASE_SKIP: ClassVar[str] = "cp312-*" + PRERELEASE_SKIP: ClassVar[str] = "" prerelease_pythons: bool = False def __call__(self, build_id: str) -> bool: diff --git a/unit_test/build_selector_test.py b/unit_test/build_selector_test.py index b4c6e96a4..9fa7eabda 100644 --- a/unit_test/build_selector_test.py +++ b/unit_test/build_selector_test.py @@ -12,7 +12,7 @@ def test_build(): assert build_selector("cp37-manylinux_x86_64") assert build_selector("cp310-manylinux_x86_64") assert build_selector("cp311-manylinux_x86_64") - assert not build_selector("cp312-manylinux_x86_64") + assert build_selector("cp312-manylinux_x86_64") assert build_selector("pp36-manylinux_x86_64") assert build_selector("pp37-manylinux_x86_64") assert build_selector("cp36-manylinux_i686") @@ -32,7 +32,7 @@ def test_build(): assert build_selector("cp37-win_amd64") assert build_selector("cp310-win_amd64") assert build_selector("cp311-win_amd64") - assert not build_selector("cp312-win_amd64") + assert build_selector("cp312-win_amd64") assert not build_selector("pp36-win_amd64") assert not build_selector("pp37-win_amd64") diff --git a/unit_test/linux_build_steps_test.py b/unit_test/linux_build_steps_test.py index 065c53c35..29ee25990 100644 --- a/unit_test/linux_build_steps_test.py +++ b/unit_test/linux_build_steps_test.py @@ -62,8 +62,9 @@ def before_alls(step): "cp36-manylinux_x86_64", "cp37-manylinux_x86_64", "cp311-manylinux_x86_64", + "cp312-manylinux_x86_64", ] - assert before_alls(build_steps[0]) == ["", "", ""] + assert before_alls(build_steps[0]) == ["", "", "", ""] assert build_steps[1].container_image == "other_container_image" assert identifiers(build_steps[1]) == ["cp38-manylinux_x86_64", "cp310-manylinux_x86_64"] diff --git a/unit_test/option_prepare_test.py b/unit_test/option_prepare_test.py index 0e965aa40..fdf77c537 100644 --- a/unit_test/option_prepare_test.py +++ b/unit_test/option_prepare_test.py @@ -13,7 +13,19 @@ from cibuildwheel import linux, util from cibuildwheel.__main__ import main -ALL_IDS = {"cp36", "cp37", "cp38", "cp39", "cp310", "cp311", "pp37", "pp38", "pp39", "pp310"} +ALL_IDS = { + "cp36", + "cp37", + "cp38", + "cp39", + "cp310", + "cp311", + "cp312", + "pp37", + "pp38", + "pp39", + "pp310", +} @pytest.fixture() @@ -143,7 +155,7 @@ def test_build_with_override_launches(monkeypatch, tmp_path): identifiers = {x.identifier for x in kwargs["platform_configs"]} assert identifiers == { f"{x}-manylinux_x86_64" - for x in ALL_IDS - {"cp36", "cp310", "cp311", "pp37", "pp38", "pp39", "pp310"} + for x in ALL_IDS - {"cp36", "cp310", "cp311", "cp312", "pp37", "pp38", "pp39", "pp310"} } assert kwargs["options"].build_options("cp37-manylinux_x86_64").before_all == "" @@ -153,7 +165,8 @@ def test_build_with_override_launches(monkeypatch, tmp_path): assert not kwargs["container"]["simulate_32_bit"] identifiers = {x.identifier for x in kwargs["platform_configs"]} assert identifiers == { - f"{x}-manylinux_x86_64" for x in ["cp310", "cp311", "pp37", "pp38", "pp39", "pp310"] + f"{x}-manylinux_x86_64" + for x in ["cp310", "cp311", "cp312", "pp37", "pp38", "pp39", "pp310"] } kwargs = build_in_container.call_args_list[3][1]