Skip to content

Add opt-in allow_macos_failure input to test_nwx_cmake_build/test_nwx_pip_build - #188

Merged
ryanmrichard merged 1 commit into
masterfrom
allow-macos-failure-opt-in
Aug 10, 2026
Merged

Add opt-in allow_macos_failure input to test_nwx_cmake_build/test_nwx_pip_build#188
ryanmrichard merged 1 commit into
masterfrom
allow-macos-failure-opt-in

Conversation

@ryanmrichard

Copy link
Copy Markdown
Member

Lets a repo with a known, tracked, macOS-only CI issue mark its macos-14 matrix leg continue-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.

…_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.
@ryanmrichard
ryanmrichard merged commit feb9e08 into master Aug 10, 2026
2 checks passed
@ryanmrichard
ryanmrichard deleted the allow-macos-failure-opt-in branch August 10, 2026 18:52
@github-actions

Copy link
Copy Markdown
Contributor

🚀 [bumpr] Bumped!
New version:v0.3.83
Changes:v0.3.82...v0.3.83

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).
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