Fix master CI: replace removed ODEFunction syms kwarg with SymbolCache via sys#167
Merged
ChrisRackauckas merged 2 commits intoMay 10, 2026
Merged
Conversation
The `syms` keyword was removed from `ODEFunction` in newer SciMLBase
versions, causing `DifferenceEquations` itself to fail to precompile
on master with `MethodError: no method matching ODEFunction{false,
AutoSpecialize}(...; syms=...)`. SymbolicIndexingInterface's
`SymbolCache` is now the supported way to attach state symbol names
and is consumed via the `sys` keyword.
Translate `syms = ...` (still accepted on `LinearStateSpaceProblem`/
`QuadraticStateSpaceProblem` for backwards compatibility) into
`sys = SymbolCache(collect(syms))` when constructing the placeholder
`ODEFunction`. Add `SymbolicIndexingInterface` as an explicit
dependency.
Verified `DataFrame(sol)` still produces `[:timestamp, :a, :b]`
column names as expected by `test/sciml_interfaces.jl`.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
The new SymbolicIndexingInterface 0.3 dependency added in this PR is incompatible with the DiffEqBase v6 / RecursiveArrayTools v2 stack the docs project was pinned to (RAT v2 only allows SII 0.1-0.2.2). Widen docs DiffEqBase compat to "6.145, 7" so it matches the main package. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.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.
Please ignore until reviewed by @ChrisRackauckas.
Problem
masteris red becauseDifferenceEquationsitself fails to precompile:(failing run: 25613839863)
The
symskeyword onODEFunctionwas removed in newer SciMLBase versions; symbol metadata now flows through aSymbolCacheattached via thesyskeyword (powered by SymbolicIndexingInterface).LinearStateSpaceProblemandQuadraticStateSpaceProblemwere still constructing their placeholderODEFunctionwithsyms = syms, which fails as soon as the deps resolve to a SymbolicIndexingInterface-era SciMLBase.Fix
LinearStateSpaceProblem/QuadraticStateSpaceProblem, keep the user-facingsyms = ...keyword for backwards compatibility, but translate tosys = syms === nothing ? nothing : SymbolCache(collect(syms))when constructing the placeholderODEFunction.SymbolicIndexingInterfaceas an explicit dep withcompat = "0.3"and importSymbolCacheexplicitly (soExplicitImportschecks still pass).Verification
Pkg.precompile()now succeeds on Julia 1.10 and 1.12.test/sciml_interfaces.jlstill produces the expected column names::plotting given noisetestset (also fromsciml_interfaces.jl) now runs and passes.Other downstream test failures observed locally (
MethodError: no method matching size(::ZeroTangent)inRecursiveArrayToolsZygoteExt, ensemble plottingBoundsError) are independent issues unmasked by precompilation working again — they'll be addressed in follow-up PRs to keep this one focused on unbreaking master.Test plan
🤖 Generated with Claude Code