The root downgrade InterfaceI job on clean ModelingToolkit master d7f3ad5 resolves LinearSolve 5.2.0, SciMLBase 3.44.0, and SciMLOperators 1.26.1. AD through an inline linear SCC then reaches the broken LinearSolve ForwardDiff extension. This is unrelated to the one-line change in #4920.
Failing job: https://github.com/SciML/ModelingToolkit.jl/actions/runs/31368626127/job/93392397008
Exact clean standalone reproduction on Julia 1.10.11:
julialauncher +1.10 -e "using Pkg; Pkg.activate(\"interface-min-repro-env\"); Pkg.add([PackageSpec(name=\"LinearSolve\", version=\"5.2.0\"), PackageSpec(name=\"SciMLBase\", version=\"3.44.0\"), PackageSpec(name=\"SciMLOperators\", version=\"1.26.1\"), PackageSpec(name=\"ForwardDiff\")]); using LinearSolve, ForwardDiff; f(p) = sum(solve(LinearProblem([2.0 p[1]; p[2] 3.0], [1.0, 1.0])).u); ForwardDiff.gradient(f, [0.5, 0.25])"
Observed failure:
UndefVarError: issquare not defined
@ LinearSolveForwardDiffExt .../LinearSolveForwardDiffExt.jl:335
The exact owner-import bug was fixed in SciML/LinearSolve.jl#1125. LinearSolveForwardDiffExt called bare issquare while relying on an indirect SciMLBase reexport; the fix imports the public owner SciMLOperators.issquare. It was first shipped in LinearSolve 5.4.0.
Changing only LinearSolve to 5.4.0 in the same local environment passes and returns:
ForwardDiff.gradient(f, [0.5, 0.25]) = [-0.13942960615663197, -0.1086464463558171]
The root ModelingToolkit Project.toml currently permits LinearSolve 3.66, 4, and 5 without a corrected major-5 floor. The focused resolution is to require at least 5.4 when the resolver selects LinearSolve 5, while retaining the supported 3 and 4 ranges, then rerun the root downgrade InterfaceI job. This should be a standalone mechanical compatibility PR.
The root downgrade InterfaceI job on clean ModelingToolkit master d7f3ad5 resolves LinearSolve 5.2.0, SciMLBase 3.44.0, and SciMLOperators 1.26.1. AD through an inline linear SCC then reaches the broken LinearSolve ForwardDiff extension. This is unrelated to the one-line change in #4920.
Failing job: https://github.com/SciML/ModelingToolkit.jl/actions/runs/31368626127/job/93392397008
Exact clean standalone reproduction on Julia 1.10.11:
Observed failure:
The exact owner-import bug was fixed in SciML/LinearSolve.jl#1125. LinearSolveForwardDiffExt called bare issquare while relying on an indirect SciMLBase reexport; the fix imports the public owner SciMLOperators.issquare. It was first shipped in LinearSolve 5.4.0.
Changing only LinearSolve to 5.4.0 in the same local environment passes and returns:
The root ModelingToolkit Project.toml currently permits LinearSolve 3.66, 4, and 5 without a corrected major-5 floor. The focused resolution is to require at least 5.4 when the resolver selects LinearSolve 5, while retaining the supported 3 and 4 ranges, then rerun the root downgrade InterfaceI job. This should be a standalone mechanical compatibility PR.