diff --git a/README.md b/README.md
index df066df5..d03c4a61 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 93aad186..7875ea40 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 b4c6e96a..9fa7eabd 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 065c53c3..29ee2599 100644
--- a/unit_test/linux_build_steps_test.py
+++ b/unit_test/linux_build_steps_test.py
@@ -62,8 +62,9 @@ def test_linux_container_split(tmp_path: Path, monkeypatch):
"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 0e965aa4..fdf77c53 100644
--- a/unit_test/option_prepare_test.py
+++ b/unit_test/option_prepare_test.py
@@ -13,7 +13,19 @@ import pytest
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 @@ before-all = "true"
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 @@ before-all = "true"
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]