From 2425f40a474bdc755f740d2f4a142cfe58ca5b4b Mon Sep 17 00:00:00 2001 From: Robert Jackson Date: Wed, 2 Sep 2026 18:29:34 -0500 Subject: [PATCH] Build release wheels on manylinux_2_28 cibuildwheel defaults to the manylinux2014 image (glibc 2.17, GCC 10.2.1). NumPy >= 2.3 publishes only manylinux_2_28 x86_64 wheels, so no installable NumPy exists in that image and pip falls back to the NumPy sdist, where meson stops with "NumPy requires GCC >= 10.3". The cp312 wheel job died there; cp310 and cp311 survived only by backtracking the resolver down to numpy 2.2.6, the last release with manylinux2014 wheels, which is why cp311 took three minutes. Build on manylinux_2_28 so the published NumPy wheels install directly, and skip PyPy, for which NumPy no longer publishes wheels at all. Note this raises the glibc floor of the published wheels to 2.28, which NumPy's own wheels already require in practice. Co-Authored-By: Claude Opus 5 (1M context) --- pyproject.toml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index b0d7ed5..71fcc34 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,3 +75,16 @@ namespaces = false [tool.setuptools.cmdclass] build_ext = "_cmac_build.build_ext" + +[tool.cibuildwheel] +# NumPy publishes no PyPy wheels any more, so a PyPy target could only be built +# by compiling NumPy from source. Skip rather than ship an untested artifact. +skip = "pp*" + +[tool.cibuildwheel.linux] +# cibuildwheel defaults to the manylinux2014 image (glibc 2.17, GCC 10.2.1). +# NumPy >= 2.3 publishes only manylinux_2_28 wheels, so nothing installable is +# available in that image; pip falls back to the NumPy sdist and meson refuses +# with "NumPy requires GCC >= 10.3". Build on manylinux_2_28, where the +# published NumPy wheels install directly and no source build is attempted. +manylinux-x86_64-image = "manylinux_2_28"