From fa016ec8a1d5e32ed7a981469785b5210ff55048 Mon Sep 17 00:00:00 2001 From: Chris Rackauckas Date: Sat, 6 Jun 2026 15:24:11 -0400 Subject: [PATCH 1/2] Re-enable downgrade CI with corrected compat floors Re-enables the Downgrade workflow (was `if: false`, disabled per #149 for PrecompileTools compatibility) and raises the [compat] lower bounds to the lowest versions that resolve and pass the test suite on Julia 1.10 with the modern transitive SciML stack. Adds `allow-reresolve: true` to the downgrade.yml@v1 caller so Pkg picks a consistent transitive set (latest NonlinearSolveBase/SciMLOperators/ DifferentiationInterface) instead of the broken floor-direct/latest-transitive mix that `allow-reresolve: false` produces. Floor bumps (old -> new): - CommonSolve: 0.2 -> 0.2.4 (SciMLBase 2.153 requires CommonSolve >= 0.2.4) - DiffEqBase: 6 -> 6.210.1 (needs SciMLBase 2.143-2; coexists w/ latest NLSBase) - PrecompileTools: 1 -> 1.2.1 (SciMLBase >= 3.0/2.x stack requires >= 1.2.1; the #149 blocker) - SciMLBase: 2 -> 2.153 (lowest 2.x that the latest NonlinearSolveBase accepts) - StaticArrays: 1 -> 1.9.8 (1.9.7 fails to precompile: UndefVarError require_one_based_indexing; DI 0.7 StaticArrays ext needs >= 1.9.7) - SymbolicIndexingInterface: 0.3 -> 0.3.43 (latest NonlinearSolveBase requires SII >= 0.3.43) Downgrade suite run locally at these floors (julia-downgrade-compat deps-mode =floor pins + Pkg.test allow_reresolve=true, Julia 1.10): PASS. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/Downgrade.yml | 3 +-- Project.toml | 12 ++++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index dc64198..1d8ce8a 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -12,11 +12,10 @@ on: - 'docs/**' jobs: test: - if: false # Disabled: PrecompileTools compatibility. See #149 for details. name: "Downgrade" uses: "SciML/.github/.github/workflows/downgrade.yml@v1" with: julia-version: "1.10" skip: "Pkg,TOML" - allow-reresolve: false + allow-reresolve: true secrets: "inherit" \ No newline at end of file diff --git a/Project.toml b/Project.toml index 578117a..d52755a 100644 --- a/Project.toml +++ b/Project.toml @@ -17,12 +17,12 @@ StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" [compat] -CommonSolve = "0.2" +CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" -DiffEqBase = "6" +DiffEqBase = "6.210.1" LinearAlgebra = "1" -PrecompileTools = "1" -SciMLBase = "2" -StaticArrays = "1" -SymbolicIndexingInterface = "0.3" +PrecompileTools = "1.2.1" +SciMLBase = "2.153" +StaticArrays = "1.9.8" +SymbolicIndexingInterface = "0.3.43" julia = "1.10" From 92c0db40ef07d8aff8d0ba444d1de0c7b7ffe0c6 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 6 Jun 2026 18:09:40 -0400 Subject: [PATCH 2/2] ci(downgrade): use strict allow-reresolve: false (SciML default) Switch the Downgrade.yml caller from allow-reresolve: true to the strict SciML default allow-reresolve: false. With reresolve disabled, Pkg.test must instantiate the deps-floor + latest-transitive set produced by julia-downgrade-compat (mode deps) with no reconciliation, genuinely enforcing the declared [deps] floors against the latest transitive ecosystem. The existing compat floors are already strict-consistent: the deps-mode pinned set (SciMLBase 2.153, DiffEqBase 6.210.1, CommonSolve 0.2.4, ConcreteStructs 0.2.3, PrecompileTools 1.2.1, StaticArrays 1.9.8, SymbolicIndexingInterface 0.3.43; transitive deps at latest) resolves and the full suite passes. No floor raises were needed. Strict downgrade suite run locally on Julia 1.10 with [deps] pinned to floors and Pkg.test(; allow_reresolve=false): PASS (Testing DifferenceEquations tests passed). Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/Downgrade.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 1d8ce8a..4dcb29f 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -17,5 +17,5 @@ jobs: with: julia-version: "1.10" skip: "Pkg,TOML" - allow-reresolve: true + allow-reresolve: false secrets: "inherit" \ No newline at end of file