Bump compat for OrdinaryDiffEq v7 / SciMLBase v3 ecosystem#87
Bump compat for OrdinaryDiffEq v7 / SciMLBase v3 ecosystem#87ChrisRackauckas-Claude wants to merge 2 commits intoSciML:mainfrom
Conversation
- SciMLBase: "1.8.3, 2" → "1.8.3, 2, 3" (SciMLBase v3 released)
- OrdinaryDiffEqTsit5: added "1, 2" compat entry (v2 requires SciMLBase v3)
- Catalyst: "15" → "15, 16"
- ModelingToolkit: "9" → "9, 10, 11"
- SymbolicUtils: "3" → "3, 4"
- Symbolics: "6" → "6, 7"
- Fix RecursiveArrayTools v4 breaking changes in src/utils.jl:
- length(sol.u[1]) → length(sol.u[1].u) for EnsembleSolution
(AbstractVectorOfArray now <: AbstractArray, length returns total elements)
- sol[t_pt] → sol.u[t_pt] for ODESolution timestep indexing in get_moments_FSP
Refs SciML/OrdinaryDiffEq.jl#3562, SciML/OrdinaryDiffEq.jl#3565
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Changes overview
RecursiveArrayTools v4 (ships with SciMLBase v3) makes
Note: the |
CI showed that bumping ModelingToolkit to v10/v11 breaks the source code: - get_noiseeqs was renamed to get_noise_eqs in MTK v10+ - SDESystem semantics changed in MTK v11 These require migration work that is out of scope for an OrdinaryDiffEq v7 / SciMLBase v3 ecosystem compat bump. Catalyst v15 transitively constrains ModelingToolkit to v9 and SymbolicUtils/Symbolics to v3/v6, so leaving the bounds at "9", "3", "6" matches what the dependency graph already enforces. The remaining changes (SciMLBase v3 allowed, OrdinaryDiffEqTsit5 v2 in extras for the SciMLBase-v3 build, and the RecursiveArrayTools v4 sol.u indexing migration in src/utils.jl) are kept. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Iteration update: The first CI cycle revealed that bumping The remaining changes — The Documentation build is now passing. |
|
CI status (cycle 2):
The Julia 1 failure is in This is an upstream incompatibility between JumpProcesses' OrdinaryDiffEqCore extension and a newer OrdinaryDiffEqCore that no longer exports |
Summary
Bumps compat bounds to support the OrdinaryDiffEq v7 / SciMLBase v3 ecosystem (refs SciML/OrdinaryDiffEq.jl#3562 and SciML/OrdinaryDiffEq.jl#3565, see NEWS.md).
Compat changes (
Project.toml)SciMLBase"1.8.3, 2""1.8.3, 2, 3"OrdinaryDiffEqTsit5"1, 2"Catalyst"15""15, 16"ModelingToolkit"9""9, 10, 11"SymbolicUtils"3""3, 4"Symbolics"6""6, 7"Source migration (
src/utils.jl)RecursiveArrayTools v4 (bundled with SciMLBase v3) makes
AbstractVectorOfArray <: AbstractArray, changinglengthand[]indexing semantics:length(sol.u[1])→length(sol.u[1].u)inget_raw_moments,get_central_moments,get_cumulants—lengthof anODESolutionnow returns total elements (n_vars * n_timesteps), not number of timesteps.sol[t_pt]→sol.u[t_pt]inget_moments_FSP— integer indexing into anODESolutionnow returns a scalar element, not the t_pt-th timestep.Both fixes use the
sol.u[i]form that works on both RAT v3 and v4 (documented in NEWS.md as the forward-compatible migration path).Test plan
sample_moment_tests.jlexercisesget_raw_moments,get_central_moments,get_cumulantsfsp_tests.jlexercisesget_moments_FSP🤖 Generated with Claude Code