Skip to content

Support DiffEqBase v7 / SciMLBase v3 breaking update (completes #188)#190

Merged
ChrisRackauckas merged 2 commits into
SciML:mainfrom
ChrisRackauckas-Claude:codex/diffeqbase-v7-compat
Jun 14, 2026
Merged

Support DiffEqBase v7 / SciMLBase v3 breaking update (completes #188)#190
ChrisRackauckas merged 2 commits into
SciML:mainfrom
ChrisRackauckas-Claude:codex/diffeqbase-v7-compat

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Makes the source changes required for the DiffEqBase v7.5 / SciMLBase v3 breaking update (the OrdinaryDiffEq v7 / DifferentialEquations v8 release), and widens the DiffEqBase compat accordingly. This is the working counterpart to the compat-only Dependabot PR #188 — that PR bumps the compat bound but, on its own, would fail to load against DiffEqBase 7.5 because of removed API.

What broke

DiffEqBase 7.5 / SciMLBase 3 remove the deprecated DEProblem and DEAlgorithm aliases. This package used both as abstract supertypes, so loading against the new versions fails.

Changes

  • AbstractStateSpaceProblem <: DEProblem<: AbstractDEProblem
  • AbstractDifferenceEquationAlgorithm <: DEAlgorithm<: AbstractDEAlgorithm
  • corresponding using import updates
  • DiffEqBase compat widened to "6.210.1, 7.5" in Project.toml and test/Project.toml

AbstractDEProblem / AbstractDEAlgorithm exist in both compat bounds (verified: DiffEqBase 6.210.1 / SciMLBase 2.153.1 and DiffEqBase 7.5.5 / SciMLBase 3.20.0), so the dual-version compat range is preserved and the Downgrade CI stays green.

No behavioral change — DEProblem/DEAlgorithm were always just deprecated aliases for the Abstract* types.

Testing

Ran locally on Julia 1.10 against DiffEqBase 7.5.5 / SciMLBase 3.20.0:

  • Full GROUP=Core suite (CI=true): 147 testsets, all pass, exit 0.

Also confirmed lower-bound symbol availability under DiffEqBase 6.210.1 / SciMLBase 2.153.1.


🚧 Draft — please ignore until reviewed by @ChrisRackauckas. Supersedes / completes #188 (which can be closed once this merges).

🤖 Generated with Claude Code

DiffEqBase 7.5 (OrdinaryDiffEq v7 / DifferentialEquations v8) removes the
deprecated DEProblem and DEAlgorithm aliases. Switch the abstract supertypes
to AbstractDEProblem and AbstractDEAlgorithm, which are available across both
the old (DiffEqBase 6.210, SciMLBase 2.153) and new (DiffEqBase 7.5,
SciMLBase 3) compat bounds, and widen the DiffEqBase compat to 7.5.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Downgrade CI pins every dependency to its compat lower bound. With
DiffEqBase pinned to its floor 6.210.1, the old Enzyme floor 0.13.0 is
unsatisfiable: DiffEqBase 6.210.1 requires Enzyme >= 0.13.100 (via its
DiffEqBaseEnzymeExt compat). Additionally, EnzymeTestUtils 0.2.0 is runtime
-incompatible with Enzyme 0.13.100 — it calls guaranteed_const_nongen(T,
nothing) where the newer Enzyme expects a world-age UInt64, erroring in the
sensitivity_interface test. EnzymeTestUtils 0.2.4 (the version that raised its
own Enzyme floor to 0.13.78) fixes this.

Verified locally on Julia 1.10 with all deps pinned to their floors
(DiffEqBase 6.210.1, SciMLBase 2.153.0, Enzyme 0.13.100, EnzymeTestUtils
0.2.4): full GROUP=Core suite passes (147 testsets).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor Author

Added a commit bumping the test-only Enzyme floors so the Downgrade CI resolves and passes:

  • Enzyme: 0.130.13.100 — DiffEqBase 6.210.1 (its own compat floor) requires Enzyme = "0.13.100" via DiffEqBaseEnzymeExt, so the old 0.13.0 floor was unsatisfiable once DiffEqBase is pinned low.
  • EnzymeTestUtils: 0.20.2.4 — EnzymeTestUtils 0.2.0 is runtime-incompatible with Enzyme 0.13.100 (guaranteed_const_nongen(T, nothing) vs the world-age UInt64 signature), which errored in sensitivity_interface.jl. 0.2.4 is the version that raised its own Enzyme floor to 0.13.78 and adapted to the new API.

Verified locally on Julia 1.10 with every dependency pinned to its compat floor (DiffEqBase 6.210.1, SciMLBase 2.153.0, Enzyme 0.13.100, EnzymeTestUtils 0.2.4, …): full GROUP=Core suite passes (147 testsets, exit 0). Note the Downgrade CI was already red on main/#188/#189 before this for the same Enzyme/DiffEqBase floor conflict; this also fixes it. cc @ChrisRackauckas

@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 14, 2026 11:49
@ChrisRackauckas ChrisRackauckas merged commit f57fb5a into SciML:main Jun 14, 2026
5 of 6 checks passed
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.

2 participants