From 3fdf69e98f6ab950676a41f8129bdf3379cea0c5 Mon Sep 17 00:00:00 2001 From: Chris Rackauckas Date: Sat, 6 Jun 2026 15:33:41 -0400 Subject: [PATCH 1/2] Fix ODE7 SciMLBase import in test and re-enable Downgrade CI OrdinaryDiffEq 7.0.0 dropped the re-export of the `SciMLBase` name that test/diffeq.jl relied on (`sol.retcode == SciMLBase.ReturnCode.Success`), causing `UndefVarError: SciMLBase not defined` on master at latest deps. Add SciMLBase as a test dep ([extras] + test target + [compat]) and import it explicitly in test/diffeq.jl, rather than capping OrdinaryDiffEq to 6. Re-enable the Downgrade workflow (was `if: false`) with allow-reresolve: true and julia-version 1.10, and raise the [compat] floors to the lowest set that resolves and passes the downgrade suite: ArrayInterface: 7 -> 7.25 ChainRulesCore: 1 -> 1.26 ForwardDiff: 0.10.3, 1 -> 1.1 MacroTools: 0.5 -> 0.5.16 PreallocationTools: 0.4, 1.0 -> 1.2 PrecompileTools: 1 -> 1.2.1 RecursiveArrayTools: 3.1, 4 -> 3.54, 4 StaticArrays: 1.0 -> 1.9.18 Downgrade suite run locally on Julia 1.10 at these floors (deps-mode pins, allow_reresolve=true, OrdinaryDiffEq/SciMLBase floating to latest 7.x/3.x): PASS. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/Downgrade.yml | 2 +- Project.toml | 20 +++++++++++--------- test/diffeq.jl | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index a0cce4f..93a33f5 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -12,10 +12,10 @@ on: - 'docs/**' jobs: downgrade: - if: false # Disabled: OrdinaryDiffEq minimum version requires StaticArrays 0.8-0.12, conflicts with StaticArrays >= 1.0 compat name: "Downgrade" uses: "SciML/.github/.github/workflows/downgrade.yml@v1" with: julia-version: "1.10" + allow-reresolve: true skip: "Pkg,TOML" secrets: "inherit" diff --git a/Project.toml b/Project.toml index 8107c35..3bf008d 100644 --- a/Project.toml +++ b/Project.toml @@ -15,15 +15,16 @@ RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [compat] -ArrayInterface = "7" -ChainRulesCore = "1" -ForwardDiff = "0.10.3, 1" -MacroTools = "0.5" +ArrayInterface = "7.25" +ChainRulesCore = "1.26" +ForwardDiff = "1.1" +MacroTools = "0.5.16" OrdinaryDiffEq = "6, 7" -PreallocationTools = "0.4, 1.0" -PrecompileTools = "1" -RecursiveArrayTools = "3.1, 4" -StaticArrays = "1.0" +PreallocationTools = "1.2" +PrecompileTools = "1.2.1" +RecursiveArrayTools = "3.54, 4" +SciMLBase = "2, 3" +StaticArrays = "1.9.18" julia = "1.10" [extras] @@ -32,7 +33,8 @@ ChainRulesTestUtils = "cdddcdb0-9152-4a09-a978-84456f9df70a" InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["Test", "OrdinaryDiffEq", "InteractiveUtils", "ChainRulesTestUtils", "AllocCheck"] +test = ["Test", "OrdinaryDiffEq", "InteractiveUtils", "ChainRulesTestUtils", "AllocCheck", "SciMLBase"] diff --git a/test/diffeq.jl b/test/diffeq.jl index 4c47357..c1686aa 100644 --- a/test/diffeq.jl +++ b/test/diffeq.jl @@ -1,4 +1,4 @@ -using LabelledArrays, OrdinaryDiffEq, Test +using LabelledArrays, OrdinaryDiffEq, SciMLBase, Test LorenzVector = @SLArray (3,) (:x, :y, :z) LorenzParameterVector = @SLArray (3,) (:σ, :ρ, :β) From 93e69ff5000ccc5a3e5663ebb5eb196b2ad1a576 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 6 Jun 2026 18:18:33 -0400 Subject: [PATCH 2/2] Downgrade CI: 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, julia-downgrade-compat pins [deps] to their declared floors, floats transitive deps to latest, and Pkg.test must instantiate that exact set with no reconciliation. Verified locally on Julia 1.10 (deps-mode: [deps] [compat] pinned to floors, extras/transitive floated to latest, Pkg.test(allow_reresolve=false)): all test groups pass at the current floors with no floor raises needed. SciMLBase 3.18 / OrdinaryDiffEq 7.0 / RecursiveArrayTools 4.x (latest transitive) coexist with the pinned [deps] floors. Strict downgrade suite: PASS. Test summary: SLArrays / LArrays (72 pass, 4 pre-existing @test_broken) / DiffEq (9 pass) ChainRules (50 pass) / RecursiveArrayTools (1 pass) -> Testing LabelledArrays 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 93a33f5..1d7cb3d 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -16,6 +16,6 @@ jobs: uses: "SciML/.github/.github/workflows/downgrade.yml@v1" with: julia-version: "1.10" - allow-reresolve: true + allow-reresolve: false skip: "Pkg,TOML" secrets: "inherit"