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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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