Skip to content

fix: bump manylinux images to 2_28, add fail-fast: false to wheel matrix - #128

Merged
petercorke merged 1 commit into
jhavl:mainfrom
petercorke:fix/manylinux-numpy2-build
Aug 18, 2026
Merged

fix: bump manylinux images to 2_28, add fail-fast: false to wheel matrix#128
petercorke merged 1 commit into
jhavl:mainfrom
petercorke:fix/manylinux-numpy2-build

Conversation

@petercorke

Copy link
Copy Markdown
Collaborator

Summary

The v2.0.0rc1 rehearsal's Linux wheel builds failed. NumPy is a build-time dependency here (setup.py's C extension needs its headers), and the manylinux2014 container has no matching prebuilt NumPy 2 wheel to install, so pip tried compiling NumPy from source instead — which then failed because NumPy's own build needs a newer GCC than that container ships.

Checked PyPI directly: NumPy 2.5.2's actual published wheels for x86_64/aarch64 are tagged manylinux_2_27/manylinux_2_28, nothing for manylinux2014. Bumping manylinux-x86_64-image/manylinux-aarch64-image to manylinux_2_28 means pip finds and installs that real prebuilt wheel instead of falling back to a from-source build at all — this removes the GCC-version problem entirely, rather than working around it.

Also adds fail-fast: false to the wheel-build matrix — the rc1 run's ubuntu-24.04-arm failure cancelled the other three (otherwise fine) platform builds via GitHub's default fail-fast cascade, which made the actual failure harder to diagnose than it needed to be.

Test plan

  • Verified NumPy 2.5.2's published wheel tags directly against PyPI's JSON API (no manylinux2014 wheels exist for x86_64/aarch64)
  • Re-cut v2.0.0rc1 (or rc2) after merge and confirm all 4 platforms build + upload_pypi succeeds

The v2.0.0rc1 rehearsal's Linux wheel builds failed: NumPy is a
build-time dependency here (setup.py's C extension needs its headers),
and the manylinux2014 container has no matching prebuilt NumPy 2 wheel
to install, so pip tried compiling NumPy from source instead -- which
then failed because NumPy's own build needs a newer GCC than that
container ships.

Fix: bump manylinux-x86_64-image/manylinux-aarch64-image from
"manylinux2014" to "manylinux_2_28". Checked PyPI directly first --
NumPy 2.5.2's actual published wheels for x86_64/aarch64 are tagged
manylinux_2_27/2_28, nothing for manylinux2014. Building inside a
manylinux_2_28 container means pip finds and installs that real
prebuilt wheel instead of falling back to a from-source build at all,
which removes the GCC-version problem entirely rather than working
around it.

Also adds fail-fast: false to the wheel-build matrix: without it, the
one real failure (aarch64) cancelled the two genuinely fine sibling
jobs (windows, x86_64 -- both show no real error in their logs, just
"operation was canceled"), masking whether they'd have actually
succeeded and making the failure harder to diagnose than necessary.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@petercorke
petercorke merged commit 717fb0f into jhavl:main Aug 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant