Skip to content

fix(build): drop ZEAL dependency to fix flaky CI download#155

Merged
marjohma merged 1 commit into
mainfrom
fix/drop-zeal-dependency
Jun 16, 2026
Merged

fix(build): drop ZEAL dependency to fix flaky CI download#155
marjohma merged 1 commit into
mainfrom
fix/drop-zeal-dependency

Conversation

@marjohma

Copy link
Copy Markdown
Member

Summary

Main CI intermittently fails because CMake FetchContent downloads ZEAL (ACM TOMS Algorithm 840) at configure time from elsevier.digitalcommonsdata.com, which returns HTTP 503 on a cache miss — the same network/cache fragility that vendoring fixed for QUADPACK (#152). CI is green on a warm external-deps cache and fails on a miss.

ZEAL isn't needed: it backed only an opt-in WKB dispersion root-finder (WKB_dispersion_solver='ZEAL'); the default is Muller and no test exercises the ZEAL path. Removing it also drops a LAPACK ZGEGV→ZGGEV source patch, a separate plain-gfortran requirement, and the zeal-only dqagx.f. Vendoring (the QUADPACK trick) was rejected because ZEAL is ACM TOMS / Elsevier-licensed — awkward for a publication-bound repo.

Changes

  • Remove FetchZeal.cmake and its two include()s; drop the external_zeal source set and the zeal-only dqagx.f.
  • Remove the 'ZEAL' dispatch case and the ~320-line run_ZEAL_dispersion; delete zeal_input.f90 and the orphaned (uncompiled) test_zeal.f90.
  • fun_input.f90 (kept — Muller uses it) now sources DP from KIM_kinds_m instead of ZEAL's Precision_Module (its only kept consumer).
  • Point shipped namelists and READMEs at 'Muller'.

Net: +12 / −542.

Test plan

  • Configure no longer contacts Elsevier — zeal-src removed and not re-fetched; cmake configures clean.
  • From-scratch recompile of the dispersion sources with all ZEAL .mod files deleted → builds clean, precision_module.mod not regenerated.
  • ctest 21/22 — test_root_finding (Muller) and test_kim_solver pass; only test_rhs_balance fails (pre-existing, QL-Balance, macOS/gfortran-specific, identical to main).

Coordination / follow-ups

🤖 Generated with Claude Code

CMake FetchContent downloaded ZEAL (ACM TOMS Algorithm 840) at configure
time from elsevier.digitalcommonsdata.com, which intermittently returns
HTTP 503. A cache miss there fails the whole build -- the same
network/cache fragility that vendoring fixed for QUADPACK in #152.

ZEAL backed only an opt-in WKB dispersion root-finder ('ZEAL' solver);
the default is Muller and no test exercises the ZEAL path. Dropping it
also removes a LAPACK ZGEGV->ZGGEV source patch, a separate plain
gfortran requirement, and the zeal-only dqagx.f.

- Remove FetchZeal.cmake and its two includes
- Drop the external_zeal source set, the 'ZEAL' case, and the
  ~320-line run_ZEAL_dispersion subroutine
- Delete zeal_input.f90 and the orphaned (uncompiled) test_zeal.f90
- Source DP in fun_input.f90 from KIM_kinds_m instead of ZEAL's
  Precision_Module (the only kept consumer of a removed ZEAL module)
- Point shipped namelists and docs at 'Muller'

Muller remains the WKB solver. Verified with a from-scratch recompile of
the dispersion sources with all ZEAL modules absent; full ctest matches
main (test_rhs_balance failure is pre-existing and unrelated).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@marjohma marjohma merged commit e2a2ab0 into main Jun 16, 2026
1 check passed
@marjohma marjohma deleted the fix/drop-zeal-dependency branch June 16, 2026 08:39
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