Skip to content

Fix ODE7 SciMLBase import in test and re-enable Downgrade CI#200

Merged
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-ode7-import-and-downgrade
Jun 7, 2026
Merged

Fix ODE7 SciMLBase import in test and re-enable Downgrade CI#200
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-ode7-import-and-downgrade

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Two coupled fixes — the test fix is the prerequisite for the downgrade CI to be testable.

1. Fix pre-existing master test failure (ODE7)

test/diffeq.jl:18 does @test sol.retcode == SciMLBase.ReturnCode.Success but the file only using LabelledArrays, OrdinaryDiffEq, Test. It relied on OrdinaryDiffEq 6.x re-exporting the SciMLBase name. OrdinaryDiffEq 7.0.0 (now latest) dropped that re-export, so master fails with UndefVarError: SciMLBase not defined at latest deps on Julia 1.10.

Fixed the right way (NOT by capping OrdinaryDiffEq to 6, which would hide the real ODE7 incompatibility):

  • Added SciMLBase to [extras], the test target, and [compat] ("2, 3").
  • Added using SciMLBase to test/diffeq.jl.

2. Re-enable Downgrade CI

The workflow was if: false (old comment about StaticArrays floor conflict). Re-enabled with allow-reresolve: true and julia-version: "1.10" (LTS retained). Raised [compat] floors to the lowest set that resolves and passes the downgrade suite:

dep old new
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

Local verification (Julia 1.10.11)

  • Latest deps (master repro + fix): full Pkg.test() PASS with OrdinaryDiffEq 7.0.0 resolved. DiffEq testset 9/9 (was UndefVarError before).
  • Downgrade (deps-mode floor pins, Pkg.test(allow_reresolve=true), OrdinaryDiffEq/SciMLBase floating to latest 7.x/3.x): PASS.
    SLArrays            |  48        48
    LArrays             |  72   4    76   (4 pre-existing @test_broken, untouched)
    DiffEq              |   9         9
    ChainRules          |  50        50
    RecursiveArrayTools |   1         1
    Testing LabelledArrays tests passed
    

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

ChrisRackauckas and others added 2 commits June 6, 2026 15:33
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 <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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 <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 7, 2026 05:55
@ChrisRackauckas ChrisRackauckas merged commit e766d11 into SciML:master Jun 7, 2026
7 of 8 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