import ODESolution from SciMLBase instead of OrdinaryDiffEqCore - #219
Open
ChrisRackauckas-Claude wants to merge 1 commit into
Open
Conversation
OrdinaryDiffEqCore v4.14.0 drops `@reexport using SciMLBase`, so `ODESolution` is no longer reachable through OrdinaryDiffEqCore. It is owned and exported by SciMLBase, which is already a direct dependency. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
JoshuaLampert
requested changes
Aug 10, 2026
JoshuaLampert
left a comment
Member
There was a problem hiding this comment.
Thanks! Generally, this LGTM, but there is an error in the docs that looks unrelated to this PR , but you probably know best, where this comes from, @ChrisRackauckas. Could you take a look, please?
Contributor
|
Oh that's a known regression in the error printing, we're getting to that very soon CC @Shreyas-Ekanathan |
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.
Heads-up about an upstream change plus a fix — no action needed on your released version.
What will break
OrdinaryDiffEqCoreon SciML master (v4.14.0, not yet registered) removed its blanket@reexport using SciMLBasein SciML/OrdinaryDiffEq.jl#4119. That dropped 152 names fromOrdinaryDiffEqCore's namespace without a major version bump, andODESolutionis one of them.PositiveIntegratorsreachesODESolutionthroughOrdinaryDiffEqCore, and the compat entryOrdinaryDiffEqCore = "4.2"admits 4.14.0, sousing PositiveIntegratorsfails once that version is registered:The released v0.2.18 is covered separately by a retroactive registry cap (JuliaRegistries/General#163935), so existing users are protected either way and there is no time pressure here. This PR is just so a future release keeps working.
What this changes
ODESolutionis owned and exported bySciMLBase, which is already a direct dependency. The import moves there; nothing else changes.No
Project.tomlchange is needed:SciMLBaseis already in[deps], and the existing floor is enough — onSciMLBasev3.7.0,Base.ispublic(SciMLBase, :ODESolution)istrue.ODESolutionis the only affected name. I checked every name the package pulls fromOrdinaryDiffEqCoreagainst v4.14.0; all the others (OrdinaryDiffEqAlgorithm,OrdinaryDiffEqAdaptiveAlgorithm,OrdinaryDiffEqConstantCache,OrdinaryDiffEqMutableCache,_vec,alg_order,isfsal,calculate_residuals,calculate_residuals!,alg_cache,get_tmp_cache,initialize!,perform_step!,_ode_interpolant,_ode_interpolant!,get_fsalfirstlast,set_EEst!, andstep!used in the tests) are still defined there.Verification
Julia 1.12.6, this branch.
1. Current registered
OrdinaryDiffEqCorev4.13.0 — full test suite passes2.
OrdinaryDiffEqCorev4.14.0 (SciML master) — loads, and full test suite passes3. Without this change, against v4.14.0 — the load error quoted above.
What I did not verify
For run (2) I had to
devthe master versions ofOrdinaryDiffEqLowOrderRK,OrdinaryDiffEqTsit5andOrdinaryDiffEqVerneralongsideOrdinaryDiffEqCore. That is not about this package: the registeredOrdinaryDiffEqLowOrderRKv2.2.2 is itself broken againstOrdinaryDiffEqCorev4.14.0 (invalid method definition in OrdinaryDiffEqLowOrderRK: exported function OrdinaryDiffEqCore.u_cache does not exist), so the test environment could not even precompile. That is SciML/OrdinaryDiffEq.jl#4175 and is being fixed on the SciML side.OrdinaryDiffEqRosenbrockandOrdinaryDiffEqSDIRKat their registered versions were fine against 4.14.0.I could not test against a fully released ecosystem at
OrdinaryDiffEqCore4.14.0 because that version is not registered yet. I also did not build the docs.JuliaFormatterv1.0.60 with your.JuliaFormatter.tomlreports no changes.Links