Skip to content

Raise the LinearSolve 5.x floor past the ForwardDiff issquare import bug #4924

Description

@ChrisRackauckas-Claude

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions