Repository navigation
Raise LinearSolve downgrade floor to 5.4 to fix Downgrade CI - #1143
ChrisRackauckas-Claude wants to merge 1 commit into
Conversation
LinearSolve 5.0.0-5.3.0 use a bare `issquare` in `ext/LinearSolveForwardDiffExt.jl` without importing it; it only resolved because that extension does `using SciMLBase` and SciMLBase re-exported SciMLOperators. SciMLBase 3.40.0 dropped `@reexport using SciMLOperators`, so once the root SciMLBase floor moved to 3.43 the downgrade job pinned a LinearSolve whose ForwardDiff extension throws `UndefVarError: issquare not defined` the moment dual numbers reach `LinearSolve.init`, failing the NLLS Hessian test. LinearSolve 5.4.0 (SciML/LinearSolve.jl#1125) is the first version that imports the name from its owner. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Closing as already landed. This PR raised The branch has also diverged far enough that its diff against master is mostly a revert of newer work rather than its own change. |
1 similar comment
|
Closing as already landed. This PR raised The branch has also diverged far enough that its diff against master is mostly a revert of newer work rather than its own change. |
Please ignore this PR until it has been reviewed by @ChrisRackauckas.
Fixes the
Downgrade / Downgrade Tests - Corejob that has been red on master since 4aad487 (run 31101445388, job 92615726301).The failure
(The
DomainError(Inf, "cos(x) ...")andLinearAlgebra.SingularExceptionlines earlier in the log are logged-and-recovered errors fromtest/Core/setup_robustnesstesting.jl:27; those test sets reportPass/Brokenand are not the failure.)Attribution
issquareappears nowhere in this repository. It isSciMLOperators.issquare, and the undefined reference is inside LinearSolve's ForwardDiff extension: in LinearSolve 5.0.0 – 5.3.0,ext/LinearSolveForwardDiffExt.jluses bareissquare(line 75, and theassumptions = OperatorAssumptions(issquare(prob.A))keyword defaults on itsinitmethods) without importing it. It resolved only because the extension doesusing SciMLBaseand SciMLBase re-exported SciMLOperators.Two independent changes met:
@reexport using SciMLOperatorsfromsrc/SciMLBase.jl(present in 3.37.0/3.39.1, gone in 3.40.0+), sousing SciMLBaseno longer bringsissquareinto scope.using SciMLOperators: issquarein that file.The root
Project.tomlfloor isLinearSolve = "5.0.1"(set in #1099), so the downgrade job pins LinearSolve to exactly5.0.1— a version whose ForwardDiff extension is broken against the SciMLBase the same job pins.The trigger commit is 4aad487 ("Nonlinear preconditioning hooks", #1084), which raised
SciMLBase = "3.37"→"3.43". That moved the downgrade-pinned SciMLBase from3.37.0(still re-exporting SciMLOperators) to3.43.0(not), which is exactly where the job flips from green to red:UndefVarError: issquareUndefVarError: issquareNothing in NonlinearSolve uses
issquare, so there is nothing here to import or qualify; the floor is simply wrong. Raising it to5.4is the minimal correct fix — the test legitimately drives dual numbers throughLinearSolve.init, and only LinearSolve ≥ 5.4 supports that with a SciMLBase ≥ 3.40.Local reproduction
Faithful reproduction of the CI job: fresh clone of master, effective skip list computed exactly as the
Compute effective downgrade skip liststep does (Julia stdlibs ∪[sources]deps), thenjulia-actions/julia-downgrade-compat@v2'sdowngrade.jlrun with the same arguments (mode=deps,julia_version=lts,no_promote=Mooncake) on Julia 1.10.11.Resolved manifest before the fix — identical to CI:
Before (master, downgraded):
After this change, the same downgrade resolve yields
LinearSolve "5.4.0"(SciMLBase/SciMLOperators/ForwardDiff unchanged) and:The full
GROUP=Coresuite then passes on the downgraded manifest (thePkg.testenv is locked atLinearSolve v5.4.0/SciMLBase v3.43.0), 79 test sets, no failures or errors:The ordinary, non-downgraded
GROUP=Corerun (LinearSolve v5.5.0, Julia 1.10.11) is unaffected — same 79 test sets, no failures or errors:No
.jlfiles are touched, so Runic is a no-op here.Notes
DowngradeSublibraries) is green on master;lib/*/Project.tomlLinearSolve floors are untouched, so this does not collide with Fix the QA and Spell Check checks left red by the preconditioning hooks #1141/Letpostconditioncorrectors declare the coordinates they act in (bounded problems) #1142 onlib/NonlinearSolveBase/Project.toml.4.25.0→4.25.1. Letpostconditioncorrectors declare the coordinates they act in (bounded problems) #1142 also bumps the umbrella to4.26.0; whichever lands second needs a trivial rebase of that one line.🤖 Generated with Claude Code
https://claude.ai/code/session_01B9GHoo4pFa3DU9yhyTkevL