Add opt-in allow_macos_failure input to test_nwx_cmake_build/test_nwx_pip_build - #188
Merged
Merged
Conversation
…_pip_build Lets a repo with a known, tracked, macOS-only CI issue (currently: SCF's segfault, see NWChemEx/SCF#64 and scf-macos-pybind11-segfault.md) mark its macos-14 matrix leg continue-on-error so the leg still runs and reports its real result -- visible signal for the investigation -- but doesn't block PR/nightly merge readiness. Default "false" preserves current all-legs-required behavior for every other caller.
Contributor
|
🚀 [bumpr] Bumped! |
ryanmrichard
added a commit
to NWChemEx/SCF
that referenced
this pull request
Aug 10, 2026
- merge.yaml: filter the release matrix to ubuntu-latest only, so build_pypi_dist/deploy_to_pypi no longer builds or publishes a macOS wheel for nwchemex-scf. There's a known, tracked, macOS-only segfault (see scf-macos-pybind11-segfault.md) that isn't fixed yet -- better to ship no macOS wheel than a broken one. - pull_request.yaml/nightly.yaml: pass the new allow_macos_failure: "true" input (NWChemEx/.github#188) to test_cmake_build/test_pip_build so the macOS leg still runs and reports its real result -- visible signal for the ongoing investigation -- without blocking PR/nightly merge readiness. - Revert the temporary macos-crash-diagnostics branch pin on test_cmake_build back to @master now that its lldb backtrace has been captured (see scf-macos-pybind11-segfault.md).
ryanmrichard
added a commit
to NWChemEx/SCF
that referenced
this pull request
Aug 10, 2026
* move files * refactors build * build factorization * ignore mac files * Migrate to fork-tested CI/CD + TestPyPI publish infrastructure Retarget cmake/get_nwx_cmake.cmake and pyproject.toml's build-system dependency to ryanmrichard/NWXCMake@build_overhaul. Switch pull_request and merge workflows from NWChemEx/.github + test_nwx_library.yaml to ryanmrichard/.github + test_nwx_cmake_build.yaml, trigger on build_overhaul instead of master, and add the platform_matrix -> build_pypi_dist -> deploy_to_pypi job chain (TestPyPI), matching the pattern already validated on simde/chemist/tensorwrapper. Drop the integration_tests job: INTEGRATION_TESTING needs an installed nwchemex, which depends on NUX/FriendZone/NWChemEx landing on the new build system first (next migration batch). Strip requirements.txt down to numpy (SCF's own actual test need). The previous ase/networkx/pydantic/qcengine entries were a hack for the old build system so CI could find FriendZone's dependencies; the new build system has FriendZone install its own deps. Add tests/python/conftest.py with the session-scoped RuntimeView fixture needed for MPI init/finalize across pytest modules. * Trigger CI now that Actions is enabled on the fork * Request BLAS and OpenMP provisioning for the cibuildwheel build GauXC (fetched via nwxcmake) unconditionally requires both; the manylinux/macOS cibuildwheel containers don't have them by default. * Add numpy to build-system.requires for gau2grid's codegen step gau2grid (fetched transitively via GauXC) invokes a Python codegen script at CMake configure/build time that imports numpy. cibuildwheel builds in an isolated venv containing only build-system.requires, so numpy must be listed there too, not just in the pytest requirements.txt. * Cap build-time numpy below 2 for manylinux2014 wheel availability Newer numpy releases only ship manylinux2014 wheels built against GCC >= 10.3; manylinux2014's own GCC 10.2.1 can't build numpy from source either, so an unpinned build-system.requires entry fails outright there. * Republish: pick up build_pypi_dist fix (stop vendoring MPI, require system MPI on Linux, exact-soname auditwheel exclude) * Enable SCF's C++/Python integration test suite in CI get_dependencies(nwchemex) now resolves via nwxcmake's new aggregator dependency file, so the existing INTEGRATION_TESTING block can be turned on. Pin Python to 3.12 (ecosystem wheels are cp312-only) and pip-install nwchemex into the ambient interpreter before ctest runs, so the CTest-driven py_integration_test_scf can import it. * Point extra_pip_packages at TestPyPI for the nwchemex install nwchemex is only published to TestPyPI, not the default PyPI index, so the plain "pip install nwchemex" in the CTest-before-install step fails with "No matching distribution found". * Fix module wiring gap in test_scf_driver.py's setUp() integrals::set_defaults(mm) isn't exposed to Python (EXPORT_PLUGIN only binds load_modules), and this test's setUp() never replicated its submodule wiring or the C++ integration fixture's "SAD guess" -> "SAD Density" -> "sto-3g SAD density" wiring either. Both gaps left "Kinetic"/ "Exchange matrix"/etc. unset, so every test in this file failed with "Submodules that are not ready" the moment CI actually exercised this file for the first time (it previously only ever "ran" as an incidental side effect of bare-pytest auto-discovery, without asserting on results via CTest). Inline the same change_submod calls integrals::set_defaults makes in C++ (all pure ModuleManager wiring, verified against integrals::libint::set_defaults / ao_integrals::set_defaults / utils::set_defaults) plus the missing SAD guess wiring. * Add remaining integrals::set_defaults wiring missed in the first pass integrals_mm.cpp's set_defaults() also wires "AO integral driver"'s Kinetic/Electron-Nuclear attraction submodules and several ERI-builder submodules directly (not inside the libint/ao_integrals/utils sub-namespace helpers copied in the previous commit). Confirmed by diff against integrals_mm.cpp that chemcache/nux/scf don't have this same gap -- their own load_modules() calls their own set_defaults() internally; integrals is the only one where the two are separate calls, which is exactly what test_scf_driver.py's setUp() was missing. * use fork * add pre-commit to gitignore * update pyproject.toml * integration tests work * update pyproject.toml * update nightly * Migrate CI/CD to NWChemEx org, master branch, real PyPI - Repoint all ryanmrichard/.github references to NWChemEx/.github - Flip merge.yaml/pull_request.yaml triggers from build_overhaul to master - Drop TestPyPI repository-url/extra_index_url from merge.yaml - Repoint get_nwx_cmake.cmake at NWChemEx/NWXCMake - Pin sibling deps (nwxcmake, simde, friendzone) to published PyPI floors instead of git URLs Deliberately NOT touched: pull_request.yaml:38 and nightly.yaml:33 still install nwchemex via --extra-index-url test.pypi.org -- the nwchemex meta-package doesn't reach real PyPI until Wave 9, so this stays until then (cleaned up in a follow-up PR). * Fix black/isort formatting flagged by check_formatting CI Pre-existing issue, unrelated to the migration -- first time check_formatting has ever actually run clean against this repo. * TEMPORARY: point test_cmake_build at .github's macos-crash-diagnostics branch Captures an lldb backtrace for the macOS segfault documented in scf-macos-pybind11-segfault.md by re-running whatever CTest test fails under lldb. Revert this commit (back to @master) once a trace is captured, before #64 merges. * Re-trigger CI: pick up lldb stop-hook fix on macos-crash-diagnostics * Skip macOS wheel release; keep macOS tests visible but non-blocking - merge.yaml: filter the release matrix to ubuntu-latest only, so build_pypi_dist/deploy_to_pypi no longer builds or publishes a macOS wheel for nwchemex-scf. There's a known, tracked, macOS-only segfault (see scf-macos-pybind11-segfault.md) that isn't fixed yet -- better to ship no macOS wheel than a broken one. - pull_request.yaml/nightly.yaml: pass the new allow_macos_failure: "true" input (NWChemEx/.github#188) to test_cmake_build/test_pip_build so the macOS leg still runs and reports its real result -- visible signal for the ongoing investigation -- without blocking PR/nightly merge readiness. - Revert the temporary macos-crash-diagnostics branch pin on test_cmake_build back to @master now that its lldb backtrace has been captured (see scf-macos-pybind11-segfault.md).
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.
Lets a repo with a known, tracked, macOS-only CI issue mark its
macos-14matrix legcontinue-on-error— the leg still runs and reports its real pass/fail (visible in the checks list, not hidden), but doesn't block the workflow or PR merge readiness. Default"false"preserves current all-legs-required behavior for every other caller.Immediate use case: NWChemEx/SCF#64 has a real, under-investigation macOS-only segfault (see
scf-macos-pybind11-segfault.md) unrelated to that PR's actual CI-migration content. This lets SCF keep macOS testing visible without blocking the migration.