diff --git a/README.md b/README.md
index aaaeecf3..b6026b46 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,6 @@ While cibuildwheel itself requires a recent Python version to run (we support th
| PyPy 3.9 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅1 | ✅1 | ✅1 | N/A | N/A | N/A | N/A | N/A | N/A |
| PyPy 3.10 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅1 | ✅1 | ✅1 | N/A | N/A | N/A | N/A | N/A | N/A |
| PyPy 3.11 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅1 | ✅1 | ✅1 | N/A | N/A | N/A | N/A | N/A | N/A |
-| GraalPy 3.11 v24.2 | ✅ | ✅ | ✅ | N/A | N/A | ✅1 | N/A | ✅1 | N/A | N/A | N/A | N/A | N/A | N/A |
| GraalPy 3.12 v25.0 | ✅ | ✅ | ✅ | N/A | N/A | ✅1 | N/A | ✅1 | N/A | N/A | N/A | N/A | N/A | N/A |
**1** PyPy & GraalPy are only supported for manylinux wheels.
diff --git a/cibuildwheel/platforms/windows.py b/cibuildwheel/platforms/windows.py
index f55fc54d..dc0a2977 100644
--- a/cibuildwheel/platforms/windows.py
+++ b/cibuildwheel/platforms/windows.py
@@ -1,7 +1,6 @@
from __future__ import annotations
import dataclasses
-import json
import os
import platform as platform_module
import shutil
@@ -390,42 +389,6 @@ def setup_python(
setup_setuptools_cross_compile(tmp, python_configuration, python_libs_base, env)
setup_rust_cross_compile(tmp, python_configuration, python_libs_base, env)
- if implementation_id.startswith("gp311"):
- # GraalPy 24 fails to discover compilers, setup the relevant environment
- # variables. Adapted from
- # https://github.com/microsoft/vswhere/wiki/Start-Developer-Command-Prompt
- # Remove when GraalPy 24.x is dropped.
- vcpath = call(
- Path(os.environ["PROGRAMFILES(X86)"])
- / "Microsoft Visual Studio"
- / "Installer"
- / "vswhere.exe",
- "-products",
- "*",
- "-latest",
- "-property",
- "installationPath",
- capture_stdout=True,
- ).strip()
- log.notice(f"Discovering Visual Studio for GraalPy at {vcpath}")
- vcvars_file = tmp / "vcvars.json"
- call(
- f"{vcpath}\\Common7\\Tools\\vsdevcmd.bat",
- "-no_logo",
- "-arch=amd64",
- "-host_arch=amd64",
- "&&",
- "python",
- "-c",
- # this command needs to be one line for Windows reasons
- "import sys, json, pathlib, os; pathlib.Path(sys.argv[1]).write_text(json.dumps(dict(os.environ)))",
- vcvars_file,
- env=env,
- )
- with open(vcvars_file, encoding="utf-8") as f:
- vcvars = json.load(f)
- env.update(vcvars)
-
return base_python, env
@@ -511,22 +474,6 @@ def build(options: Options, tmp_path: Path) -> None:
),
)
- if (
- config.identifier.startswith("gp311")
- and build_frontend.name == "build"
- and "--no-isolation" not in extra_flags
- and "-n" not in extra_flags
- ):
- # GraalPy 24 fails to discover its standard library when a venv is created
- # from a virtualenv seeded executable. See
- # https://github.com/oracle/graalpython/issues/491 and remove this once
- # GraalPy 24 is dropped.
- log.notice(
- "Disabling build isolation to workaround GraalPy bug. If the build fails, consider using pip or build[uv] as build frontend."
- )
- shell("graalpy -m pip install setuptools wheel", env=env)
- extra_flags = [*extra_flags, "-n"]
-
match build_frontend.name:
case "pip":
# Path.resolve() is needed. Without it pip wheel may try to fetch package from pypi.org
diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml
index 1d969f67..cd457f89 100644
--- a/cibuildwheel/resources/build-platforms.toml
+++ b/cibuildwheel/resources/build-platforms.toml
@@ -21,7 +21,6 @@ python_configurations = [
{ 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" },
{ identifier = "pp311-manylinux_x86_64", version = "3.11", path_str = "/opt/python/pp311-pypy311_pp73" },
- { identifier = "gp311_242-manylinux_x86_64", version = "3.11", path_str = "/opt/python/graalpy311-graalpy242_311_native" },
{ identifier = "gp312_250-manylinux_x86_64", version = "3.12", path_str = "/opt/python/graalpy312-graalpy250_312_native" },
{ identifier = "cp39-manylinux_aarch64", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-manylinux_aarch64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -71,7 +70,6 @@ python_configurations = [
{ 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" },
{ identifier = "pp311-manylinux_aarch64", version = "3.11", path_str = "/opt/python/pp311-pypy311_pp73" },
- { identifier = "gp311_242-manylinux_aarch64", version = "3.11", path_str = "/opt/python/graalpy311-graalpy242_311_native" },
{ identifier = "gp312_250-manylinux_aarch64", version = "3.12", path_str = "/opt/python/graalpy312-graalpy250_312_native" },
{ identifier = "pp39-manylinux_i686", version = "3.9", path_str = "/opt/python/pp39-pypy39_pp73" },
{ identifier = "pp310-manylinux_i686", version = "3.10", path_str = "/opt/python/pp310-pypy310_pp73" },
@@ -176,8 +174,6 @@ python_configurations = [
{ identifier = "pp310-macosx_arm64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.19-macos_arm64.tar.bz2", sha256 = "3db8a03fc496164801646844d7f3b12baa0adb3ad9a0b7cb124521bc2e168a36" },
{ identifier = "pp311-macosx_x86_64", version = "3.11", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.23-macos_x86_64.tar.bz2", sha256 = "c95363c4e87235d11a6cec8128239c291b1eb67a752778fbcfe029a71da82b5e" },
{ identifier = "pp311-macosx_arm64", version = "3.11", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.23-macos_arm64.tar.bz2", sha256 = "4747b3aceba4c1c6104cddc0fe5ea302101d32955f0957347b9ecc4fbd7aed05" },
- { identifier = "gp311_242-macosx_x86_64", version = "3.11", url = "https://github.com/oracle/graalpython/releases/download/graal-24.2.2/graalpy-24.2.2-macos-amd64.tar.gz", sha256 = "2f4d5e7dbdf90e38778dfcb8ca3e1ec7eee257ef726b1937d5bc91b54cdddf9b" },
- { identifier = "gp311_242-macosx_arm64", version = "3.11", url = "https://github.com/oracle/graalpython/releases/download/graal-24.2.2/graalpy-24.2.2-macos-aarch64.tar.gz", sha256 = "f4a2ae01bae0fa53ec0d19f86d73c6dcc2a162d245552030183b84bfdd8f7635" },
{ identifier = "gp312_250-macosx_x86_64", version = "3.12", url = "https://github.com/oracle/graalpython/releases/download/graal-25.0.1/graalpy-25.0.1-macos-amd64.tar.gz", sha256 = "10b0721d52397f0cc85f038900318da2203711cbcfae7899e3faed49d3dc6221" },
{ identifier = "gp312_250-macosx_arm64", version = "3.12", url = "https://github.com/oracle/graalpython/releases/download/graal-25.0.3/graalpy-25.0.3-macos-aarch64.tar.gz", sha256 = "387d9f5b376860842bea4d55aae5820974f3f3b68fc36c77ae863a061a888857" },
]
@@ -214,7 +210,6 @@ python_configurations = [
{ identifier = "pp39-win_amd64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip", sha256 = "06ec12a5e964dc0ad33e6f380185a4d295178dce6d6df512f508e7aee00a1323" },
{ identifier = "pp310-win_amd64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.19-win64.zip", sha256 = "c0d07bba6c8fb4e5804f4a8b3f8ef07cc3d89f6ad1db42a45ffb9be60bbb7cc2" },
{ identifier = "pp311-win_amd64", version = "3.11", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.23-win64.zip", sha256 = "948b8ea58dea5b9917210fe4afd242c788fbfaba1c3f1a25e696a404f703389a" },
- { identifier = "gp311_242-win_amd64", version = "3.11", url = "https://github.com/oracle/graalpython/releases/download/graal-24.2.2/graalpy-24.2.2-windows-amd64.zip", sha256 = "9606134284d4d95b2f9d69c3087cd3e9e488f46355b419f5e66588a3281df6a3" },
{ identifier = "gp312_250-win_amd64", version = "3.12", url = "https://github.com/oracle/graalpython/releases/download/graal-25.0.3/graalpy-25.0.3-windows-amd64.zip", sha256 = "2ae5c42b93e08d9e106a017634a3442b272ccae6d08ace157244de0449e937d4" },
]
diff --git a/docs/options.md b/docs/options.md
index c18e8afe..6e3bc0e7 100644
--- a/docs/options.md
+++ b/docs/options.md
@@ -69,7 +69,6 @@ When setting the options, you can use shell-style globbing syntax, as per [fnmat
| PyPy3.9 v7.3 | pp39-macosx_x86_64
pp39-macosx_arm64 | pp39-win_amd64 | pp39-manylinux_x86_64
pp39-manylinux_i686 | pp39-manylinux_aarch64 | | | |
| PyPy3.10 v7.3 | pp310-macosx_x86_64
pp310-macosx_arm64 | pp310-win_amd64 | pp310-manylinux_x86_64
pp310-manylinux_i686 | pp310-manylinux_aarch64 | | | |
| PyPy3.11 v7.3 | pp311-macosx_x86_64
pp311-macosx_arm64 | pp311-win_amd64 | pp311-manylinux_x86_64
pp311-manylinux_i686 | pp311-manylinux_aarch64 | | | |
-| GraalPy 3.11 v24.2 | gp311_242-macosx_x86_64
gp311_242-macosx_arm64 | gp311_242-win_amd64 | gp311_242-manylinux_x86_64 | gp311_242-manylinux_aarch64 | | |
| GraalPy 3.12 v25.0 | gp312_250-macosx_x86_64
gp312_250-macosx_arm64 | gp312_250-win_amd64 | gp312_250-manylinux_x86_64 | gp312_250-manylinux_aarch64 | | |
The list of supported and currently selected build identifiers can also be retrieved by passing the `--print-build-identifiers` flag to cibuildwheel.
diff --git a/test/test_dependency_versions.py b/test/test_dependency_versions.py
index 714ecf90..bf238c3c 100644
--- a/test/test_dependency_versions.py
+++ b/test/test_dependency_versions.py
@@ -179,19 +179,6 @@ def test_dependency_constraints(
msg = f"Unknown method: {method}"
raise ValueError(msg)
- skip = ""
-
- if (
- utils.get_platform() == "windows"
- and method == "file"
- and build_frontend_env_nouv["CIBW_BUILD_FRONTEND"] == "build"
- ):
- # GraalPy 24 fails to discover its standard library when a venv is created
- # from a virtualenv seeded executable. See
- # https://github.com/oracle/graalpython/issues/491 and remove this once
- # GraalPy 24 is dropped
- skip = "gp311*"
-
# cross-platform Python script for dependency constraint checks
before_build_script = project_dir / "check_versions.py"
before_build_script.write_text(CHECK_VERSIONS_SCRIPT)
@@ -200,7 +187,6 @@ def test_dependency_constraints(
actual_wheels = utils.cibuildwheel_run(
project_dir,
add_env={
- "CIBW_SKIP": skip,
"CIBW_DEPENDENCY_VERSIONS": dependency_version_option,
"CIBW_BEFORE_BUILD": f"python {before_build_script.name}",
"EXPECTED_VERSIONS": json.dumps(tool_versions),
@@ -212,9 +198,4 @@ def test_dependency_constraints(
# also check that we got the right wheels
expected_wheels = utils.expected_wheels("spam", "0.1.0", single_python=True)
- if skip == "gp*":
- # See reference to https://github.com/oracle/graalpython/issues/491
- # above
- expected_wheels = [w for w in expected_wheels if "graalpy311" not in w]
-
assert set(actual_wheels) == set(expected_wheels)
diff --git a/test/test_pep518.py b/test/test_pep518.py
index 4bd74b2d..8b0fd380 100644
--- a/test/test_pep518.py
+++ b/test/test_pep518.py
@@ -40,26 +40,12 @@ def test_pep518(tmp_path: Path, build_frontend_env: dict[str, str]) -> None:
project_dir = tmp_path / "project"
basic_project.generate(project_dir)
- # GraalPy fails to discover its standard library when a venv is created
- # from a virtualenv seeded executable. See
- # https://github.com/oracle/graalpython/issues/491 and remove this once
- # fixed upstream.
- if build_frontend_env["CIBW_BUILD_FRONTEND"] == "build" and utils.get_platform() == "windows":
- build_frontend_env["CIBW_SKIP"] = "gp*"
-
# build the wheels
actual_wheels = utils.cibuildwheel_run(project_dir, add_env=build_frontend_env)
# check that the expected wheels are produced
expected_wheels = utils.expected_wheels("spam", "0.1.0")
- # GraalPy fails to discover its standard library when a venv is created
- # from a virtualenv seeded executable. See
- # https://github.com/oracle/graalpython/issues/491 and remove this once
- # fixed upstream.
- if build_frontend_env["CIBW_BUILD_FRONTEND"] == "build" and utils.get_platform() == "windows":
- expected_wheels = [w for w in expected_wheels if "graalpy" not in w]
-
assert set(actual_wheels) == set(expected_wheels)
# These checks ensure an extra file is not created when using custom
diff --git a/test/utils.py b/test/utils.py
index f023c0c1..584d54d5 100644
--- a/test/utils.py
+++ b/test/utils.py
@@ -319,7 +319,6 @@ def _expected_wheels(
if EnableGroup.GraalPy in enable_groups and include_graalpy_in_expected_wheels:
python_abi_tags += [
- "graalpy311-graalpy242_311_native",
"graalpy312-graalpy250_312_native",
]
@@ -376,10 +375,7 @@ def _expected_wheels(
else:
min_macosx = _floor_macosx(macosx_deployment_target, "10.15")
elif python_abi_tag.startswith("graalpy"):
- if python_abi_tag.startswith("graalpy311"):
- min_macosx = macosx_deployment_target
- else:
- min_macosx = _floor_macosx(macosx_deployment_target, "10.13")
+ min_macosx = _floor_macosx(macosx_deployment_target, "10.13")
else:
min_macosx = macosx_deployment_target
diff --git a/unit_test/build_selector_test.py b/unit_test/build_selector_test.py
index 39f57061..e80ca97b 100644
--- a/unit_test/build_selector_test.py
+++ b/unit_test/build_selector_test.py
@@ -199,7 +199,7 @@ def test_build_limited_python() -> None:
assert build_selector("cp37-win32")
assert build_selector("cp38-win32")
assert build_selector("pp37-win_amd64")
- assert build_selector("gp311_242-win_amd64")
+ assert build_selector("gp312_250-win_amd64")
def test_build_limited_python_partial() -> None:
diff --git a/unit_test/option_prepare_test.py b/unit_test/option_prepare_test.py
index abc2009e..5bad4d28 100644
--- a/unit_test/option_prepare_test.py
+++ b/unit_test/option_prepare_test.py
@@ -14,7 +14,7 @@ from cibuildwheel.oci_container import OCIPlatform
from cibuildwheel.util import file
DEFAULT_IDS = {"cp39", "cp310", "cp311", "cp312", "cp313", "cp314", "cp314t"}
-ALL_IDS = DEFAULT_IDS | {"pp39", "pp310", "pp311", "gp311_242", "gp312_250"}
+ALL_IDS = DEFAULT_IDS | {"pp39", "pp310", "pp311", "gp312_250"}
@pytest.fixture
@@ -158,7 +158,6 @@ before-all = "true"
"pp39",
"pp310",
"pp311",
- "gp311_242",
"gp312_250",
}
}
@@ -180,7 +179,6 @@ before-all = "true"
"pp39",
"pp310",
"pp311",
- "gp311_242",
"gp312_250",
]
}