Skip to content

Widen DiffEqBase/SciMLBase/RecursiveArrayTools compat to admit v7/v3/v4 - #475

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:bump-compat-diffeqbase-v7
Apr 23, 2026
Merged

Widen DiffEqBase/SciMLBase/RecursiveArrayTools compat to admit v7/v3/v4#475
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:bump-compat-diffeqbase-v7

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Summary

The SciML ODE stack just shipped a coordinated breaking release: OrdinaryDiffEq.jl v7, DiffEqBase v7 (which requires SciMLBase v3), SciMLBase v3, and RecursiveArrayTools v4. BoundaryValueDiffEq's [compat] currently caps all three at the older majors, so any downstream project that depends on both BVDE and OrdinaryDiffEq v7 fails to resolve. Concretely, this was hit by the OrdinaryDiffEq monorepo's DiffEqDevTools test env — BVDE 5.21.0's DiffEqBase "6.183" pin blocks the DiffEqDevTools test env from resolving.

This widens the per-package [compat] entries to admit the new majors (union style so existing consumers are not broken):

  • DiffEqBase: "6.183""6.183, 7" (top-level), "6.213""6.213, 7" (Core)
  • SciMLBase: "2.152.1""2.152.1, 3"
  • RecursiveArrayTools: "3.27.0" / "3.31.2""..., 4"

Bumps the affected package versions (BoundaryValueDiffEq 5.21.0→5.22.0, Core 2.2.0→2.3.0, Ascher/MIRKN 1.12.0→1.13.0, MIRK/FIRK 1.13.1→1.14.0, Shooting 1.13.0→1.14.0).

No source changes: qualified uses like SciMLBase.DEStats still resolve under v3. If CI surfaces v3/v4-specific issues they will need individual attention, but the compat widening alone unblocks the resolver.

Test plan

  • Package tests pass on the old stack (SciMLBase 2.x / DiffEqBase 6.x / RAT 3.x)
  • Package tests pass on the new stack (SciMLBase 3.x / DiffEqBase 7.x / RAT 4.x)
  • Downstream OrdinaryDiffEq.jl DiffEqDevTools test env resolves once this is registered

🤖 Generated with Claude Code

The SciML ODE stack just shipped a coordinated breaking release:
OrdinaryDiffEq.jl v7, DiffEqBase v7 (requires SciMLBase v3), SciMLBase v3,
RecursiveArrayTools v4. BoundaryValueDiffEq's current `[compat]` caps all
three at the older majors, which prevents any downstream project that
depends on both BVDE and OrdinaryDiffEq v7 from resolving.

Widens top-level and per-sublibrary (Ascher, Core, FIRK, MIRK, MIRKN,
Shooting) `[compat]` entries:
  - DiffEqBase: "6.183"   → "6.183, 7"   (top-level)
                "6.213"   → "6.213, 7"   (Core)
  - SciMLBase:  "2.152.1" → "2.152.1, 3"
  - RecursiveArrayTools: "3.27.0"/"3.31.2" → "..., 4"

Bumps the affected package versions. No source changes here; qualified
uses (`SciMLBase.DEStats`, etc.) still resolve under v3.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Click to check benchmark results
master eb49c07... master / eb49c07...
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK2() 0.507 ± 0.0083 s 0.509 ± 0.0031 s 0.997 ± 0.017
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK3() 10.5 ± 0.8 ms 10.5 ± 0.71 ms 1 ± 0.1
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK4() 2.24 ± 0.38 ms 2.29 ± 0.4 ms 0.979 ± 0.24
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK5() 2.74 ± 0.48 ms 2.75 ± 0.5 ms 0.994 ± 0.25
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK6() 1.31 ± 0.27 ms 1.31 ± 0.28 ms 0.997 ± 0.3
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = false) 1.49 ± 0.47 ms 1.53 ± 0.45 ms 0.973 ± 0.42
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = true) 3.06 ± 0.84 ms 3.15 ± 0.81 ms 0.971 ± 0.36
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = false) 0.0412 ± 0.011 s 0.0372 ± 0.0043 s 1.11 ± 0.33
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.0556 ± 0.0098 s 0.0569 ± 0.011 s 0.977 ± 0.25
Simple Pendulum/IIP/Shooting(Tsit5()) 0.216 ± 0.063 ms 0.218 ± 0.069 ms 0.991 ± 0.42
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK2() 0.638 ± 0.022 s 0.665 ± 0.017 s 0.958 ± 0.041
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK3() 13.6 ± 6.1 ms 13.8 ± 7 ms 0.984 ± 0.67
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK4() 2.75 ± 0.22 ms 2.79 ± 0.24 ms 0.986 ± 0.12
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK5() 3.37 ± 0.27 ms 3.4 ± 0.31 ms 0.991 ± 0.12
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK6() 1.6 ± 0.29 ms 1.6 ± 0.32 ms 0.999 ± 0.27
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = false) 3.4 ± 2.5 ms 3.37 ± 2.6 ms 1.01 ± 1.1
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = true) 6.45 ± 4.9 ms 6.46 ± 4.8 ms 1 ± 1.1
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = false) 0.0875 ± 0.004 s 0.0925 ± 0.0047 s 0.946 ± 0.065
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.134 ± 0.0086 s 0.142 ± 0.01 s 0.938 ± 0.091
Simple Pendulum/OOP/Shooting(Tsit5()) 0.524 ± 0.056 ms 0.527 ± 0.14 ms 0.995 ± 0.28
time_to_load 6.58 ± 0.086 s 6.82 ± 0.11 s 0.965 ± 0.02
### Benchmark Plots A plot of the benchmark results has been uploaded as an artifact to the workflow run for this PR. Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).

@ChrisRackauckas
ChrisRackauckas merged commit 7151a28 into SciML:master Apr 23, 2026
19 of 24 checks passed
ErikQQY pushed a commit to SebastianM-C/BoundaryValueDiffEq.jl that referenced this pull request Apr 24, 2026
5.20.0 was the last registered top-level version; 5.21.0 was set in
Project.toml in a prior PR but never registered on General. SciML#475 then
bumped straight to 5.22.0, which AutoMerge rejected for skipping
5.21.0. Register the intermediate version first so the next compat
bump can register cleanly as 5.22.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.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