Raise ModelingToolkit downgrade floors#495
Conversation
Require the first ModelingToolkit and ModelingToolkitBase releases that satisfy the package downgrade graph and actuator tests. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Validation scratchpad for
No test, tolerance, warning policy, or assertion was changed. The commit contains only the two compatibility-floor edits and the required co-author trailer. |
|
Hosted CI classification for
All four jobs reach the unchanged The PR-specific checks remain green: Runic, QA, documentation, formatting, and spelling. The corrected downgrade graph also completed resolution/build and reached the clean-base-only test error, so no new downgrade-specific failure is present. |
|
Clean-main downstream audit (PR source was not modified): The hosted Exact boundary reproduction on Julia 1.12.6:
LinearSolve 4.3.0 introduced the Arnoldi extension ( Splitting dependency mutation and The focused fix is in SciML/SciMLTesting.jl#23, with the stacked MTK opt-in in SciML/ModelingToolkit.jl#4749. Isolated children now retain path-developed outer-sandbox packages while respecting group-local Real-graph validation developed this clean-main MTSL checkout, patched SciMLTesting, and MTK #4749 by path, then exercised the production The full unmodified split-process |
|
Terminal follow-up for the unmodified clean-main replay promised above. I kept dependency setup and the actual test run in separate Julia processes, then ran ModelingToolkit clean main at JULIA_NUM_THREADS=2 GROUP=All julia +1.12 --project=. \
-e 'using Pkg; Pkg.test(; coverage=false)'The run reached the following terminal results before exiting 1:
The downstream manifest resolved LinearSolve 4.3.0. As soon as Downstream precompiled its dependencies, it reported ModelingToolkitStandardLibrary and ControlSystemsMTK consequently failed to precompile, and Julia also reported that 11 dependencies had been precompiled at versions different from the versions already loaded by the outer test process. This confirms that launching This is the failing control for the successful isolated-group real-graph run reported above with SciMLTesting #23 plus ModelingToolkit #4749. No source in this PR was modified for either run. |
This PR should be ignored until reviewed by @ChrisRackauckas.
Summary
These are two independent downgrade boundaries. The Base floor prevents an incompatible ImplicitDiscreteSolve/OrdinaryDiffEqCore graph from loading; the ModelingToolkit floor includes the alias-elimination correction needed by the isothermal actuator model.
Root cause
With ModelingToolkitBase below 1.49, the downgrade graph can select ImplicitDiscreteSolve 2.1.1 with OrdinaryDiffEqCore 4.3. ImplicitDiscreteSolve then instantiates the two-parameter form of
CommonControllerOptionsagainst the older one-parameter definition, and package loading fails withtoo many parameters for type.ModelingToolkitBase 1.49 is the first release whose compatibility requires ImplicitDiscreteSolve 2.1.2 on its 2.x line. That release in turn requires a compatible OrdinaryDiffEqCore version. This is the dependency correction from ModelingToolkit.jl #4677.
After correcting that graph, ModelingToolkit 11.27 still fails three unchanged isothermal actuator assertions: the first acceleration and maximum acceleration are
NaN, and the terminal piston displacement remains zero. ModelingToolkit 11.28 is the first passing release. It contains the perfect-alias elimination rerun from ModelingToolkit.jl #4640, which handles equations exposed by the earlier alias-elimination pass before Pantelides differentiation.Boundary verification
Julia 1.10.11:
CommonControllerOptionsload failure on its exact downgrade graph.@test/@test_logssites on the same pinned core graph.mainpasses the isothermal file 27/27, confirming that the actuator failure is specific to the old ModelingToolkit floor.The pinned graph kept ModelingToolkit 11.28.0, ModelingToolkitBase 1.49.0, ModelingToolkitTearing 1.18.3, OrdinaryDiffEq 7.0.0, OrdinaryDiffEqCore 4.5.0, OrdinaryDiffEqDifferentiation 3.2.0, OrdinaryDiffEqNonlinearSolve 2.0.0, OrdinaryDiffEqRosenbrock 2.0.0, SciMLBase 3.18.0, DiffEqBase 7.2.0, LinearSolve 3.87.0, NonlinearSolve 4.19.1, SciCompDSL 1.0.0, SymbolicUtils 4.38.1, and Symbolics 7.24.0.
Deployed downgrade workflow verification
Using
julia-downgrade-compatv2.6.1 atfab1defb76df9fd672f63c94df73ce131d32e134in dependency mode:Pkg.instantiate()andPkg.build()completed successfully from that generated manifest.GROUP=Coretarget selected ModelingToolkit 11.30.0 while retaining ModelingToolkitBase 1.49.0. It passed 566 assertions with 3 existing broken tests throughthermal.jl, then stopped at the same clean-mainAccelerationSensorstructural-singularity error tracked by Initialize translational acceleration sensor test #489.git diff --checkpassed.No assertion was loosened, skipped, disabled, or changed. The existing actuator, analog, and analysis-point tests directly exercise both corrected boundaries.
Process log
main.The one remaining Core error is the clean-
mainAccelerationSensorfixture tracked and fixed separately by #489; it is independent of this compatibility-only patch.