Skip to content

Raise SciMLOperators downgrade floors to 1.24.3 - #3905

Merged
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:codex/raise-scimloperators-downgrade-floor
Jul 20, 2026
Merged

Raise SciMLOperators downgrade floors to 1.24.3#3905
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:codex/raise-scimloperators-downgrade-floor

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jul 15, 2026

Copy link
Copy Markdown
Member

Please ignore this PR until it has been reviewed by @ChrisRackauckas.

Summary

Raise the SciMLOperators lower bound from 1.23 to 1.24.3 in the ten source-tree projects whose downgrade environments exercise the current shared operator stack:

  • OrdinaryDiffEqCore
  • OrdinaryDiffEqDifferentiation
  • OrdinaryDiffEqFIRK tests
  • OrdinaryDiffEqAMF
  • OrdinaryDiffEqExtrapolation
  • OrdinaryDiffEqLinear
  • OrdinaryDiffEqLowStorageRK
  • OrdinaryDiffEqRKIP
  • StochasticDiffEq tests
  • StochasticDiffEqCore

Why

OrdinaryDiffEq #3885 moved OrdinaryDiffEqNonlinearSolve to the unified operator Jacobian prototype and explicitly requires SciMLOperators 1.24.3. That release contains the MatrixOperator copy behavior needed by the new W-reuse path. The adjacent source-tree projects still advertised 1.23, allowing the downgrade resolver to construct standalone environments below the operator floor required by the current monorepo code.

This follows the earlier downgrade metadata alignment in #3844 and changes only the lower-bound metadata that participates in those source-tree test resolutions.

Process

  1. Reproduced the current lower-bound resolution with the deployed julia-downgrade-compat action (v2.6.1, commit fab1def) and used Resolve recursive path-source dependency floors julia-actions/julia-downgrade-compat#56 for the recursive source-tree environments.
  2. Traced the 1.24.3 requirement to NonlinearSolveAlg: reuse the ODE WOperator matrix-free for Krylov linsolves #3885 and SciMLOperators Implementing the Anas5 method #405/Exp4 using EPIRK #406.
  3. Raised only the ten floors exercised by the affected standalone source-tree tests.
  4. Re-resolved the exact downgrade environments and ran each package's real Core tests without re-resolution.

Local verification

  • The deployed downgrade action resolved the original four projects successfully with SciMLOperators 1.24.3.
  • The recursive path-source action from Resolve recursive path-source dependency floors julia-actions/julia-downgrade-compat#56 resolved the six added projects successfully with SciMLOperators 1.24.3.
  • Julia 1.11, strict floor manifests, allow_reresolve=false:
    • OrdinaryDiffEqCore, ODEDIFFEQ_TEST_GROUP=Core: package tests passed; key summaries include 10/10 sparse isdiag, 18/18 algebraic-variable detection, 30/30 discontinuity detection, and 49/49 interpolation search hints.
    • OrdinaryDiffEqDifferentiation, ODEDIFFEQ_TEST_GROUP=Core: package tests passed; six testsets totaling 33 assertions passed.
    • OrdinaryDiffEqFIRK, ODEDIFFEQ_TEST_GROUP=Core: 105/105 passed.
    • StochasticDiffEq, ODEDIFFEQ_TEST_GROUP=Core: package tests passed; the long solver-reversal set passed 152/152, in addition to the other Core sets.
  • Julia 1.11, strict floor manifests, allow_reresolve=false, for the six added source-tree projects:
    • OrdinaryDiffEqExtrapolation: 284/284 passed.
    • OrdinaryDiffEqLinear: 37/37 passed.
    • OrdinaryDiffEqAMF: 24/24 passed.
    • OrdinaryDiffEqLowStorageRK: 515 passed with 28 existing broken cases.
    • OrdinaryDiffEqRKIP: package tests passed; the reported summaries include 105 passed with 45 existing broken type-safety cases, 1/1 cache test, and 4/4 Fourier semilinear PDE tests.
    • StochasticDiffEqCore: 13/13 passed.
  • TOML parsing passed for all ten edited projects.
  • Runic 1.7 check passed for all 1,000 Julia files.
  • git diff --check passed.

The strict test command used for each sublibrary was equivalent to:

ODEDIFFEQ_TEST_GROUP=Core julia +1.11 --project=lib/<package> -e \
  'using Pkg; Pkg.test(; allow_reresolve=false)'

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude
ChrisRackauckas-Claude force-pushed the codex/raise-scimloperators-downgrade-floor branch from 394a634 to 6f0fd9e Compare July 16, 2026 17:22

Copy link
Copy Markdown
Member Author

Rebased onto current master and pushed 6f0fd9e85, extending the same SciMLOperators 1.24.3 floor to the six remaining affected source-tree projects. The recursive downgrade resolver selected 1.24.3 for all six; strict Julia 1.11 Core tests passed for AMF (24/24), Extrapolation (284/284), Linear (37/37), LowStorageRK (515 passed, 28 existing broken), RKIP, and StochasticDiffEqCore (13/13). Runic passed all 1,000 files and git diff --check passed.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Post-rebase downgrade CI classification for 6f0fd9e85:

  • The root downgrade job passed.
  • The sublibrary matrix now passes every project changed by this PR. Relative to the exact-base run at aa895b563, the OrdinaryDiffEqCore, OrdinaryDiffEqDifferentiation, OrdinaryDiffEqFIRK, and StochasticDiffEq failures are gone; the six additional source-tree projects covered by the same floor also pass.
  • The three remaining package failures—OrdinaryDiffEqBDF, OrdinaryDiffEqNonlinearSolve, and OrdinaryDiffEqSDIRK—all reach the separate similar(::SciMLOperators.MatrixOperator) failure caused by the older NonlinearSolveBase floor. That follow-up is isolated in Raise NonlinearSolveBase floor for operator Jacobians #3917 rather than mixed into this PR.
  • DiffEqDevTools is an infrastructure failure, not a recorded test failure: resolution and build succeeded, then the self-hosted runner lost communication during julia-runtest; GitHub left that step in_progress with no completion timestamp or test output.

Thus the SciMLOperators floor change itself is green in CI; the residual downgrade work is independently scoped, and the runner-loss job needs a rerun rather than a metadata change here.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Independent confirmation from an investigation of the master CI failures at 4e1a434 (Downgrade Sublibraries run 29629348539):

Of the 9 failing downgrade jobs, exactly four fail with the resolution error this PR fixes (SciMLOperators pinned to its 1.23.0 floor by the lib under test vs the path-dev'd OrdinaryDiffEqNonlinearSolve 2.3.0 requiring >= 1.24.3 since #3885): OrdinaryDiffEqCore, OrdinaryDiffEqDifferentiation, OrdinaryDiffEqFIRK, StochasticDiffEq — all included in this PR's floor bumps, e.g. from the Core job log:

ERROR: LoadError: Unsatisfiable requirements detected for package SciMLOperators [c0aeaf25]:
 ├─restricted to versions 1.24.3 - 1 by OrdinaryDiffEqNonlinearSolve [127b3ac7], leaving only versions: 1.24.3
 └─restricted to versions 1.23.0 by an explicit requirement — no versions left

The remaining five failures are different root causes, so they will persist after this merges:

🤖 Generated with Claude Code

https://claude.ai/code/session_015WU5V4PXt8SZ3BpjxdtM7d

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 20, 2026 06:36
@ChrisRackauckas
ChrisRackauckas merged commit 6b10b91 into SciML:master Jul 20, 2026
242 of 276 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