Test symbolic stoichiometry through public API#1511
Conversation
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
isaacsas
left a comment
There was a problem hiding this comment.
Please modify the test to check the generated symbolic jump system and its symbolic equations are correct.
|
Audit scratchpad for commit
No private dependency API remains in the changed regression, and no failing test was hidden. |
|
PR CI follow-up: The focused change is confirmed by both Julia 1.12 and prerelease Modeling lanes: Those lanes then exposed a second latent clean-base bookkeeping failure in The LTS Modeling lane instead reaches the already tracked DSL Options regression (308 pass, 9 fail, 1 broken). QA and prerelease Extensions failures are self-hosted runner losses. |
|
Scheduled CI recheck at 07:01 EDT: the workflow has finished. The focused symbolic-stoichiometry regression passes 30/30 on Julia 1.12 and prerelease. The remaining red checks are unchanged and outside this one-test patch: Julia 1.12/prerelease Modeling reaches the seven conservation-law unexpected passes under the newer ModelingToolkitBase semantics, LTS reaches the separately tracked DSL Options regression, and QA/prerelease Extensions lost their self-hosted runners. The docs build and all unaffected package groups pass. |
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Addressed the requested symbolic-system coverage in The final diff now retains the original assertions that On Julia 1.12.6 with current ModelingToolkit master, the clean checkout errors at 20 pass + 1 error with the missing |
|
Fresh local recheck on 2026-07-20, using Julia 1.12.6 and the repository's defined Modeling group: GROUP=Modeling timeout 3600 julialauncher +1.12 --project=. --startup-file=no \
-e 'using Pkg; Pkg.test(; coverage=true)'Both runs resolved ModelingToolkitBase 1.54.1.
The dependency boundary remains ModelingToolkit commit The local branch is clean, matches |
|
Follow-up from the current CI failure in Catalyst #1516:
This strengthens the existing conclusion: #1511 fixes a latent Catalyst test dependency on non-public ModelingToolkitBase internals through the documented public compilation path. The callback compat changes in #1516 merely caused CI to encounter the already-tracked clean-base failure. |
Ignore this PR until it has been reviewed by @ChrisRackauckas.
Summary
Replace the symbolic-stoichiometry test's construction of private ModelingToolkitBase affect internals with the documented public compilation path:
The test still inspects the generated symbolic jump system, verifies that it contains one jump, and checks that its symbolic affect contains
Pre(V(t)). This addresses the review request to retain assertions about the generated symbolic jump and its equations.Root cause
The failure bisects to ModelingToolkit commit
136462c52d4c983e4ba832893928f270bc399b47(refactor: do not rely on metadata when constructing AffectSystem), whose direct parent0b01708ffb4c545b888f859bdcbc505350f723efpasses the test. That refactor made the privateAffectSystem(...; parent_sys)keyword mandatory, so Catalyst's test errored while reconstructing private internals rather than testing Catalyst behavior.ModelingToolkitBase.mtkcompile,jumps, andequationsare exported by their declaring module;mtkcompilehas its own docstring and a rendered API-docs entry.Local verification
The exact downstream test command used Julia 1.12.6, current ModelingToolkit master
77941f873102904935c798fdb3dcd2bbfbfe8d3a, and coverage:UndefKeywordError: keyword argument parent_sys not assigned.@test_brokenassertions unexpectedly passed, and 17 remained broken. That separate issue is tracked by draft PR Activate corrected conservation-law tests #1512; this PR does not alter those markers.git diff --checkpassed.letblock. The whole-repository Runic check remains nonzero on pre-existing formatting outside this focused diff.Please ignore this draft until it has been reviewed by @ChrisRackauckas.