Repository navigation
Rebuild so the installed config declares its dependencies - #161
Merged
Merged
Conversation
No source change. This exists only to republish the wheel against NWXCMake 0.2.2, which fixed the generated <name>Config.cmake (NWChemEx/NWXCMake#87). The wheels currently on PyPI ship a two-line config that includes their targets file and finds nothing, so the exported link interface -- MPI::MPI_CXX, spdlog::spdlog, cereal::cereal here -- references imported targets that never get created. Consumers see parallelzone_FOUND FALSE, and anything that resolved this package from its wheel ends up with a half-built nwx::parallelzone whose dangling link interface kills CMake at generate time. That is the SCF nightly failure on master since 2026-09-10. The fix only takes effect for newly built wheels, so each repo in the ecosystem has to be rebuilt. ParallelZone goes first because its link interface is non-empty and exercises both the emitted find_dependency() calls and the MPI COMPONENTS CXX handling, unlike the leaf packages whose interfaces are empty and whose configs are unchanged by the fix. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
|
🚀 [bumpr] Bumped! |
ryanmrichard
added a commit
to NWChemEx/.github
that referenced
this pull request
Sep 14, 2026
The Linux leg's import check has never been able to pass for an MPI-linked wheel: ImportError: libmpi.so.40: cannot open shared object file By design the Linux wheel does not vendor MPI -- CIBW_REPAIR_WHEEL_COMMAND_LINUX excludes libmpi/libopen-rte/libopen-pal so it links against the runtime system's OpenMPI, because vendoring is a dead end (auditwheel bundles shared libraries but never the bin/orted that OpenMPI's singleton startup needs). The other half of that contract is that something must supply MPI wherever the wheel is imported, and nothing did: CIBW_BEFORE_ALL_LINUX builds OpenMPI into /usr/local/openmpi inside the manylinux *container*, while "Verify Wheel Installs" runs on the runner host. Installing libopenmpi-dev/openmpi-bin there makes the host resemble the end user's machine the wheel already documents as a requirement. Same packages setup_nwx_dev_env uses, so the ABI matches what CIBW_BEFORE_ALL_LINUX compiled against. macOS is unaffected -- delocate vendors MPI into the wheel there -- which is why the ParallelZone release that surfaced this passed on macos-14 and failed only on Linux. This was masked rather than new: import_check.py arrived in 65681cd, the same commit that introduced the SKBUILD_CMAKE_DEFINE quoting defect fixed in #192. Every build died before reaching verification, so the check had never actually run on Linux. Found by NWChemEx/ParallelZone#161. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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.
Summary
Empty commit — no source change. This exists only to republish the wheel against NWXCMake 0.2.2, which fixed the generated
<name>Config.cmake(NWChemEx/NWXCMake#87).Why
The wheels currently on PyPI ship a config that is two lines long:
It finds nothing, while
install(EXPORT)writes the link interface verbatim — for this packageMPI::MPI_CXX;spdlog::spdlog;cereal::cereal. Those imported targets never get created, so consumers getparallelzone_FOUND FALSE, and anything that resolved this package from its wheel is left with a half-builtnwx::parallelzonewhose dangling link interface kills CMake at generate time.That is the SCF nightly failure on
master, red on all four legs every night since 2026-09-10.Why this repo first
The NWXCMake fix only takes effect for newly built wheels, so all seven repos in SCF's resolution closure (utilities, parallelzone, wtf, tensorwrapper, pluginplay, chemist, simde) need rebuilding. Order doesn't matter — a wheel build's isolated venv has no ecosystem wheels, so each repo resolves its dependencies from git master and picks up the fixed NWXCMake regardless.
ParallelZone goes first as the verification case because its link interface is non-empty: it exercises both the emitted
find_dependency()calls and theMPI COMPONENTS CXXhandling. The leaf packages (utilities,wtf) have empty interfaces, so their configs are byte-identical before and after the fix and would prove nothing.What to check after merging
The published wheel's
lib/cmake/parallelzone/parallelzoneConfig.cmakeshould now containfind_dependencycalls rather than the bare two-line include.Note this is also the first compiled release since NWChemEx/.github#192, which fixed a
cibuildwheeldefect that would have failed the wheel build on both platforms.🤖 Generated with Claude Code