Skip to content

Raise callback dependency floors#1516

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:codex/raise-callback-dependency-floors
Jul 21, 2026
Merged

Raise callback dependency floors#1516
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:codex/raise-callback-dependency-floors

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Summary

  • raise the DiffEqBase 7-series floor to 7.4.2
  • raise the JumpProcesses floor to 9.28.0
  • keep Catalyst's downgrade graph on callback interfaces already exercised by its test suite

Investigation

The exact lower-bound graph independently exposed two callback compatibility boundaries:

  • DiffEqBase 7.4.1 fails construction/use of the vector continuous callback with VectorContinuousCallback has no field affect_neg!; 7.4.2 passes the same reproducer.
  • JumpProcesses 9.27.0 fails Catalyst's jump simulation coverage with SSAIntegrator has no field ps; 9.28.0 passes the same focused testsets.

Either floor alone leaves the downgrade job failing, so they are grouped as one focused callback-compatibility change.

Local verification

  • Exact version-boundary reproducer: DiffEqBase 7.4.1 fails; 7.4.2 passes with a successful event
  • Focused Catalyst jump tests: JumpProcesses 9.27.0 fails; 9.28.0 passes
  • Combined exact lower-bound graph selected DiffEqBase 7.4.2, JumpProcesses 9.28.0, OrdinaryDiffEq 7.0.0, and SciMLBase 3.18.0
  • Locked GROUP=All run passed the callback/event coverage (Events: 126 passed, 2 pre-existing broken) and all preceding groups
  • The run later stopped only on seven clean-base conservation-law @test_broken unexpected passes already fixed by draft Activate corrected conservation-law tests #1512
  • The exact manifest SHA-256 remained 88c170317ac9795c38c545c44ec74c84edef3deb430f3f7254f959928fe1d00d
  • Repository-wide Runic check: passed

The existing callback and jump tests are the regression coverage for these metadata floors; no test was skipped, disabled, or weakened.

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

Require DiffEqBase 7.4.2 and JumpProcesses 9.28.0 so downgrade resolution retains the callback interfaces exercised by Catalyst.

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

Copy link
Copy Markdown
Member Author

Investigation log:

  1. Proved the DiffEqBase boundary with isolated exact environments: 7.4.1 fails the vector continuous callback API; 7.4.2 passes.
  2. Proved the JumpProcesses boundary against Catalyst's existing focused tests: 9.27.0 fails on the missing SSAIntegrator.ps field; 9.28.0 passes.
  3. Regenerated a combined exact lower-bound graph and locked it against re-resolution.
  4. Ran GROUP=All; all callback coverage passed, including Events (126 passed, 2 pre-existing broken).
  5. The suite stopped later only on the seven conservation-law unexpected passes reproduced on clean base and handled by Activate corrected conservation-law tests #1512.
  6. Verified the exact manifest hash remained unchanged and the repository-wide Runic check passed.

The branch contains only commit 2d203ebd, with the required co-author trailer.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Clean-base CI audit (2026-07-20): none of the remaining red jobs is caused by this PR's two Project.toml compat-floor edits.

  • Modeling jobs 88405668008, 88405667924, and 88405667939 all resolved ModelingToolkitBase 1.54.1. On Julia 1.12.6, 1.10.11, and 1.13.0-rc1 respectively, each reached Symbolic Stoichiometry | 20 pass, 1 error and stopped at symbolic_stoichiometry.jl:235 with UndefKeywordError: keyword argument parent_sys not assigned.
  • Clean current Catalyst master (ae55024af9289d201b353d27859b29909a5e3bde) reproduces that exact result. A Julia 1.12.6 focused run with released ModelingToolkitBase 1.54.1 produced one symbolic jump, confirmed that its affect contains Pre(V(t)), and then raised the same missing-parent_sys error at the private AffectSystem(...; iv) reconstruction. The repository's full clean GROUP=Modeling run likewise reached 20 passes plus this one error in Symbolic Stoichiometry.
  • The boundary bisects to ModelingToolkit commit 136462c52d4c983e4ba832893928f270bc399b47 (refactor: do not rely on metadata when constructing AffectSystem, merged in ModelingToolkit #4704); its parent 0b01708ffb4c545b888f859bdcbc505350f723ef passes. The released boundary is ModelingToolkitBase 1.52.0: the original clean-master block passes with 1.51.1 (equations_empty=true) and fails with 1.52.0. This is a Catalyst test dependency on a non-public constructor, not a regression in this PR's callback dependency floors.
  • The correct public-API repair is already covered by draft Catalyst #1511, which replaces the private AffectSystem/unhack_system reconstruction with documented mtkcompile/equations calls while retaining the symbolic-jump and Pre(V(t)) assertions.
  • QA job 88405668010 and prerelease Extensions job 88405666131 are runner losses. GitHub marks each job completed/failed while its active test/instantiate step remains in_progress, all later steps remain pending, and neither job has an assertion log blob.

Thus the three Modeling failures are identical on untouched master and tracked by #1511; the other two failures are infrastructure losses.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Hosted downgrade-check handoff (2026-07-20):

  • .github/workflows/Downgrade.yml is currently disabled_manually on the upstream repository.
  • I attempted to re-enable workflow ID 79049594 with the configured GitHub account.
  • GitHub rejected the request with HTTP 403: Must have admin rights to Repository.

The focused local downgrade evidence in the PR body remains valid, but an upstream repository administrator must re-enable this workflow before the PR can receive a hosted Downgrade check.

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 21, 2026 14:01
@ChrisRackauckas
ChrisRackauckas merged commit 534e3bf into SciML:master Jul 21, 2026
17 of 22 checks passed
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