Skip to content

Raise ModelingToolkitBase JumpProcesses floor to 9.27.0 (fix downgrade SSAIntegrator crash)#4710

Draft
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-fleet-green
Draft

Raise ModelingToolkitBase JumpProcesses floor to 9.27.0 (fix downgrade SSAIntegrator crash)#4710
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-fleet-green

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Fixes the Downgrade Sublibraries / test (lib/ModelingToolkitBase) lane (still red on master after #4709).

The sublibrary downgrade force-min-resolves DiffEqBase 7.4.2 + SciMLBase 3.18.0 + JumpProcesses 9.26.0. (ModelingToolkitBase requires SciMLBase 3.x via SciMLBase = "3.18", which forces the DiffEqBase 7.x line; DiffEqBase 6.x needs SciMLBase 2.x, so 6.x is Unsatisfiable in the min graph.)

DiffEqBase 7.x src/callbacks.jl initialize! reads integrator.derivative_discontinuity — this holds across the entire 7.x line (7.4.2 through the semver-max 7.6.0), so a DiffEqBase floor bump does not help. JumpProcesses' SSAIntegrator has only a u_modified field and, in 9.26.0, no getproperty shim. So the JumpSystem Discrete Callbacks testset (test/symbolic_events.jl:612, solve(jprob, SSAStepper())) crashes at initialize! with:

type SSAIntegrator has no field derivative_discontinuity

(CI job 85204611517: 1436 passed, 0 failed, 1 errored, 5 broken.)

Fix

JumpProcesses 9.27.0 added the Base.getproperty/Base.setproperty! shim on SSAIntegrator mapping :derivative_discontinuityu_modified (SSA_stepper.jl:123-136), which makes the DiffEqBase 7.x initialize! path work. Raise the floor:

-JumpProcesses = "9.23.0"
+JumpProcesses = "9.27.0"

Validation (local, Julia 1.10 lts, julia-downgrade-compat v2.6.1)

  • Before: downgrade resolves JumpProcesses 9.26.0; JumpSystem test errors (reproduced from the CI log).
  • After: downgrade resolves JumpProcesses 9.27.0 + DiffEqBase 7.4.2 + SciMLBase 3.18.0; Successfully resolved minimal versions and Pkg.instantiate() exits 0.

Not addressed here (separate conflict)

The root Downgrade / InterfaceI lane fails with a different error — a Pkg Unsatisfiable requirements detected for package ImplicitDiscreteSolve during the test-time re-resolve (SciMLBase 3.18 forces ImplicitDiscreteSolve 2.1.2, but OrdinaryDiffEqCore 4.0.0 caps it at 2.1.1). That is a deeper SciMLBase-3.18-floor min-resolution wall, not the SSAIntegrator crash, and needs a separate floor realignment. This PR is scoped to the sublibrary SSAIntegrator crash only.


Please ignore until reviewed by @ChrisRackauckas.

…e SSAIntegrator crash)

The sublibrary downgrade force-min-resolves DiffEqBase 7.4.2 + SciMLBase 3.18.0
+ JumpProcesses 9.26.0. DiffEqBase 7.x callbacks.jl initialize! reads
integrator.derivative_discontinuity (true across the whole 7.x line up to the
semver-max 7.6.0). JumpProcesses SSAIntegrator has only a u_modified field, and
9.26.0 provides no getproperty shim, so the JumpSystem Discrete Callbacks path in
symbolic_events.jl crashes with 'type SSAIntegrator has no field
derivative_discontinuity'.

JumpProcesses 9.27.0 added the Base.getproperty/setproperty! shim on SSAIntegrator
mapping :derivative_discontinuity <-> u_modified, which makes the DiffEqBase 7.x
initialize! path work. Raise the floor to 9.27.0.

Verified locally on Julia 1.10 (lts) with julia-downgrade-compat v2.6.1: downgrade
now resolves JumpProcesses 9.27.0 + DiffEqBase 7.4.2 + SciMLBase 3.18.0 and
instantiates clean (previously resolved 9.26.0 and errored in test).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
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