Draft
CI: Use manylinux_2_28 for wheels to fix h5py/HDF5 build failure#5
Conversation
Agent-Logs-Url: https://github.com/Green-Phys/green-igen/sessions/3cbd0fc9-b273-4d5a-89fa-981ff96cad1c Co-authored-by: egull <7191877+egull@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix failing GitHub Actions wheel build by updating cibuildwheel config
CI: Use manylinux_2_28 for wheels to fix h5py/HDF5 build failure
Apr 28, 2026
Contributor
|
Gaurav, I'm assigning you as a reviewer. I think the code is basically ok but uses a not-yet-merged interface upstream. Once that's merged to main, everything should pass and we can merge this. |
gauravharsha
approved these changes
May 5, 2026
Collaborator
|
I think this is harmless to merge - the tests that are failing will pass once we have a release for |
Contributor
|
Agree. We can either do that or just wait. Likely master of github source will be best as we continue working with it and mbtools. I will revise. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
build_wheelsjob was pinned tomanylinux2014(CentOS 7), which provides HDF5 1.8.12 via yum — too old for modern h5py (requires ≥ 1.10.7). This caused wheel test installs to fail when pip fell back to building h5py from source.Changes
.github/workflows/build_wheels.ymlCIBW_MANYLINUX_X86_64_IMAGE:"manylinux2014"→"manylinux_2_28"— aligns with the existingpyproject.tomlsetting that was being overriddenCIBW_BEFORE_ALL_LINUX: replaced CentOS 7 vault/yum mirror hack withdnf install -y epel-release; dnf install -y hdf5-devel openblas-devel, consistent with the[tool.cibuildwheel.linux]config inpyproject.tomlmacOS jobs are unaffected. Refs failing job: https://github.com/Green-Phys/green-igen/actions/runs/24995436842/job/73191102734
Original prompt
Repository: Green-Phys/green-igen
Goal: Fix failing GitHub Actions wheel build/test job by updating the Linux cibuildwheel configuration to use a modern manylinux image and matching package installation commands, avoiding HDF5 1.8.12 which breaks h5py build.
Failure context:
pip install /tmp/cibuildwheel/repaired_wheel/green_igen-0.2.7-...whl), pip attempts to buildh5pyand fails with:"This version of h5py requires HDF5 >= 1.10.7 and != 1.12.0 (got version (1, 8, 12) ...)"
hdf5-devel(CentOS 7) which is too old.Current workflow definition:
build_wheelsuses pypa/cibuildwheel@v2.19.0 and sets:CIBW_MANYLINUX_X86_64_IMAGE: "manylinux2014"CIBW_BEFORE_ALL_LINUX: uses sed to change CentOS mirrorlist to vault + yum install hdf5-devel ...dnf install ... hdf5-devel openblas-devel.Requested change:
.github/workflows/build_wheels.ymljobbuild_wheelsto stop overriding to manylinux2014.pyproject.toml.CIBW_MANYLINUX_X86_64_IMAGE: "manylinux_2_28"(or remove the override entirely if cibuildwheel will pick it from pyproject.toml; but ensure result is manylinux_2_28).CIBW_BEFORE_ALL_LINUXfor thebuild_wheelsjob to usednfinstallation compatible with manylinux_2_28, e.g.:dnf install -y epel-release; dnf install -y hdf5-devel openblas-develDeliverables:
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: Please find a solution for this failing job. Use the logs, job definition, and any referenced files where the failure occurred. Keep your response focused on the solution and include code suggestions when appropriate.
Assistant: The job fails while testing the built wheel because
pip install ...green_igen-0.2.7...whltries to installh5py, andh5pyfalls back to building from source inside the manylinux container. That build aborts with:So the environment is providing HDF5 1.8.12, which is too old for the
h5pyversion pip is attempting to build.Fix (recommended): ensure a modern HDF5 + avoid source builds of h5py during wheel testing
In your workflow
.github/workflows/build_wheels.ymlthe Linux job setsCIBW_MANYLINUX_X86_64_IMAGE: "manylinux2014"and installshdf5-develviayum. On CentOS 7 (manylinux2014), that typically yields HDF5 1.8.x, which triggers this failure.You already have a better configuration in
pyproject.toml:manylinux-x86_64-image = "manylinux_2_28"before-allusesdnf install ... hdf5-develBut the workflow overrides it back to manylinux2014 for the first job. Remove that override (or switch it to 2_28), and install HDF5 via
dnfto get a sufficiently new HDF5.Patch suggestion: update Linux wheel build to manylinux_2_28 and dnf HDF5
Edit
.github/workflows/build_wheels.yml(ref68d1f3257426e822c714225be051e05d143d440f) to stop forcing manylinux2014 and use a 2_28 image, e.g.:And remove the current CentOS vault/yum-based
CIBW_BEFORE_ALL_LINUXline that installs the oldhdf5-develfrom CentOS 7 repos (that’s where the HDF5 1.8.12 is coming from).Optional hardening: force binary wheels for h5py during the “pip install wheel” test
Even with newer HDF5, you can prevent accidental source builds in the test install step by adding: