Bump PureKLU lower bound to 1.0.1 to fix Downgrade CI#1028
Merged
ChrisRackauckas merged 1 commit intoJun 10, 2026
Conversation
PureKLU 1.0.0 shipped an unused strong dependency on ForwardDiff (removed in PureKLU 1.0.1), which pulled the ForwardDiff -> DiffRules -> LogExpFunctions chain into LinearSolve's runtime dependency graph. Once ForwardDiff 1.4.0 allowed LogExpFunctions 1.x, the downgrade resolver (minimal direct deps, maximized indirect deps) pinned LogExpFunctions 1.0.1 into the downgraded manifest, and the test sandbox could no longer add the Zygote 0.7 test dep (requires LogExpFunctions 0.3.x) with allow_reresolve = false. The Downgrade job pins direct deps to their compat lower bounds, so the bound must exclude 1.0.0 for the job to resolve the fixed PureKLU. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Fable 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.
Note: this PR should be ignored until reviewed by @ChrisRackauckas.
Depends on SciML/PureKLU.jl#63 being merged and v1.0.1 registered — Downgrade CI here cannot go green before that.
Replaces the closed #1025 with the root-cause fix.
The real issue
The Downgrade / Core job has failed on
mainsince 2026-06-07. TheUnsatisfiable requirements ... Zygote ... LogExpFunctionserror is a symptom; the cause is that PureKLU 1.0.0 declares ForwardDiff as a strong dep but never uses it (test-only, already in its[extras]). That phantom dep pulls ForwardDiff → DiffRules → LogExpFunctions (10 packages) into LinearSolve's runtime dependency graph. When ForwardDiff 1.4.0 (registered 2026-06-07 18:03 UTC, exactly between the last green and first red Downgrade run) first allowed LogExpFunctions 1.x, the downgrade resolver — minimal direct deps, maximized indirect deps — began pinning LogExpFunctions 1.0.1 into the downgraded manifest, and the test sandbox could then no longer add the Zygote 0.7 test dep (requires LogExpFunctions 0.3.x) underallow_reresolve = false.SciML/PureKLU.jl#63 removes the dep (v1.0.1). The Downgrade job pins direct deps to their compat lower bounds, so LinearSolve's bound must exclude 1.0.0 to resolve the fixed version — hence
PureKLU = "1.0.1".Verification (run locally, Julia 1.10.11, same procedure as the CI job)
main: reproduces the exact CI resolution failure.mainwith dep-free PureKLU 1.0.1 in place of 1.0.0: the entire ForwardDiff chain (CommonSubexpressions, DiffResults, DiffRules, ForwardDiff, IrrationalConstants, LogExpFunctions, NaNMath, OpenLibm_jll, OpenSpecFun_jll, SpecialFunctions) drops out of the manifest and the previously-failing test-sandbox resolution succeeds (Testing Running tests...).Side benefit: 10 fewer packages in the load graph for every LinearSolve user.
🤖 Generated with Claude Code