Skip to content

Downgrade: raise SteadyStateDiffEq compat floor to 2.5#63

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:downgrade-floor-steadystatediffeq-2.5
Jun 28, 2026
Merged

Downgrade: raise SteadyStateDiffEq compat floor to 2.5#63
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:downgrade-floor-steadystatediffeq-2.5

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

The Downgrade (Core) lane on main is red. At downgrade-minimum versions, SteadyStateDiffEq resolves to its 2.0.x floor (current compat SteadyStateDiffEq = "1, 2"), which fails to precompile with:

ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
  @ ~/.julia/packages/SteadyStateDiffEq/.../src/solve.jl:70

Root cause

SteadyStateDiffEq only added a direct NonlinearSolveBase dependency starting in v2.5 (registry Deps.toml: NonlinearSolveBase under "2.5 - 2", with Compat.toml NonlinearSolveBase = "1.5.0-1"). Versions 2.0–2.4 reference AbstractNonlinearTerminationMode but 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.5 makes the resolution internally consistent.

Verification

Local, Julia 1.10 (LTS):

  • Reproduced the failure: SteadyStateDiffEq pinned to 2.0.1 fails to precompile with the exact AbstractNonlinearTerminationMode UndefVarError.
  • With the floor at 2.5: SteadyStateDiffEq 2.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.toml is changed.


Please ignore until reviewed by @ChrisRackauckas.

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 ChrisRackauckas marked this pull request as ready for review June 28, 2026 21:51
@ChrisRackauckas ChrisRackauckas merged commit aae7626 into SciML:main Jun 28, 2026
8 of 10 checks passed
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants