Skip to content

Bump compat for OrdinaryDiffEq v7 / SciMLBase v3 ecosystem#43

Open
ChrisRackauckas-Claude wants to merge 3 commits into
SciML:mainfrom
ChrisRackauckas-Claude:bump-ordinarydiffeq-v7-ecosystem
Open

Bump compat for OrdinaryDiffEq v7 / SciMLBase v3 ecosystem#43
ChrisRackauckas-Claude wants to merge 3 commits into
SciML:mainfrom
ChrisRackauckas-Claude:bump-ordinarydiffeq-v7-ecosystem

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

Summary

This PR bumps the compat bounds in Project.toml to allow use of the OrdinaryDiffEq v7 / SciMLBase v3 ecosystem introduced in SciML/OrdinaryDiffEq.jl#3562 and SciML/OrdinaryDiffEq.jl#3565.

Changes to [compat]

Package Old New Reason
DiffEqBase "6" "6, 7" DiffEqBase v7 ships as a sublibrary inside the OrdinaryDiffEq v7 monorepo
OrdinaryDiffEq (missing) "6, 7" Was present in [extras]/[targets] but lacked an explicit compat bound
Catalyst "15" "14, 15, 16" Catalyst v16 is current; broadening the range
SteadyStateDiffEq (missing) "1, 2" Was a test dependency without a compat bound
Sundials (missing) "4, 5, 6" Was a test dependency without a compat bound

No source code changes needed

The codebase only uses stable DiffEqBase APIs (ODEProblem, SteadyStateProblem, ODEFunction, NullParameters) that are unchanged in v7. The tests already use the forward-compatible sol.u[i] indexing (not sol[i]) required by RecursiveArrayTools v4.

References

🤖 Generated with Claude Code

- DiffEqBase: "6" → "6, 7" (DiffEqBase v7 ships as sublibrary in OrdinaryDiffEq v7 monorepo)
- OrdinaryDiffEq: add compat "6, 7" (was in [extras]/[targets] but lacked explicit compat bound)
- Catalyst: "15" → "14, 15, 16" (allow v16 which is current)
- SteadyStateDiffEq: add compat "1, 2" (was in test deps without compat bound)
- Sundials: add compat "4, 5, 6" (was in test deps without compat bound)

No source code changes needed: the codebase uses only DiffEqBase APIs
(ODEProblem, SteadyStateProblem, ODEFunction, NullParameters) that are
unchanged in v7, and tests already use the forward-compatible sol.u[i]
indexing (not sol[i]) required by RecursiveArrayTools v4.

Refs: SciML/OrdinaryDiffEq.jl#3562, SciML/OrdinaryDiffEq.jl#3565

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Catalyst v16 dropped the ModelingToolkit re-export in favor of
ModelingToolkitBase, which broke calls to ModelingToolkit.value,
ModelingToolkit.scalarize and ModelingToolkit.varmap_to_vars in
src/indexhandlers.jl and src/fspsystem.jl.

Migrating to Catalyst v16 is out of scope for this OrdinaryDiffEq v7
ecosystem bump; revert that compat change and leave Catalyst at "15".

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor Author

CI Status Update

runic / format-check: PASS
Tests (Core): FAIL — but the failure is pre-existing and unrelated to this PR.

The CI test failure is FieldError: type Base.MethodList has no field 'mt' triggered by MacroTools.prettify on Julia 1.12. This is a MacroTools v0.5.16 incompatibility with Julia 1.12.6 that the CI runner uses.

Verified the same failure occurred on:

  • PR Bump julia-actions/setup-julia from 2 to 3 #41 (dependabot/github_actions/julia-actions/setup-julia-3, 2026-04-20) — same FieldError: type Base.MethodList has no field 'mt' in MacroTools.prettify from build_rhs.jl:107
  • Last successful main "Run Tests" was 2025-07-31, so the test suite has been red on main since then
  • No source changes in this PR touch build_rhs.jl or anything related to MacroTools

This PR only changes Project.toml compat bounds; no source-level changes are introduced. Resolution succeeds (verified by the test job successfully precompiling and getting to the test phase before the unrelated MethodList.mt error).

Fixing the pre-existing MacroTools/Julia 1.12 issue is out of scope for an OrdinaryDiffEq v7 ecosystem compat bump.

🤖 Generated with Claude Code

Julia 1.12 removed the `mt` field from `Base.MethodList`, breaking
`MacroTools.prettify`'s `unresolve` step (FluxML/MacroTools.jl#216).
The fix on MacroTools master is unreleased, so define a local
`_prettify` that mirrors `MacroTools.prettify` but uses `nameof(f)`
on Julia 1.12+ instead of `methods(f).mt.name`. Use it in place of
`MacroTools.prettify` in `build_rhs_ex` and `build_rhs_ex_ss`.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants