Downgrade: raise SteadyStateDiffEq compat floor to 2.5#63
Merged
ChrisRackauckas merged 1 commit intoJun 28, 2026
Merged
Conversation
The Downgrade (Core) lane resolved SteadyStateDiffEq to its 2.0.x floor, which fails to precompile at minimum versions with `UndefVarError: AbstractNonlinearTerminationMode not defined` at SteadyStateDiffEq/src/solve.jl:70. SteadyStateDiffEq only added a direct NonlinearSolveBase dependency in v2.5 (Deps.toml: NonlinearSolveBase under "2.5 - 2", with compat NonlinearSolveBase = "1.5.0-1"). Versions 2.0-2.4 reference AbstractNonlinearTerminationMode but never declare the NonlinearSolveBase dep that supplies it, so at downgrade-minimum the symbol is no longer in scope and precompilation fails. Raising the floor to 2.5 makes the dependency resolution internally consistent. Verified on Julia 1.10 (LTS): SteadyStateDiffEq pinned to the floor 2.5.0 precompiles and loads, and the full FiniteStateProjection test-dependency set resolves at minimum versions (NonlinearSolveBase 1.16.1, DiffEqBase 6.194.0, SciMLBase 2.146.0). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
ChrisRackauckas-Claude
pushed a commit
to ChrisRackauckas-Claude/FiniteStateProjection.jl
that referenced
this pull request
Jul 3, 2026
Resolve the Project.toml [compat] conflict by keeping the PR's SparseArrays = "1" entry (added so Aqua deps_compat stops flagging the missing bound) alongside main's SteadyStateDiffEq = "2.5" / DiffEqBase = "6.165, 7" floors and the v0.3.4 release bump from SciML#62/SciML#63. main's SciML#29 already re-qualified the FSP method extensions to SciMLBase.ODEProblem / SciMLBase.SteadyStateProblem with SciMLBase.NullParameters() defaults; those forms come in via the merge. The run_qa NullParameters ignore added here stays correct: NullParameters is still non-public in the Catalyst-15-pinned SciMLBase 2.153.1, so the all_qualified_accesses_are_public check still flags the SciMLBase.NullParameters qualified access. Verified on Julia 1.12.6 against the merged tree with released SciMLTesting 1.7.0 / JET 0.11.5 / ExplicitImports 1.15.0 (resolved Catalyst 15.0.11, SciMLBase 2.153.1): Quality Assurance 13 Pass, 5 Broken, 0 Fail, 0 Error. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The
Downgrade (Core)lane onmainis red. At downgrade-minimum versions,SteadyStateDiffEqresolves to its 2.0.x floor (current compatSteadyStateDiffEq = "1, 2"), which fails to precompile with:Root cause
SteadyStateDiffEqonly added a directNonlinearSolveBasedependency starting in v2.5 (registryDeps.toml:NonlinearSolveBaseunder"2.5 - 2", withCompat.tomlNonlinearSolveBase = "1.5.0-1"). Versions 2.0–2.4 referenceAbstractNonlinearTerminationModebut never declare the dependency that supplies it. At downgrade-minimum, the symbol is no longer re-exported into scope and precompilation fails.Raising the floor to
2.5makes the resolution internally consistent.Verification
Local, Julia 1.10 (LTS):
SteadyStateDiffEqpinned to 2.0.1 fails to precompile with the exactAbstractNonlinearTerminationModeUndefVarError.2.5:SteadyStateDiffEq2.5.0 precompiles + loads, and the full FiniteStateProjection test-dependency set resolves at minimum versions (resolved:NonlinearSolveBase 1.16.1,DiffEqBase 6.194.0,SciMLBase 2.146.0).Only
Project.tomlis changed.Please ignore until reviewed by @ChrisRackauckas.