fix(build): drop ZEAL dependency to fix flaky CI download#155
Merged
Conversation
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>
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
Main CI intermittently fails because CMake
FetchContentdownloads ZEAL (ACM TOMS Algorithm 840) at configure time fromelsevier.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 warmexternal-depscache 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 LAPACKZGEGV→ZGGEVsource patch, a separate plain-gfortranrequirement, and the zeal-onlydqagx.f. Vendoring (the QUADPACK trick) was rejected because ZEAL is ACM TOMS / Elsevier-licensed — awkward for a publication-bound repo.Changes
FetchZeal.cmakeand its twoinclude()s; drop theexternal_zealsource set and the zeal-onlydqagx.f.'ZEAL'dispatch case and the ~320-linerun_ZEAL_dispersion; deletezeal_input.f90and the orphaned (uncompiled)test_zeal.f90.fun_input.f90(kept — Muller uses it) now sourcesDPfromKIM_kinds_minstead of ZEAL'sPrecision_Module(its only kept consumer).'Muller'.Net: +12 / −542.
Test plan
zeal-srcremoved and not re-fetched;cmakeconfigures clean..modfiles deleted → builds clean,precision_module.modnot regenerated.ctest21/22 —test_root_finding(Muller) andtest_kim_solverpass; onlytest_rhs_balancefails (pre-existing, QL-Balance, macOS/gfortran-specific, identical to main).Coordination / follow-ups
complex_region_roots". After this lands, Replace ZEAL with fortnum complex_region_roots in WKB dispersion (Z1) #148 becomes purely additive (re-add a WKB root-finder) and should rebase.KIM/src/dispersion/fun_input.f90is still marked "copied from the ZEAL package"; attribution kept intentionally. Worth a licensing review before publication.'ZEAL …'comment_strstrings remain inIO_collection.f90(only reachable by the removed path); left out to keep this diff focused.🤖 Generated with Claude Code