Skip to content

Update DiffEqBase requirement from 6 to 6, 7.0 in the all-julia-packages group across 1 directory#594

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/julia/all-julia-packages-e38786ef1e
Closed

Update DiffEqBase requirement from 6 to 6, 7.0 in the all-julia-packages group across 1 directory#594
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/julia/all-julia-packages-e38786ef1e

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Apr 23, 2026

Updates the requirements on DiffEqBase to permit the latest version.
Updates DiffEqBase to 7.0.0

Changelog

Sourced from DiffEqBase's changelog.

OrdinaryDiffEq.jl v7 Breaking Changes

This release bumps to SciMLBase v3, RecursiveArrayTools v4, and includes breaking changes across DiffEqBase, OrdinaryDiffEqCore, and all solver sublibraries.

Themes of the v7 release

Most of the breaking changes fall into a small set of recurring themes. Keep these in mind while reading the migration table — they explain why an individual change exists and often suggest the right migration direction:

  • Time to first solve (TTFS) reduction. Direct deps on Static.jl, StaticArrayInterface.jl, Polyester.jl, and StaticArrays.jl were dropped; using OrdinaryDiffEq now loads only the default solver set; ODEFunction switched to AutoSpecialize. All of this means less code loaded and more precompilation caching on first solve.
  • Type stability everywhere. All Bool solver/solve keyword arguments (autodiff, verbose, alias, lazy, …) were replaced by typed objects. Passing a Bool no longer changes dispatch in ways the compiler cannot specialize on, and the reverse is no longer allowed to silently fall back through slow generic paths.
  • Generality beyond ForwardDiff. chunk_size, diff_type, standardtag, etc. encoded ForwardDiff-specific or FiniteDiff-specific knobs on every solver. They are replaced by the ADTypes interface (AutoForwardDiff, AutoFiniteDiff, AutoEnzyme, AutoZygote, …) so every solver automatically generalizes to any AD backend.
  • Controller is now an object, not a pile of solve kwargs. gamma, beta1, beta2, qmin, qmax, qsteady_min, qsteady_max, qoldinit were moved onto concrete PIController / PIDController / IController / PredictiveController structs, and EEst moved to the controller cache. This is prep work for pluggable controllers and removes a large amount of dead state from the integrator struct.
  • Cleanup of old re-exports / deprecations. Functions like has_destats (now has_stats), sol.destats (now sol.stats), DEAlgorithm/DEProblem/DESolution abstract types, tuples()/intervals(), QuadratureProblem, fastpow, concrete_solve, etc. were on a deprecation path for one or more minor releases. v7 removes them.

Recommended upgrade path

The cleanest path is not to jump straight from an old environment onto v7. Most renamed APIs (e.g. DEAlgorithmAbstractDEAlgorithm, u_modified!derivative_discontinuity!, has_destatshas_stats, sol.destatssol.stats, the construct* tableau functions, alias_u0/alias_du0, beta1/beta2, PID kwargs) already exist under their new names in SciMLBase v2 / OrdinaryDiffEq v6 with deprecation warnings. The recommended sequence is:

  1. Stay on SciMLBase v2 / OrdinaryDiffEq v6. Update your code to the new names (has_stats, sol.stats, AbstractDEAlgorithm, derivative_discontinuity!, ODEAliasSpecifier, ODEVerbosity, ADTypes-based autodiff, explicit controller = … objects, new tableau names) while the deprecation shims still exist.
  2. Verify your tests pass on v6 with no deprecation warnings.
  3. Then bump to v7. At this point your code should compile and run against v7 without further changes aside from the genuinely new breakage (RAT v4 array semantics, ensemble prob_func/output_func signature, struct type parameter removals, kwargs that truly no longer exist, default changes like CheckInit and williamson_condition=false).

Doing it in two steps keeps the diff small per step and lets the deprecation warnings on v6 point you at the exact call sites that will break on v7.

Fallback for RAT v4 indexing

If you cannot update sol[i] / length(sol) / eachindex(sol) call sites yet (see the RAT v4 table below), you can opt back into v3 semantics on a per-solution basis by converting the container type to the ragged variant:

using RecursiveArrayToolsRaggedArrays
sol_old = RaggedVectorOfArray(sol)   # indexes like v3: sol_old[i] is the i-th timestep

