From 0d5699f325ece0f0e782afee9089b2adcab5f41b Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 20 Jun 2026 08:40:45 -0400 Subject: [PATCH] Raise NonlinearSolve (4.12) and OrdinaryDiffEqSDIRK (1.7) floors to fix Downgrade CI The Downgrade job fails during precompilation. The old test-dep compat floors resolve a stale, mutually-inconsistent valley of SciML versions that hits three distinct precompile failures; each floor bump removes one: 1. NonlinearSolve v3 + new DiffEqBase v3 does `using DiffEqBase: AbstractNonlinearTerminationMode`, but that type moved out of DiffEqBase into NonlinearSolveBase. v3's DiffEqBase compat is under-bounded, so it pairs with a DiffEqBase that no longer defines the symbol: `UndefVarError: AbstractNonlinearTerminationMode not defined`. 2. NonlinearSolve 4.0.x + NonlinearSolveBase 1.5.x Both define the same `SciMLBase.__solve(::DualAbstractNonlinearProblem, ...)` (NonlinearSolve's forward_diff.jl and NonlinearSolveBase's ForwardDiff ext): `Method overwriting is not permitted during Module precompilation`. NonlinearSolve 4.12 is the first 4.x requiring NonlinearSolveBase 2, where that method lives in exactly one place, so (1) and (2) are both avoided. 3. OrdinaryDiffEqSDIRK 1.2.0 + new OrdinaryDiffEqDifferentiation SDIRK 1.2.0 builds TRBDF2 with a legacy tuple AD field `(AutoForwardDiff, Val{0}, Val{:forward})` that the resolved OrdinaryDiffEqDifferentiation 1.16's `prepare_ADType` no longer accepts, so PDESystemLibrary's top-level `solve(prob, TRBDF2())` in lib/brusselator.jl dies at precompile with a `prepare_ADType` MethodError. SDIRK 1.7 is the first version carrying an OrdinaryDiffEqDifferentiation "1.12 - 1" compat (the modern AD API), which fixes it. With these floors the downgrade resolves a consistent set (NonlinearSolve 4.12.0 / NonlinearSolveBase 2.2.0 / OrdinaryDiffEqSDIRK 1.7.0 / OrdinaryDiffEqDifferentiation 1.16.1 / OrdinaryDiffEq 6.97.0 / DiffEqBase 6.202.0 / ModelingToolkit 9.50.0 / SciMLBase 2.116.0) that precompiles cleanly on Julia 1.10 (verified locally, including PDESystemLibrary itself). The non-downgrade builds already resolve NonlinearSolve 4.19.x and SDIRK 2.7.x, so these floor bumps have no effect on them. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index a5240a9..5b2c34e 100644 --- a/Project.toml +++ b/Project.toml @@ -20,10 +20,10 @@ Lux = "1" Markdown = "1" MethodOfLines = "0.11, 0.12" ModelingToolkit = "9.7.1, 10, 11" -NonlinearSolve = "3, 4" +NonlinearSolve = "4.12" OptimizationOptimJL = "0.3, 0.4" OrdinaryDiffEq = "6.80.0, 7" -OrdinaryDiffEqSDIRK = "1.2.0, 2" +OrdinaryDiffEqSDIRK = "1.7, 2" Random = "1" SafeTestsets = "0.1" SciMLBase = "2.69.0, 3.1"