Skip to content

Bump downstream OrdinaryDiffEq/MTK compat for RAT 4.x#593

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downstream-ordinarydiffeq-compat
May 17, 2026
Merged

Bump downstream OrdinaryDiffEq/MTK compat for RAT 4.x#593
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downstream-ordinarydiffeq-compat

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented May 17, 2026

Summary

Restores Tests - Downstream to green. Master has been red on Downstream Julia 1/lts/pre for weeks; this PR makes the resolver succeed and updates the downstream sources for the OrdinaryDiffEq 7 API the bump exposes.

Compat changes (test/downstream/Project.toml)

  • OrdinaryDiffEq = "6.31""6.31, 7"
  • ModelingToolkit = "8.33, 9""8.33, 9, 10, 11" (OrdinaryDiffEq 7 transitively wants MTK 10+)
  • Add OrdinaryDiffEqRosenbrock = "1, 2" (no longer re-exported from OrdinaryDiffEq)
  • Add RecursiveArrayToolsShorthandConstructors (used by the AP[...] shorthand introduced in 334bd95)

Why the resolver was unsatisfiable on master

  • Adapt = "4" (required by RAT 4.x) narrows OrdinaryDiffEq to [4.0.0 - 5.39.1, 6.64.0 - 7.0.0].
  • OrdinaryDiffEq 6.110+ pins RecursiveArrayTools = "3.52.0 - 3".
  • Intersection in the 6.x window is empty, so OrdinaryDiffEq 7 is the only viable path.

Downstream source fixes (exposed once the resolver succeeds)

  • Rosenbrock23(autodiff = false)Rosenbrock23(autodiff = AutoFiniteDiff()). OrdinaryDiffEq 7 rejects Bool and asks for an ADType.
  • Add using OrdinaryDiffEqRosenbrock to odesolve.jl (provides Rodas5).
  • Add using RecursiveArrayToolsShorthandConstructors to odesolve.jl and downstream_events.jl (needed for AP[...]).
  • SciMLBase.successful_retcode(sol) → unqualified successful_retcode(sol). SciMLBase is not a bare binding via using OrdinaryDiffEq, but successful_retcode and AutoFiniteDiff are — so we avoid adding SciMLBase/ADTypes as direct deps, which would unresolvably conflict with RAT 4.3's transitive SciMLBase 3 requirement.

After (this branch)

Test Summary: | Pass  Broken  Total     Time
ODE Solve     |    4       1      5  1m34.7s
Test Summary: | Total  Time
Events        |     0  2.4s
Test Summary:          | Broken  Total  Time
Measurements and Units |      1      1  4.2s
Test Summary: | Pass  Total  Time
TrackerExt    |    1      1  0.5s

Out of scope

  • test/downstream/symbol_indexing.jl (run in the SymbolicIndexingInterface group) still has many failures, almost certainly from MTK 11 / SymbolicIndexingInterface API changes around symbolic-array indexing. Worth its own investigation — not gating this PR.
  • test/downstream/adjoints.jl remains commented out in runtests.jl per the pre-existing # TODO: re-enable after SciMLBase compat bump for RAT v4 note.

Test plan

  • Resolution succeeds on Julia 1.11 (Pkg.activate + Pkg.develop + Pkg.instantiate for test/downstream)
  • ODE Solve Tests safetestset passes locally (4 pass, 1 pre-existing broken)
  • Event Tests with ArrayPartition safetestset runs without error
  • Measurements and Units safetestset passes (1 pre-existing broken)
  • TrackerExt safetestset passes (1 pass)
  • CI on SciML/RecursiveArrayTools.jl Tests - Downstream - Julia 1/lts/pre

RecursiveArrayTools 4.x is incompatible with all OrdinaryDiffEq 6.x
versions reachable under the current dep graph: Adapt 4 narrows
OrdinaryDiffEq to 6.64.0 - 6.111.0, and OrdinaryDiffEq 6.110+ pins
RecursiveArrayTools to 3.52.0 - 3, leaving an empty intersection. The
only working path is OrdinaryDiffEq 7, which in turn requires MTK 10+,
so bump both compat entries.

This unblocks `activate_downstream_env` (which fails at Pkg.develop on
master). Downstream test sources have separate, follow-on issues that
the resolver previously masked (OrdinaryDiffEq 7 `autodiff::Bool`
deprecation, `Rodas5`/`SciMLBase` no longer reexported from
OrdinaryDiffEq, MTK 11 `getindex` behavior in symbol_indexing.jl,
missing `using RecursiveArrayToolsShorthandConstructors` for `AP[...]`).
Those are out of scope here.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review May 17, 2026 23:26
@ChrisRackauckas ChrisRackauckas merged commit d1009ac into SciML:master May 17, 2026
32 of 37 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