Skip to content

Raise OrdinaryDiffEqNonlinearSolve downgrade floor to 1.15.0 (fixes Downgrade Core)#320

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:downgrade-raise-odenonlinearsolve-floor
Jun 28, 2026
Merged

Raise OrdinaryDiffEqNonlinearSolve downgrade floor to 1.15.0 (fixes Downgrade Core)#320
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:downgrade-raise-odenonlinearsolve-floor

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Problem

The Downgrade / Downgrade Tests - Core lane is red on master. At the minimum-version (downgrade) resolution it errors in test/saving_tests.jl ("fail gracefully" testset):

MethodError: no method matching _initialize_dae!(
    ...OrdinaryDiffEqBDF.DFBDF..., ..., ::DiffEqBase.BrownFullBasicInit, ::Val{false})
Closest candidates are:
  _initialize_dae!(::Any, ::SciMLBase.DAEProblem, ::OrdinaryDiffEqCore.BrownFullBasicInit, ::Val{false})
  ...

The test does using DiffEqBase: BrownFullBasicInit and passes BrownFullBasicInit(nlsolve = NewtonRaphson()) as initializealg. At the resolved floor, the _initialize_dae! methods provided by OrdinaryDiffEqNonlinearSolve dispatched on its own OrdinaryDiffEqCore.BrownFullBasicInit init type, which is a different type from DiffEqBase.BrownFullBasicInit — so no method matched.

Fix

OrdinaryDiffEqNonlinearSolve 1.15.0 is the first registered version that unifies the DAE-initialization algorithms onto the DiffEqBase-owned types: it imports BrownFullBasicInit from OrdinaryDiffEqCore (which in turn re-exports DiffEqBase.BrownFullBasicInit), and its _initialize_dae! methods dispatch on DiffEqBase.BrownFullBasicInit. The previous floor 1.5.0 predates that migration, so the DiffEqBase-owned init type passed by the test hit no method.

This raises only the [compat] lower bound for OrdinaryDiffEqNonlinearSolve from 1.5.0 to 1.15.0. No source changes.

Verification (Julia 1.10 / LTS)

Reproduced the downgrade resolution faithfully (julia-actions/julia-downgrade-compat deps mode via the action's downgrade.jl, then Pkg.test("DiffEqCallbacks"; allow_reresolve=false) with GROUP=Core):

  • Resolver picks OrdinaryDiffEqNonlinearSolve 1.15.0 at the floor.
  • Core/saving_tests.jl passes 112/112 (the previously-erroring "fail gracefully" testset now passes).
  • Full Core group: Testing DiffEqCallbacks tests passed (0 fail / 0 error).

Please ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

The Downgrade Core lane errored in test/saving_tests.jl ("fail
gracefully" testset) with:

  MethodError: no method matching _initialize_dae!(
      ...DFBDF..., ..., ::DiffEqBase.BrownFullBasicInit, ::Val{false})

At the resolved floor, OrdinaryDiffEqNonlinearSolve dispatched
_initialize_dae! on its own OrdinaryDiffEqCore.BrownFullBasicInit
init type, while the test (and DiffEqBase) pass a
DiffEqBase.BrownFullBasicInit. OrdinaryDiffEqNonlinearSolve 1.15.0 is
the first registered version that unifies the DAE-init algorithms onto
the DiffEqBase-owned types (it imports BrownFullBasicInit from
OrdinaryDiffEqCore, which itself re-exports DiffEqBase's), so its
_initialize_dae! methods dispatch on DiffEqBase.BrownFullBasicInit.
The previous floor 1.5.0 still defined and dispatched on the
OrdinaryDiffEqCore-owned type, so passing DiffEqBase's hit no method.

Verified on Julia 1.10 (LTS) by reproducing the downgrade resolution
(julia-downgrade-compat deps mode + Pkg.test GROUP=Core, allow_reresolve
=false): with the floor at 1.15.0 the resolver picks
OrdinaryDiffEqNonlinearSolve 1.15.0 and Core/saving_tests.jl passes
112/112 (the previously-erroring testset now passes); the full Core
group reports "Testing DiffEqCallbacks tests passed".

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 28, 2026 20:39
@ChrisRackauckas ChrisRackauckas merged commit 411b4bc into SciML:master Jun 28, 2026
18 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