Skip to content

Bump PureKLU lower bound to 1.0.1 to fix Downgrade CI#1028

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:bump-pureklu-1.0.1
Jun 10, 2026
Merged

Bump PureKLU lower bound to 1.0.1 to fix Downgrade CI#1028
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:bump-pureklu-1.0.1

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

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 main since 2026-06-07. The Unsatisfiable requirements ... Zygote ... LogExpFunctions error 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) under allow_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)

  • Unmodified main: reproduces the exact CI resolution failure.
  • Downgraded main with 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...).
  • PureKLU's own test suite passes without the dep ("Testing PureKLU tests passed").

Side benefit: 10 fewer packages in the load graph for every LinearSolve user.

🤖 Generated with Claude Code

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>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 10, 2026 03:43
@ChrisRackauckas ChrisRackauckas merged commit e38930c into SciML:main Jun 10, 2026
8 of 13 checks passed
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.

2 participants