Re-enable downgrade CI with corrected [compat] lower bounds#126
Conversation
Raise the lower bounds that were too low to resolve+pass on the Julia 1.10 downgrade environment, and remove the `if: false` that disabled Downgrade.yml (SciML#105). Bumps (old -> new lower bound): - DifferentiationInterface: 0.6 -> 0.7.18 (0.6 range dropped; test deps need 0.7.x) - ForwardDiff: 0.10.36 -> 1.1 (0.10 range dropped; PreallocationTools 1.x needs FD >= 1.1) - JET: 0.8 -> 0.8.22 (0.8.0 incompatible with julia 1.10) - ModelingToolkitBase: 1.6.2 -> 1.8.0 (first version allowing PreallocationTools 1.x; needs Symbolics >= 7.8) - ModelingToolkitStandardLibrary: 2.24 -> 2.27 (Symbolics 7 + PreallocationTools 1.x) - OptimizationBase: 4.0.2 -> 4.1 (MTK 11.7.1 needs >= 4.1) - OptimizationOptimisers: 0.3 -> 0.3.14 (uses OptimizationBase 4, compatible with Lux 1.14 Optimisers 0.4.6) - OrdinaryDiffEqVerner: 1 -> 1.10 (needs OrdinaryDiffEqCore 3 to match SciMLSensitivity) - SciMLSensitivity: 7.72 -> 7.93 (needs ForwardDiff 1 + PreallocationTools 1.x + OrdinaryDiffEqCore 3) - SciMLStructures: 1.1.0 -> 1.10 (test env forces >= 1.10) - SymbolicIndexingInterface: 0.3.41 -> 0.3.43 (SCCNonlinearSolve via MTK 11.7.1 needs >= 0.3.43) - Symbolics: 7 -> 7.8 (ModelingToolkitBase 1.8 + MTKStdLib 2.27) - Zygote: 0.6.73 -> 0.7.5 (0.6 range dropped; needs SciMLBase >= 2.135 for MTK 11.7.1 and ForwardDiff 1) downgrade suite run locally at these floors: PASS Test Summary: 106 Pass, 2 Broken (pre-existing @test_broken), 108 Total. Resolved at floors: ForwardDiff 1.1.0, SciMLSensitivity 7.93.0, OrdinaryDiffEqVerner 1.10.0, Symbolics 7.8.0, ModelingToolkitBase 1.8.0, PreallocationTools 1.2.0. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The strict (allow-reresolve: false) downgrade cannot reconcile this package's floored core deps against the latest-floating transitive SciML stack. allow-reresolve: true lets Pkg resolve a consistent set while still enforcing the floor [compat] pins set by julia-downgrade-compat. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Revert the Downgrade.yml caller to the strict SciML default `allow-reresolve: false`. With reresolve disabled, julia-downgrade-compat pins the direct [deps] to their declared floors and forces transitive deps to LATEST, and Pkg.test must instantiate that exact set with no reconciliation. This is the rigorous downgrade check: it confirms the declared [deps] floors are genuinely compatible with the latest transitive ecosystem. Verified locally on Julia 1.10 with GROUP=Core in an isolated depot, reproducing deps-mode exactly (only [deps] compat pinned to floors: ComponentArrays 0.15.28, IntervalSets 0.7.10, Lux 1.14, LuxCore 1.2, ModelingToolkitBase 1.8.0, Symbolics 7.8; transitive floated to latest): Pkg.test(; allow_reresolve=false) resolved + instantiated + fully precompiled the entire strict stack (SciMLSensitivity, ModelingToolkit 11, Lux, Enzyme, Zygote, NonlinearSolve 4.x, etc.) with no Unsatisfiable error, confirming the existing [deps] floors are strict-consistent with the latest transitive ecosystem at allow-reresolve: false. No floor raises were needed. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Updated the Downgrade.yml caller to the strict SciML default Local verification (Julia 1.10, GROUP=Core, isolated depot, deps-mode reproduced exactly): pinned only the Honesty note: the test scripts then ran for 30-50+ min at 100% CPU (the
🤖 Generated with Claude Code |
runtests.jl used `ENV["GROUP"]`, which throws `KeyError: "GROUP" not found` whenever GROUP is unset — which is the case for the normal Tests workflow (it passes no group), so the non-Core Tests jobs (and any local `Pkg.test()` without GROUP) error out before running. Default to "All" (runs every group incl QA); the downgrade job still sets GROUP=Core to skip QA. Pre-existing on main; un-breaks the standard Tests path. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rict convergence Under the strict downgrade (allow-reresolve: false, mode=deps), the [deps] floors pin the resolved environment. With ModelingToolkitBase = 1.8.0 the SciML-downgrade resolver lands the [deps] graph on SciMLBase 2.153.1, which in turn forces the test environment onto the SciMLBase-2 ecosystem ceiling (ModelingToolkit 11.8, SciMLSensitivity 7.106, OrdinaryDiffEqVerner 1.14). On that stack the seeded UDE training in test/lotka_volterra.jl converges only to res2.objective ~3e-4, failing the @test res2.objective < 1.5e-4. Raising the ModelingToolkitBase floor to 1.31.0 (the first version whose compat allows SciMLBase "2.149.0 - 3") makes the strict resolver pin SciMLBase 2.155.1 and pull in the newer ModelingToolkit (~11.21); the full strict GROUP=Core suite then passes (Basic/lotka_volterra: 10 Pass, 2 Broken[pre-existing], 0 Fail; res2.objective < 1.5e-4). No test tolerances loosened, no other compat lowered, allow-reresolve stays false. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The reusable downgrade.yml workflow now always uses allow_reresolve: false and no longer accepts an allow-reresolve input. Remove the now-invalid input so the caller keeps working once SciML/.github @v1 is retagged. Behavior is unchanged: downgrade tests still run strictly with allow_reresolve=false. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Pushed a follow-up commit removing the now-invalid |
Re-enables the downgrade CI workflow (disabled via
if: falsein #105) and raises the[compat]lower bounds that were too low to resolve and pass on the Julia 1.10 downgrade environment.Floor bumps (old → new lower bound)
0.6, 0.70.7.180.10.36, 11.10.8, …0.8.22, …1.6.21.8.02.242.274.0.2, 54.1, 50.30.3.141, 21.10, 27.727.931.1.01.100.3.410.3.4377.80.6.73, 0.70.7.5Local downgrade suite: PASS
Ran
Pkg.test()on Julia 1.10.11 with every non-stdlib[compat]dep pinned to its new declared floor. Resolved at the floors (ForwardDiff 1.1.0, SciMLSensitivity 7.93.0, OrdinaryDiffEqVerner 1.10.0, Symbolics 7.8.0, ModelingToolkitBase 1.8.0, PreallocationTools 1.2.0) and the suite passed:The 2 Broken are the pre-existing
@test_brokengradient comparisons intest/lotka_volterra.jl(not introduced here).🤖 Generated with Claude Code