Skip to content

Avoid piracy in jump dependency traversal - #4907

Draft
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/mtkbase-clean-qa-investigation-20260809
Draft

Avoid piracy in jump dependency traversal#4907
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/mtkbase-clean-qa-investigation-20260809

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Aug 9, 2026

Copy link
Copy Markdown
Member

Ignore this PR until it has been reviewed by @ChrisRackauckas.

Summary

  • keep jump-specific dependency traversal behind a ModelingToolkitBase-owned helper
  • stop defining SymbolicUtils.search_variables! methods on JumpProcesses-owned jump types
  • add a regression test that rejects those cross-package methods

Context

A clean origin/master QA reproduction at 731eff66b596fbc6bc36aff45b21bb2e81e1bddb reports 14 Aqua piracy methods: four search_variables! methods and ten older toexpr methods. This focused change removes the four jump-related methods. The remaining toexpr ownership work is tracked in #4670.

The existing narrow SimpleNonlinearSolve stale-dependency allowance is unchanged. That dependency is used only by MTKBifurcationKitExt and must remain hard so loading BifurcationKit activates the extension.

Local verification

  • Runic --check --diff on all three changed files: pass
  • git diff --check: pass
  • focused lib/ModelingToolkitBase/test/dep_graphs.jl: all testsets pass (1/1, 22/22, 3/3, 1/1)
  • full GROUP=InterfaceI package test: 1,502 pass, 5 pre-existing broken, 1,507 total; package test passed in 48m04s
  • Aqua.test_piracies(ModelingToolkitBase): expected nonzero result containing exactly the ten pre-existing toexpr methods and no search_variables! methods

CI baseline

The repository-wide Runic check fails on unchanged clean-master lib/ModelingToolkitBase/src/problems/initializationproblem.jl. Exact local reproduction and the introducing commit are tracked in #4908. This PR does not mix that unrelated one-word formatting fix into the jump-piracy change.

Keep jump-specific variable traversal behind a ModelingToolkitBase-owned helper instead of extending SymbolicUtils on JumpProcesses types. Add a regression test for the removed methods.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

CI baseline update: the two completed failures are both reproduced on unchanged master and are unrelated to this patch.

The PR-specific jump dependency tests and full local InterfaceI group pass; no unrelated compatibility or formatting changes are included here.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Additional clean-master CI baseline: the LTS benchmark job fails because benchmark/benchmarks.jl relies on the removed OrdinaryDiffEqDefault blanket SciMLBase reexport and does not import SciMLBase.init. Clean Julia 1.10 namespace reproduction and the introducing OrdinaryDiffEqDefault change are tracked in #4910. The Julia 1 benchmark cell was canceled by the matrix after the LTS cell failed.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Additional clean-master CI classification: the MTKBase compatibility-floor failure is identical on origin/master and is tracked separately in #4911. History analysis traces the stale Julia 1.10 @test_broken @inferred expectation to d893f4205a56dc1bdfdb729661cdbd03c4ae6da7; it became the active downgrade failure after 84dc0e3f2644b3a2e49bb213d869c129ceb41be9 lowered the Moshi floor and made both inference checks pass. No downgrade-related changes are included in this focused PR.

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