From 5b172f30e93b1e4b55031a72606398b61b445ea9 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sun, 14 Jun 2026 06:51:25 -0400 Subject: [PATCH 1/2] Support DiffEqBase v7 / SciMLBase v3 breaking update DiffEqBase 7.5 (OrdinaryDiffEq v7 / DifferentialEquations v8) removes the deprecated DEProblem and DEAlgorithm aliases. Switch the abstract supertypes to AbstractDEProblem and AbstractDEAlgorithm, which are available across both the old (DiffEqBase 6.210, SciMLBase 2.153) and new (DiffEqBase 7.5, SciMLBase 3) compat bounds, and widen the DiffEqBase compat to 7.5. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- Project.toml | 2 +- src/DifferenceEquations.jl | 7 +++---- src/problems/state_space_problems.jl | 4 ++-- src/solve.jl | 5 +++-- test/Project.toml | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Project.toml b/Project.toml index 1e2aa10..2fd5319 100644 --- a/Project.toml +++ b/Project.toml @@ -19,7 +19,7 @@ SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" [compat] CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" -DiffEqBase = "6.210.1" +DiffEqBase = "6.210.1, 7.5" LinearAlgebra = "1" PrecompileTools = "1.2.1" SciMLBase = "2.153, 3.18" diff --git a/src/DifferenceEquations.jl b/src/DifferenceEquations.jl index 8868f85..95cea87 100644 --- a/src/DifferenceEquations.jl +++ b/src/DifferenceEquations.jl @@ -2,12 +2,11 @@ module DifferenceEquations using CommonSolve: CommonSolve, solve, init, solve! using ConcreteStructs: @concrete -using DiffEqBase: DiffEqBase, DEProblem, get_concrete_u0, get_concrete_p, isconcreteu0, - promote_u0 +using DiffEqBase: DiffEqBase, get_concrete_u0, get_concrete_p, isconcreteu0, promote_u0 using LinearAlgebra: LinearAlgebra, Diagonal, NoPivot, Symmetric, cholesky, cholesky!, dot, ldiv!, mul!, transpose! -using SciMLBase: SciMLBase, @add_kwonly, NullParameters, promote_tspan, AbstractRODESolution, - ODEFunction, remake, ConstantInterpolation, build_solution, ReturnCode +using SciMLBase: SciMLBase, @add_kwonly, NullParameters, promote_tspan, AbstractDEProblem, + AbstractRODESolution, ODEFunction, remake, ConstantInterpolation, build_solution, ReturnCode using StaticArrays: StaticArrays, SVector, SMatrix, StaticMatrix, ismutable using SymbolicIndexingInterface: SymbolicIndexingInterface, SymbolCache, variable_index diff --git a/src/problems/state_space_problems.jl b/src/problems/state_space_problems.jl index ce20305..fd3b677 100644 --- a/src/problems/state_space_problems.jl +++ b/src/problems/state_space_problems.jl @@ -1,12 +1,12 @@ """ - AbstractStateSpaceProblem <: DEProblem + AbstractStateSpaceProblem <: AbstractDEProblem Abstract supertype for all discrete-time state-space problems in DifferenceEquations.jl. Subtypes include [`LinearStateSpaceProblem`](@ref), [`QuadraticStateSpaceProblem`](@ref), [`PrunedQuadraticStateSpaceProblem`](@ref), and [`StateSpaceProblem`](@ref). """ -abstract type AbstractStateSpaceProblem <: DEProblem end +abstract type AbstractStateSpaceProblem <: AbstractDEProblem end # TODO: Can add in more checks on the algorithm choice DiffEqBase.check_prob_alg_pairing(prob::AbstractStateSpaceProblem, alg) = nothing diff --git a/src/solve.jl b/src/solve.jl index d4a385f..d06263c 100644 --- a/src/solve.jl +++ b/src/solve.jl @@ -1,6 +1,7 @@ -using DiffEqBase: DEAlgorithm, KeywordArgSilent +using DiffEqBase: KeywordArgSilent +using SciMLBase: AbstractDEAlgorithm -abstract type AbstractDifferenceEquationAlgorithm <: DEAlgorithm end +abstract type AbstractDifferenceEquationAlgorithm <: AbstractDEAlgorithm end """ DirectIteration() diff --git a/test/Project.toml b/test/Project.toml index 7a1c403..20e18db 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -21,7 +21,7 @@ DifferenceEquations = {path = ".."} [compat] DataFrames = "1.8.2" DelimitedFiles = "1.9.1" -DiffEqBase = "6.210.1" +DiffEqBase = "6.210.1, 7.5" DifferenceEquations = "1.0.0" Distributions = "0.25.126" Enzyme = "0.13" From 26b14e1b6bb4a5502be0a196435fd3ed1f6479b1 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sun, 14 Jun 2026 07:39:09 -0400 Subject: [PATCH 2/2] Bump Enzyme/EnzymeTestUtils test floors for Downgrade CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Downgrade CI pins every dependency to its compat lower bound. With DiffEqBase pinned to its floor 6.210.1, the old Enzyme floor 0.13.0 is unsatisfiable: DiffEqBase 6.210.1 requires Enzyme >= 0.13.100 (via its DiffEqBaseEnzymeExt compat). Additionally, EnzymeTestUtils 0.2.0 is runtime -incompatible with Enzyme 0.13.100 — it calls guaranteed_const_nongen(T, nothing) where the newer Enzyme expects a world-age UInt64, erroring in the sensitivity_interface test. EnzymeTestUtils 0.2.4 (the version that raised its own Enzyme floor to 0.13.78) fixes this. Verified locally on Julia 1.10 with all deps pinned to their floors (DiffEqBase 6.210.1, SciMLBase 2.153.0, Enzyme 0.13.100, EnzymeTestUtils 0.2.4): full GROUP=Core suite passes (147 testsets). Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- test/Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Project.toml b/test/Project.toml index 20e18db..e331aab 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -24,8 +24,8 @@ DelimitedFiles = "1.9.1" DiffEqBase = "6.210.1, 7.5" DifferenceEquations = "1.0.0" Distributions = "0.25.126" -Enzyme = "0.13" -EnzymeTestUtils = "0.2" +Enzyme = "0.13.100" +EnzymeTestUtils = "0.2.4" FiniteDifferences = "0.12.34" ForwardDiff = "1.4.0" Plots = "1.41.6"