Skip to content

Bump DiffEqBase compat to include v7#151

Merged
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:bump-diffeqbase-v7
Apr 22, 2026
Merged

Bump DiffEqBase compat to include v7#151
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:bump-diffeqbase-v7

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

Summary

Widen DiffEqBase = "6.144""6.144, 7" so ParameterizedFunctions resolves alongside lib/DiffEqBase 7.0.0 (shipping with OrdinaryDiffEq v7). Bumps 5.23.0 → 5.24.0.

SciMLBase = "2.15, 3.0" already covers v3. ModelingToolkit = "11" covers the MTK 11.22.0 compat-widened release in flight (SciML/ModelingToolkit.jl#4467).

Why this is source-level safe

src/ uses only DiffEqBase.AbstractParameterizedFunction from DiffEqBase; that symbol is still defined in lib/DiffEqBase v7 via the @static if isdefined(SciMLBase, :AbstractParameterizedFunction) delegation/fallback block.

Grepped src/ for every symbol removed in the v7 NEWS / SciMLBase v3 breaking notes: u_modified!, has_destats, .destats, concrete_solve, fastpow, RECOMPILE_BY_DEFAULT, DEStats, QuadratureProblem, tuples(), intervals(), standalone DEAlgorithm/DEProblem/DESolution — zero matches.

Scope

Not a direct blocker of OrdinaryDiffEq.jl#3488's own test matrix — ParameterizedFunctions is a test-only [extras] dep of DiffEqDevTools (not a runtime [deps]), so OrdinaryDiffEq tests don't pull it in. Included in the same compat-widening set as DiffEqCallbacks#303, DiffEqNoiseProcess#271, DiffEqProblemLibrary#182, JumpProcesses#580, ModelingToolkit#4467, StateSelection#71 so downstream users can install ParameterizedFunctions with the v7 stack once it's registered.

Co-Authored-By: Chris Rackauckas accounts@chrisrackauckas.com

Widen `DiffEqBase = "6.144"` → `"6.144, 7"` so ParameterizedFunctions
resolves alongside the v7 OrdinaryDiffEq stack (lib/DiffEqBase 7.0.0).
Version bump 5.23.0 → 5.24.0.

SciMLBase `"2.15, 3.0"` already covers v3. ModelingToolkit `"11"` covers
the MTK 11.22.0 compat-widened release in flight
(SciML/ModelingToolkit.jl#4467).

Source uses `DiffEqBase.AbstractParameterizedFunction` (still defined in
lib/DiffEqBase v7 under the `@static if isdefined(SciMLBase,
:AbstractParameterizedFunction)` delegation/fallback block) and nothing
else from DiffEqBase. None of the symbols removed in the v7 NEWS or
SciMLBase v3 breaking notes appear in `src/`: `u_modified!`,
`has_destats`, `.destats`, `concrete_solve`, `fastpow`,
`RECOMPILE_BY_DEFAULT`, `DEStats`, `QuadratureProblem`, `tuples()`,
`intervals()`, standalone `DEAlgorithm`/`DEProblem`/`DESolution`.

Not a direct blocker of OrdinaryDiffEq's own CI (ParameterizedFunctions
is a test-only dep of DiffEqDevTools, not a runtime dep) — included in
the same v7-compat-widening set as DiffEqCallbacks#303,
DiffEqNoiseProcess#271, DiffEqProblemLibrary#182, JumpProcesses#580,
ModelingToolkit#4467, StateSelection#71 so downstream users can install
ParameterizedFunctions together with the v7 stack.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas ChrisRackauckas merged commit e5303bc into SciML:master Apr 22, 2026
11 of 13 checks passed
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 22, 2026
The DiffEqDevTools test environment failed to resolve on PR #3502 because
registered versions of several test-only deps cap `DiffEqBase` at v6,
while the monorepo's `[sources]` pins `DiffEqBase` to the path-sourced v7.

Blockers and fixes in `lib/DiffEqDevTools/Project.toml`:

- `BoundaryValueDiffEq = "5"` — registered BVDE 5.20 caps `DiffEqBase = "6.183 - 6"`.
  There is no BVDE release that admits DiffEqBase v7 yet, so the BVDE +
  `BVProblemLibrary` deps are dropped from the test env, and the single
  BVP benchmark block in `test/benchmark_tests.jl` is disabled with a note.
- `StochasticDelayDiffEq = "1"` — registered SDDE caps `DiffEqBase` at 6 and
  the package is declared deprecated (see NEWS.md). Dropped; the sole SDDE
  test is migrated to use `DelayDiffEq` + `StochasticDiffEq` per the v7
  migration guide. The SDDE branch of `analyticless_convergence_tests.jl`
  is commented out pending a `DelayDiffEq` dispatch for
  `AbstractSDDEProblem + AbstractMethodOfStepsAlgorithm` (currently only
  `AbstractDDEProblem` is wired through `MethodOfSteps`).
- `DelayDiffEq`, `StochasticDiffEq` — registered versions cap `DiffEqBase`
  at 6; switched to path-sourced from `../DelayDiffEq` and `../StochasticDiffEq`.
- `StochasticDiffEqCore`, `StochasticDiffEqLowOrder`, …, `ImplicitDiscreteSolve`,
  `OrdinaryDiffEqCore`, `OrdinaryDiffEqNonlinearSolve` — these are transitive
  deps of the path-sourced `StochasticDiffEq`; a sublibrary's own `[sources]`
  does not cascade into a downstream test sandbox, so they are added to
  DiffEqDevTools' `[sources]` + `[extras]` + test target to keep them on
  the monorepo path.
- `ODEProblemLibrary = "0.1"` → `"1"`, `SDEProblemLibrary = "0.1"` → `"1"`,
  `OrdinaryDiffEq = "6, 7"` → `"7"` (the prior bumps from PR #3502, rolled
  into this PR so master also resolves).
- `ParameterizedFunctions` floored to `"5.24"` (first release admitting
  DiffEqBase v7 per SciML/ParameterizedFunctions.jl#151).
- `NonlinearSolve` floored to `"4.17.1"` (first release admitting
  SciMLBase v3).

Test files updated for the v7-era monorepo layout where `OrdinaryDiffEq`
no longer reexports every algorithm. `benchmark_tests.jl` now imports
`RK4`, `Euler`, `BS3`, `Midpoint`, `BS5`, `DP5`, `Tsit5`, `Vern{6,7,9}`,
`Rodas{4,5}`, `RosShamp4`, `RadauIIA5`, `DFBDF`, `NLFunctional` from
their specific OrdinaryDiffEq sublibraries. `prob_func` / `output_func`
signatures were updated from `(prob, i, repeat)` / `(sol, i)` to the new
`(prob, ctx)` / `(sol, ctx)` SciMLBase v3 shape. An
`EnsembleProblem`-based weak-convergence assertion is now `@test_broken`
pending investigation of `remake(prob, seed=…)` semantics under
SciMLBase v3.

Local `Pkg.test()` on Julia 1.11 now reaches the full test suite — the
resolve succeeds and the benchmark, ODE-appxtrue, convergence, stability
and plot-recipe groups run.

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