Skip to content

Bump OrdinaryDiffEqCore compat to 3.17 for JumpProcessesOrdinaryDiffEqCoreExt#582

Closed
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-stochasticdiffeqalgorithm-compat-v7-resolution
Closed

Bump OrdinaryDiffEqCore compat to 3.17 for JumpProcessesOrdinaryDiffEqCoreExt#582
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-stochasticdiffeqalgorithm-compat-v7-resolution

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

Summary

  • Root cause: JumpProcessesOrdinaryDiffEqCoreExt imports StochasticDiffEqAlgorithm and StochasticDiffEqRODEAlgorithm directly from OrdinaryDiffEqCore, but these abstract types were only introduced in OrdinaryDiffEqCore v3.17.0. The previous compat bound "3, 4" permitted versions as old as 3.0.0, triggering a precompile failure when OrdinaryDiffEqCore resolves below 3.17.
  • Symptom (seen in SciML/MinimallyDisruptiveCurves.jl#50):
    WARNING: Imported binding OrdinaryDiffEqCore.StochasticDiffEqAlgorithm was undeclared
    at import time during import to JumpProcessesOrdinaryDiffEqCoreExt.
    ERROR: UndefVarError: `StochasticDiffEqAlgorithm` not defined in `JumpProcessesOrdinaryDiffEqCoreExt`
    
    MDC's dependency tree resolved OrdinaryDiffEqCore to 3.1.0 (via OrdinaryDiffEq 6.x in its Manifest), which predates the SDE abstract types.
  • Why StochasticDiffEq's own CI is unaffected: StochasticDiffEq v7.x requires OrdinaryDiffEqCore "4" (which has the types), and StochasticDiffEq v6.x defines StochasticDiffEqAlgorithm locally in its own algorithms.jl — so JumpProcesses always resolves to a new enough OrdinaryDiffEqCore when tested from StochasticDiffEq's suite.

Change

-OrdinaryDiffEqCore = "3, 4"
+OrdinaryDiffEqCore = "3.17, 4"

OrdinaryDiffEqCore 3.17.0 is the first released version that defines StochasticDiffEqAlgorithm and StochasticDiffEqRODEAlgorithm (introduced in the "Move SDE abstract algorithm types to OrdinaryDiffEqCore" commit, 2026-03-04; confirmed absent in 3.16.0 and present in 3.17.0).

Test plan

  • CI on this PR will verify JumpProcesses tests pass with OrdinaryDiffEqCore >= 3.17.
  • Downstream: after merge and registration, MDC PR More femto #50 can re-run CI and should no longer hit the extension precompile failure.

🤖 Generated with Claude Code

…qCoreExt

The JumpProcessesOrdinaryDiffEqCoreExt imports StochasticDiffEqAlgorithm and
StochasticDiffEqRODEAlgorithm directly from OrdinaryDiffEqCore:

    import OrdinaryDiffEqCore: OrdinaryDiffEqAlgorithm, DAEAlgorithm,
        StochasticDiffEqAlgorithm, StochasticDiffEqRODEAlgorithm

These abstract types were first introduced into OrdinaryDiffEqCore in v3.17.0
(commit "Move SDE abstract algorithm types to OrdinaryDiffEqCore"). The previous
compat of "3, 4" permitted OrdinaryDiffEqCore as old as 3.0.0, which predates
the introduction of these types.

When a downstream package like MinimallyDisruptiveCurves.jl has a dependency
tree that resolves to OrdinaryDiffEqCore 3.1.0-3.16.x (e.g., because it pins
OrdinaryDiffEq 6.x in its Manifest), loading the JumpProcessesOrdinaryDiffEqCoreExt
fails with:

    WARNING: Imported binding OrdinaryDiffEqCore.StochasticDiffEqAlgorithm was
    undeclared at import time during import to JumpProcessesOrdinaryDiffEqCoreExt.
    ERROR: UndefVarError: `StochasticDiffEqAlgorithm` not defined in
    `JumpProcessesOrdinaryDiffEqCoreExt`

StochasticDiffEq's own CI does not expose this because StochasticDiffEq 7.x
requires OrdinaryDiffEqCore "4" and StochasticDiffEq 6.x defines these types
locally — so JumpProcesses always resolves to >= 3.17 in StochasticDiffEq's
test environment.

Fixes: SciML/MinimallyDisruptiveCurves.jl#50

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