RecursiveArrayToolsRaggedArrays.jl preserves the previous AbstractVectorOfArray indexing behavior (timestep-first, not element-first). This is the escape hatch for code that assumes sol[i] returns the i-th timestep. It is, however, recommended that you update to the sol.u[i] / sol[:, i] style — the ragged wrapper is a compatibility layer, not the canonical API going forward.


RecursiveArrayTools v4

ODESolution is now an AbstractArray

AbstractVectorOfArray (the parent type of ODESolution, RODESolution, DAESolution, etc.) now subtypes AbstractArray. This changes the semantics of several common operations:

Operation v3 (old) v4 (new) Migration
sol[i] Returns i-th timestep (Vector) Returns i-th scalar element (column-major) Use sol.u[i] or sol[:, i]
length(sol) Number of timesteps prod(size(sol)) (total elements) Use length(sol.t) or length(sol.u)
eachindex(sol) 1:nsteps CartesianIndices(size(sol)) Use eachindex(sol.u)
iterate(sol) Iterates over timesteps Iterates over scalar elements Use for u in sol.u
first(sol) / last(sol) First/last timestep First/last scalar element Use first(sol.u) / last(sol.u)

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Updates the requirements on [DiffEqBase](https://github.com/SciML/OrdinaryDiffEq.jl) to permit the latest version.

Updates `DiffEqBase` to 7.0.0
- [Release notes](https://github.com/SciML/OrdinaryDiffEq.jl/releases)
- [Changelog](https://github.com/SciML/OrdinaryDiffEq.jl/blob/master/NEWS.md)
- [Commits](https://github.com/SciML/OrdinaryDiffEq.jl/commits)

---
updated-dependencies:
- dependency-name: DiffEqBase
  dependency-version: 7.0.0
  dependency-type: direct:production
  dependency-group: all-julia-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file julia Pull requests that update julia code labels Apr 23, 2026
ChrisRackauckas added a commit that referenced this pull request Apr 24, 2026
Replace removed `DiffEqBase.DESolution` type alias (dropped in
SciMLBase v3) with the concrete `SciMLBase.AbstractTimeseriesSolution`
supertype used by `ODESolution` and friends. Switch the successful-retcode
check to `SciMLBase.successful_retcode` directly now that the
`DiffEqBase.SciMLBase` re-export namespace is no longer guaranteed.

Fix a latent RecursiveArrayTools v4 breakage in the DataDrivenDMD
`linear_forced` test: `length(sol_cont)` previously returned the number
of timesteps, but under RAT v4 `AbstractVectorOfArray <: AbstractArray`
it returns `prod(size(sol))` (total elements). Switch to
`length(sol_cont.t)` which is the stable way to get the timestep count.

Widen `Project.toml` compats across the main package and every
`lib/*/Project.toml`:

  - `DiffEqBase = "6.211, 7"` (root)
  - `SciMLBase = "2.155, 3"` (root; new direct dep to access
    `AbstractTimeseriesSolution`)
  - `OrdinaryDiffEqTsit5 = "1, 2"` (test extra)
  - `OrdinaryDiffEq = "6, 7"` in DataDrivenDMD / DataDrivenSparse /
    DataDrivenLux test targets
  - Pin subpackage `DataDrivenDiffEq` compat to `"1.14"` so they pull in
    this release

Bumps:
  - DataDrivenDiffEq: 1.13.0 -> 1.14.0
  - DataDrivenDMD: 0.1.2 -> 0.1.3
  - DataDrivenSparse: 0.1.3 -> 0.1.4
  - DataDrivenSR: 0.1.3 -> 0.1.4
  - DataDrivenLux: 0.2.2 -> 0.2.3

Supersedes Dependabot PR #594, which only widened the `DiffEqBase`
compat without handling the code-level breaking changes.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github Apr 24, 2026

This pull request was built based on a group rule. Closing it will not ignore any of these versions in future pull requests.

To ignore these dependencies, configure ignore rules in dependabot.yml

@dependabot dependabot Bot deleted the dependabot/julia/all-julia-packages-e38786ef1e branch April 24, 2026 06:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file julia Pull requests that update julia code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants