Fix v7 CI: eachindex(sol.u) in dense_tests; path-source DiffEqDevTools in DelayDiffEq#3446
Merged
ChrisRackauckas merged 1 commit intoSciML:v7from Apr 16, 2026
Conversation
…ools in DelayDiffEq
- test/regression/ode_dense_tests.jl
Under RecursiveArrayTools v4 `eachindex(sol2)` returns the
CartesianIndices over the full solution tensor (u_dims..., nsteps),
not the 1:nsteps range it returned under v3. `sol2.u[i]` /
`interpolation_results_2d[i]` then tried a 3-index lookup into
`Vector{Matrix{Float64}}` and threw `BoundsError [i, j, k]`. Iterate
`eachindex(sol2.u)` instead to drive the per-timestep comparison the
test actually means. Fixes the Dense Tests errors in Regression_I on
1/1.11/pre.
- lib/DelayDiffEq/Project.toml
Add `DiffEqDevTools = {path = "../DiffEqDevTools"}` to `[sources]`.
DelayDiffEq's test target pulls in path-sourced StochasticDiffEqLowOrder
which now pins RecursiveArrayTools v4 (via the v7 SciMLBase/RAT bump).
All currently-registered DiffEqDevTools versions restrict RAT to < 4, so
the env fails to resolve with ``Unsatisfiable requirements detected for
package DiffEqDevTools [f3b72e0c]: restricted by compatibility
requirements with RecursiveArrayTools to versions: uninstalled``. The
local lib/DiffEqDevTools already declares RAT 4 and SciMLBase 3, so
path-sourcing it unblocks the resolve on all four DelayDiffEq test
groups (Integrators / Interface / QA / Regression).
Scope intentionally narrow: other sublibraries that list DiffEqDevTools
in [extras] without [sources] still pass CI because their test envs
don't pull in a path package that forces RAT 4; they can be migrated
later as the registered SciMLBase-v3 DiffEqDevTools lands.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4c6868a to
29cd4e2
Compare
ChrisRackauckas
added a commit
that referenced
this pull request
Apr 16, 2026
…ools in DelayDiffEq (#3446) - test/regression/ode_dense_tests.jl Under RecursiveArrayTools v4 `eachindex(sol2)` returns the CartesianIndices over the full solution tensor (u_dims..., nsteps), not the 1:nsteps range it returned under v3. `sol2.u[i]` / `interpolation_results_2d[i]` then tried a 3-index lookup into `Vector{Matrix{Float64}}` and threw `BoundsError [i, j, k]`. Iterate `eachindex(sol2.u)` instead to drive the per-timestep comparison the test actually means. Fixes the Dense Tests errors in Regression_I on 1/1.11/pre. - lib/DelayDiffEq/Project.toml Add `DiffEqDevTools = {path = "../DiffEqDevTools"}` to `[sources]`. DelayDiffEq's test target pulls in path-sourced StochasticDiffEqLowOrder which now pins RecursiveArrayTools v4 (via the v7 SciMLBase/RAT bump). All currently-registered DiffEqDevTools versions restrict RAT to < 4, so the env fails to resolve with ``Unsatisfiable requirements detected for package DiffEqDevTools [f3b72e0c]: restricted by compatibility requirements with RecursiveArrayTools to versions: uninstalled``. The local lib/DiffEqDevTools already declares RAT 4 and SciMLBase 3, so path-sourcing it unblocks the resolve on all four DelayDiffEq test groups (Integrators / Interface / QA / Regression). Scope intentionally narrow: other sublibraries that list DiffEqDevTools in [extras] without [sources] still pass CI because their test envs don't pull in a path package that forces RAT 4; they can be migrated later as the registered SciMLBase-v3 DiffEqDevTools lands. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas
added a commit
that referenced
this pull request
Apr 16, 2026
…ools in DelayDiffEq (#3446) - test/regression/ode_dense_tests.jl Under RecursiveArrayTools v4 `eachindex(sol2)` returns the CartesianIndices over the full solution tensor (u_dims..., nsteps), not the 1:nsteps range it returned under v3. `sol2.u[i]` / `interpolation_results_2d[i]` then tried a 3-index lookup into `Vector{Matrix{Float64}}` and threw `BoundsError [i, j, k]`. Iterate `eachindex(sol2.u)` instead to drive the per-timestep comparison the test actually means. Fixes the Dense Tests errors in Regression_I on 1/1.11/pre. - lib/DelayDiffEq/Project.toml Add `DiffEqDevTools = {path = "../DiffEqDevTools"}` to `[sources]`. DelayDiffEq's test target pulls in path-sourced StochasticDiffEqLowOrder which now pins RecursiveArrayTools v4 (via the v7 SciMLBase/RAT bump). All currently-registered DiffEqDevTools versions restrict RAT to < 4, so the env fails to resolve with ``Unsatisfiable requirements detected for package DiffEqDevTools [f3b72e0c]: restricted by compatibility requirements with RecursiveArrayTools to versions: uninstalled``. The local lib/DiffEqDevTools already declares RAT 4 and SciMLBase 3, so path-sourcing it unblocks the resolve on all four DelayDiffEq test groups (Integrators / Interface / QA / Regression). Scope intentionally narrow: other sublibraries that list DiffEqDevTools in [extras] without [sources] still pass CI because their test envs don't pull in a path package that forces RAT 4; they can be migrated later as the registered SciMLBase-v3 DiffEqDevTools lands. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas
added a commit
that referenced
this pull request
Apr 16, 2026
…ools in DelayDiffEq (#3446) - test/regression/ode_dense_tests.jl Under RecursiveArrayTools v4 `eachindex(sol2)` returns the CartesianIndices over the full solution tensor (u_dims..., nsteps), not the 1:nsteps range it returned under v3. `sol2.u[i]` / `interpolation_results_2d[i]` then tried a 3-index lookup into `Vector{Matrix{Float64}}` and threw `BoundsError [i, j, k]`. Iterate `eachindex(sol2.u)` instead to drive the per-timestep comparison the test actually means. Fixes the Dense Tests errors in Regression_I on 1/1.11/pre. - lib/DelayDiffEq/Project.toml Add `DiffEqDevTools = {path = "../DiffEqDevTools"}` to `[sources]`. DelayDiffEq's test target pulls in path-sourced StochasticDiffEqLowOrder which now pins RecursiveArrayTools v4 (via the v7 SciMLBase/RAT bump). All currently-registered DiffEqDevTools versions restrict RAT to < 4, so the env fails to resolve with ``Unsatisfiable requirements detected for package DiffEqDevTools [f3b72e0c]: restricted by compatibility requirements with RecursiveArrayTools to versions: uninstalled``. The local lib/DiffEqDevTools already declares RAT 4 and SciMLBase 3, so path-sourcing it unblocks the resolve on all four DelayDiffEq test groups (Integrators / Interface / QA / Regression). Scope intentionally narrow: other sublibraries that list DiffEqDevTools in [extras] without [sources] still pass CI because their test envs don't pull in a path package that forces RAT 4; they can be migrated later as the registered SciMLBase-v3 DiffEqDevTools lands. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas-Claude
pushed a commit
to ChrisRackauckas-Claude/OrdinaryDiffEq.jl
that referenced
this pull request
Apr 16, 2026
- test/regression/ode_dense_tests.jl line 69: second `eachindex(sol2)` instance (1D linear problem loop) that was missed by SciML#3446. Same RAT v4 issue — `eachindex(sol)` now returns CartesianIndices, use `eachindex(sol2.u)` for the per-timestep iteration. - lib/OrdinaryDiffEqStabilizedRK/src/rkc_perform_step.jl lines 1191 and 1323: `integrator.EEst = ...` throws `FieldError` since SciML#3422 moved EEst from the integrator struct to the controller cache. Replace with `OrdinaryDiffEqCore.set_EEst!(integrator, ...)` matching every other sublibrary. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas
added a commit
that referenced
this pull request
Apr 16, 2026
…3457) - test/regression/ode_dense_tests.jl line 69: second `eachindex(sol2)` instance (1D linear problem loop) that was missed by #3446. Same RAT v4 issue — `eachindex(sol)` now returns CartesianIndices, use `eachindex(sol2.u)` for the per-timestep iteration. - lib/OrdinaryDiffEqStabilizedRK/src/rkc_perform_step.jl lines 1191 and 1323: `integrator.EEst = ...` throws `FieldError` since #3422 moved EEst from the integrator struct to the controller cache. Replace with `OrdinaryDiffEqCore.set_EEst!(integrator, ...)` matching every other sublibrary. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two real (non-runner-flake) v7 failures on
329b3cec36.test/regression/ode_dense_tests.jl(fixes Regression_I 1 / 1.11 / pre)Under RecursiveArrayTools v4
eachindex(sol2)returnsCartesianIndicesover the full solution tensor(u_dims..., nsteps), not1:nstepsas it did under v3. The follow-upsol2.u[i]/interpolation_results_2d[i]then tries a 3-index lookup intoVector{Matrix{Float64}}and throws:Iterate
eachindex(sol2.u)— that still givesBase.OneTo(nsteps), which is what the per-timestep test actually wants. Locally reproduced on v7 HEAD with RAT v4:lib/DelayDiffEq/Project.toml(fixes DelayDiffEq_{Integrators,Interface,QA,Regression} on 1 / 1.11 / pre)The DelayDiffEq test target develops
StochasticDiffEqLowOrderfrom path, which now pinsRecursiveArrayTools = "4". Every registeredDiffEqDevToolsversion declaresRecursiveArrayTools < 4, so Pkg errors with:Add
DiffEqDevTools = {path = "../DiffEqDevTools"}tolib/DelayDiffEq/Project.toml's[sources]. The in-repolib/DiffEqDevToolsalready declaresRecursiveArrayTools = "4"andSciMLBase = "3", so path-sourcing unblocks the resolve.Scope intentionally narrow: 38 other sublibraries list
DiffEqDevToolsin[extras]without a path source and are still passing CI because their test envs don't pull in a path package that forces RAT v4. Those can migrate as needed when registered SciMLBase-v3 DiffEqDevTools lands.Out of scope / upstream-blocked on this v7 tip
test (DiffEqBase_Downstream{,2}),DiffEqBase_ModelingToolkit,DiffEqBase_Sundials—Unsatisfiableon MultiScaleArrays / ModelingToolkit / Sundials / OrdinaryDiffEq restricted by RAT v4; waiting on upstream bumps.benchmark (1/lts)— AirspeedVelocity-can't-resolve-unregistered-subpackages.test (AD, 1.11 / lts)— pre-existing Mooncake / DifferentiationInterface conflict.InterfaceIV, pre, and most of the scattered*, prefailures — self-hosted runner registry corruption (rm General: ENOTEMPTY, missingPackage.toml); retry clears.Test plan
🤖 Generated with Claude Code