Bump ModelingToolkitTearing SciMLBase compat to include v3#71
Merged
ChrisRackauckas merged 1 commit intoJuliaComputing:mainfrom Apr 22, 2026
Merged
Conversation
Widen `SciMLBase = "2.108"` → `"2.108, 3"` in `lib/ModelingToolkitTearing/Project.toml` so MTKTearing can be installed alongside the SciMLBase v3 / DiffEqBase 7 stack shipping with OrdinaryDiffEq v7. Bumps 1.12.3 → 1.13.0. Source is already v3-compatible: the only SciMLBase symbols referenced are `SciMLBase.AbstractClock`, `SciMLBase.ContinuousClock`, `SciMLBase.PeriodicClock`, and `SciMLBase.LinearProblem`. All four exist unchanged in SciMLBase v3 (the v3 removals were in the DE-integrator interface — `u_modified!`, `DEAlgorithm`/`DEProblem`/`DESolution` standalone names, `sol.destats`, `concrete_solve`, `fastpow`, `RECOMPILE_BY_DEFAULT`, `DEStats`, `QuadratureProblem`, `tuples()`/`intervals()`, integer-indexing Zygote adjoints — none of which MTKTearing uses). Grepped the whole `lib/ModelingToolkitTearing/src/` clean for every removed symbol. StateSelection itself (the root package) has no SciMLBase or DiffEqBase dependency and is unchanged. Motivated by SciML/OrdinaryDiffEq.jl#3488 (v7 release branch). With lib/DiffEqBase v7.0.0 in the resolver environment (and the upstream compat bumps in DiffEqCallbacks#303, DiffEqNoiseProcess#271, DiffEqProblemLibrary#182, JumpProcesses#580, ModelingToolkit#4467 all applied), the resolver would otherwise fall through to: Unsatisfiable requirements detected for package ModelingToolkitTearing: └─restricted by compatibility requirements with SciMLBase to versions: uninstalled — no versions left Verified end-to-end on Julia 1.11: dev'd this branch's `lib/ModelingToolkitTearing` alongside `lib/DiffEqBase` v7 / the five upstream compat-widened branch versions / all OrdinaryDiffEq monorepo sublibs → resolves clean, MTK+MTKBase+MTKTearing precompile cleanly, `@mtkcompile sys = System([D(x) ~ -k*x], t)` builds, and `solve(ODEProblem(sys, …), Tsit5())` returns a value that matches the analytical `exp(-k*t)` to 3e-7. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
3 tasks
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
Widen
lib/ModelingToolkitTearing/Project.toml'sSciMLBase = "2.108"→"2.108, 3"so ModelingToolkitTearing resolves alongside SciMLBase v3 (shipping as part of the OrdinaryDiffEq v7 release line). BumpsModelingToolkitTearing1.12.3 → 1.13.0.StateSelection(the root package) has noSciMLBaseorDiffEqBasedependency and is unchanged.Motivation
On SciML/OrdinaryDiffEq.jl#3488 (the v7 release branch) the
test (ModelingToolkit, …)matrix fails at resolve time. Working up the stack, the final blocker (after the upstream compat bumps in SciML/DiffEqCallbacks.jl#303, SciML/DiffEqNoiseProcess.jl#271, SciML/DiffEqProblemLibrary.jl#182, SciML/JumpProcesses.jl#580, and SciML/ModelingToolkit.jl#4467 are applied) is:lib/ModelingToolkitTearing/Project.tomlhadSciMLBase = "2.108", excluding v3. This PR widens that cap.Why this is source-level safe
Grepped
lib/ModelingToolkitTearing/src/for every symbol removed in the SciMLBase v3 breaking notes (u_modified!,has_destats,sol.destats,concrete_solve,fastpow,RECOMPILE_BY_DEFAULT,DEStats,QuadratureProblem,tuples()/intervals(), standaloneDEAlgorithm/DEProblem/DESolution,sol.x/sol.minimizer/sol.minimum). Zero matches.The only SciMLBase API surface MTKTearing touches:
SciMLBase.AbstractClock,SciMLBase.ContinuousClock(…),SciMLBase.PeriodicClock(dt)— clock-domain types inclock_inference/. Untouched by v3.SciMLBase.LinearProblem— untouched by v3.None of these are on the v3 removal or rename list.
Verified end-to-end
On Julia 1.11, with this branch's
lib/ModelingToolkitTearingdev'd alongsidelib/DiffEqBasev7.0.0,lib/OrdinaryDiffEqCorev4.0.0, the DiffEqCallbacks / DiffEqNoiseProcess / ODEProblemLibrary / JumpProcesses / MTK / MTKBase compat-widened branch versions, and the full OrdinaryDiffEq monorepo sublib set:Test plan
@mtkcompile+solvewith the full v7 stack dev'd in.test (ModelingToolkit, …)once this is registered and the upstream SciML-side bumps are registered.Co-Authored-By: Chris Rackauckas accounts@chrisrackauckas.com