Skip to content

Downgrade: raise ModelingToolkit (9.7.1) and OrdinaryDiffEq (6.80.0) compat floors#59

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downgrade-floor
Jun 15, 2026
Merged

Downgrade: raise ModelingToolkit (9.7.1) and OrdinaryDiffEq (6.80.0) compat floors#59
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downgrade-floor

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Problem

The Downgrade job (LTS Julia 1.10, strict allow_reresolve: false) pins every direct dependency to its declared [compat] lower bound, then builds and tests. The test suite loads MethodOfLines (a [extras] test dependency with no [compat] entry).

At the old floors, the downgrade resolve was Unsatisfiable:

ERROR: LoadError: Unsatisfiable requirements detected for package MethodOfLines [94925ecb]:
 MethodOfLines log:
 ├─restricted by compatibility requirements with SymbolicUtils to versions: [0.8.3-0.8.4, 0.9.0-0.11.0]
 └─restricted by compatibility requirements with ModelingToolkit to versions: uninstalled — no versions left
   └─ModelingToolkit restricted to versions 9.0.0 by an explicit requirement

The conflicting pins (why the old floors were impossible)

  1. ModelingToolkit = "9, 10, 11" floors MTK at 9.0.0. But no published MethodOfLines version supports MTK 9.0.0 — the lowest, MethodOfLines 0.11.0, requires ModelingToolkit = "9.7.1 - 9". So at MTK 9.0.0, MethodOfLines is uninstallable. (Older MethodOfLines only support MTK 8.)
  2. Raising the MTK floor to 9.7.1 lets MethodOfLines 0.11.0 install, but MTK 9.7.1 requires OrdinaryDiffEq = "6.73.0 - 6", while the old OrdinaryDiffEq = "6, 7" floor pins 6.0.0 — too low.
  3. OrdinaryDiffEq 6.73.0 itself still fails: it requires FastBroadcast = "0.2", whereas OrdinaryDiffEqSDIRK (floor 1.2.0) requires FastBroadcast = "0.3.5 - 0.3"no overlap. OrdinaryDiffEq 6.80.0 is the first version that admits FastBroadcast = "0.2 - 0.3", which overlaps SDIRK's 0.3.5. So 6.80.0 is the smallest co-installable OrdinaryDiffEq floor.

OrdinaryDiffEqSDIRK (1.2.0) and SciMLBase (2.69.0) floors are left unchanged — they co-install fine once MTK = 9.7.1 and OrdinaryDiffEq = 6.80.0.

Fix

Raise two [compat] lower bounds to the smallest versions that resolve at the downgrade minimum:

Dep Old floor New floor Reason
ModelingToolkit 9 9.7.1 lowest MTK any MethodOfLines (0.11.0) supports
OrdinaryDiffEq 6 6.80.0 MTK 9.7.1 needs ODE ≥ 6.73.0; 6.80.0 is the first that shares a FastBroadcast with the SDIRK floor

This raises only lower bounds; no upper bound is touched, no test logic or tolerance is changed.

Resolve verification

Reproduced locally on Julia 1.10 (the LTS downgrade floor):

  • Old floors (ModelingToolkit = 9, OrdinaryDiffEq = 6): pinning every direct dep to its floor → Unsatisfiable requirements detected for package MethodOfLines (matches CI).
  • New floors: pinning every direct dep to its floor, and separately running julia-downgrade-compat's downgrade.jl in the real deps/LTS configuration, both resolve successfully — manifest pins MTK 9.7.1, MethodOfLines 0.11.0, OrdinaryDiffEq 6.80.0, OrdinaryDiffEqSDIRK 1.2.0, SciMLBase 2.69.0.

Master's non-downgrade CI is unaffected (the package already resolves at the top of its compat ranges; the master CI red was only a Codecov upload-auth error, not a test failure).

Ignore until reviewed by @ChrisRackauckas.

…oor to 6.80.0 (old floors unresolvable at downgrade minimum)

The downgrade (LTS, strict) job pins every direct dep to its compat floor.
The test suite loads MethodOfLines (a [extras] test dep, no compat entry).

At the old floor ModelingToolkit = 9 -> MTK pinned to 9.0.0, but no
MethodOfLines version supports MTK 9.0.0 (the lowest, MethodOfLines 0.11.0,
requires ModelingToolkit 9.7.1-9), so MethodOfLines was uninstallable:
  Unsatisfiable requirements detected for package MethodOfLines:
   restricted by compatibility requirements with ModelingToolkit to versions:
   uninstalled - no versions left (ModelingToolkit restricted to 9.0.0).

Raising MTK floor to 9.7.1 lets MethodOfLines 0.11.0 install, but MTK 9.7.1
requires OrdinaryDiffEq 6.73.0+, while the old OrdinaryDiffEq = 6 floor pins
6.0.0. OrdinaryDiffEq 6.73.0 still fails: it needs FastBroadcast 0.2, whereas
OrdinaryDiffEqSDIRK (floor 1.2.0) needs FastBroadcast 0.3.5 - no overlap.
OrdinaryDiffEq 6.80.0 is the first version admitting FastBroadcast 0.2-0.3,
which overlaps SDIRK's 0.3.5, so 6.80.0 is the smallest co-installable floor.

OrdinaryDiffEqSDIRK (1.2.0) and SciMLBase (2.69.0) floors are unchanged - they
co-install fine once MTK=9.7.1 and OrdinaryDiffEq=6.80.0.

Verified: pinning every direct dep to its compat floor (mimicking
julia-downgrade-compat) and running julia-downgrade-compat's downgrade.jl on
Julia 1.10 (the LTS downgrade floor) now resolves successfully (MTK 9.7.1,
MethodOfLines 0.11.0, OrdinaryDiffEq 6.80.0, SDIRK 1.2.0, SciMLBase 2.69.0),
where the old floors gave Unsatisfiable.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 15, 2026 04:50
@ChrisRackauckas ChrisRackauckas merged commit e244fb7 into SciML:master Jun 15, 2026
9 of 10 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