Skip to content

Bump compat for OrdinaryDiffEq v7 / SciMLBase v3 ecosystem#4476

Merged
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:bump-ordinarydiffeq-v7-ecosystem
Apr 27, 2026
Merged

Bump compat for OrdinaryDiffEq v7 / SciMLBase v3 ecosystem#4476
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:bump-ordinarydiffeq-v7-ecosystem

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown

Summary

Widens compat for the OrdinaryDiffEq v7 / StochasticDiffEq v7 / DelayDiffEq v6 majors from SciML/OrdinaryDiffEq.jl#3562 and #3565.

Follows up on #4467 (which bumped DiffEqBase v7, SciMLBase v3, OrdinaryDiffEqCore v4) by covering the remaining packages that got new majors.

Compat changes:

Package Before After
DelayDiffEq (MTK + MTKBase) 5.61 5.61, 6
OrdinaryDiffEq (MTK + MTKBase + docs) 6.82.0 6.82.0, 7
OrdinaryDiffEqBDF (MTK) 1 1, 2
OrdinaryDiffEqDefault (MTK + MTKBase) 1.2 1.2, 2
OrdinaryDiffEqNonlinearSolve (MTK + MTKBase) 1.5.0 1.5.0, 2
OrdinaryDiffEqRosenbrock (MTK) 1 1, 2
StochasticDiffEq (MTK + MTKBase + docs) 6.82.0 / 6 6.82.0, 7 / 6, 7
ImplicitDiscreteSolve (MTKBase) 0.1.2, 1 0.1.2, 1, 2

Source migrations (OrdinaryDiffEq v7 / SciMLBase v3 breaking changes):

  • test/fmi/fmi.jl (7 sites): Rodas5P(autodiff = false)Rodas5P(autodiff = AutoFiniteDiff()) — Bool-typed autodiff removed in v7; must use ADTypes object.
  • lib/ModelingToolkitBase/test/sdesystem.jl: ensemble prob_func(prob, i, repeat) / output_func = (sol, i) ->prob_func(prob, ctx) / output_func = (sol, ctx) -> with ctx.i replacing the positional index — SciMLBase v3 ensemble interface change.

No source migrations were needed for the other v7 breakages (u_modified!, has_destats, DEAlgorithm/DEProblem/DESolution, concrete_solve, fastpow, QuadratureProblem, chunk_size, diff_type, standardtag, gamma/beta1/beta2 PID kwargs) — grepped clean across src/, ext/, and lib/ModelingToolkitBase/src/.

Note: StochasticDelayDiffEq = "1.11" is left as-is; per the v7 NEWS, StochasticDelayDiffEq has no v7-compatible release planned and users should migrate to DelayDiffEq directly.

Test plan

  • CI passes on this branch
  • FMI tests pass (cover the autodiff = AutoFiniteDiff() migration)
  • SDE ensemble tests pass (cover the prob_func/output_func signature migration)
  • Resolver test: Pkg.add(["OrdinaryDiffEq@7", "StochasticDiffEq@7", "DelayDiffEq@6"]) in a test environment resolves without conflicts

🤖 Generated with Claude Code

Widen compat across Project.toml, lib/ModelingToolkitBase/Project.toml, and
docs/Project.toml for the OrdinaryDiffEq v7 / StochasticDiffEq v7 /
DelayDiffEq v6 majors introduced in SciML/OrdinaryDiffEq.jl#3562 and SciML#3565.

Compat changes (all widened to include new major):
  ModelingToolkit:
    DelayDiffEq:             5.61      → 5.61, 6
    OrdinaryDiffEq:          6.82.0    → 6.82.0, 7  (re-add v7 after revert)
    OrdinaryDiffEqBDF:       1         → 1, 2
    OrdinaryDiffEqDefault:   1.2       → 1.2, 2
    OrdinaryDiffEqNonlinearSolve: 1.5.0 → 1.5.0, 2
    OrdinaryDiffEqRosenbrock: 1        → 1, 2
    StochasticDiffEq:        6.82.0    → 6.82.0, 7

  ModelingToolkitBase:
    DelayDiffEq:             5.61      → 5.61, 6
    ImplicitDiscreteSolve:   0.1.2, 1  → 0.1.2, 1, 2
    OrdinaryDiffEq:          6.82.0    → 6.82.0, 7
    OrdinaryDiffEqDefault:   1.2       → 1.2, 2
    OrdinaryDiffEqNonlinearSolve: 1.5.0 → 1.5.0, 2
    StochasticDiffEq:        6.82.0    → 6.82.0, 7

  docs:
    OrdinaryDiffEq:          6.31      → 6.31, 7
    StochasticDiffEq:        6         → 6, 7

Source migrations for v7 breaking changes:
  - test/fmi/fmi.jl: Rodas5P(autodiff = false) → Rodas5P(autodiff = AutoFiniteDiff())
    (Bool-typed autodiff removed in OrdinaryDiffEq v7; must use ADTypes object)
  - lib/ModelingToolkitBase/test/sdesystem.jl: ensemble prob_func/output_func
    signatures updated from (prob, i, repeat)/(sol, i) to (prob, ctx)/(sol, ctx)
    with ctx.i replacing the positional index argument (SciMLBase v3 change)

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas ChrisRackauckas merged commit e94763c into SciML:master Apr 27, 2026
42 of 77 checks passed
ChrisRackauckas-Claude pushed a commit to ChrisRackauckas-Claude/BaseModelica.jl that referenced this pull request Apr 27, 2026
The PR previously widened `OrdinaryDiffEq = "6.103, 7"` but kept
`DiffEqBase = "6.211.0"` capped at v6, which is why CI's resolver
silently picks OrdinaryDiffEq v6.111.0 — DiffEqBase v6 is incompatible
with OrdinaryDiffEq v7's `DiffEqBase = "7"` requirement, so the resolver
backs off to v6 across the board.

This widening (`"6.211.0"` -> `"6.211.0, 7"`) is necessary but not yet
sufficient: the next blocker is upstream — `ModelingToolkitBase v1.31.0`
(the latest registered) caps `ImplicitDiscreteSolve = "0.1.2 - 1.11.0"`,
forbidding `ImplicitDiscreteSolve v2`, which `OrdinaryDiffEqCore v4`
requires. MTK's PR SciML/ModelingToolkit.jl#4476 already widens that
compat in the MTKBase sublib but hasn't been released. Once
ModelingToolkitBase is registered with the widened
`ImplicitDiscreteSolve = "0.1.2, 1, 2"`, this PR's compat will admit
the v7 line.

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.

2 participants