Investigated re-enabling the disabled downgrade workflow (verified locally, Julia 1.10.11, isolated depot). The existing if: false comment is substantively correct: there is no low [compat] floor set that both resolves and passes on Julia 1.10. The SLArrays(48) and LArrays testsets pass; only the DiffEq testset (which AD-differentiates SLArrays through the full OrdinaryDiffEq/SciMLBase/RecursiveArrayTools/NonlinearSolve stack) can't be satisfied.
Resolution-floor bumps that ARE genuinely needed (and correct): ForwardDiff 0.10.3→0.10.13 (StaticArrays 1.0 needs ≥0.10.13), OrdinaryDiffEq 6→6.62.0 (first allowing RAT 3.x), PreallocationTools 0.4→0.4.6 (enlargediffcache!), RecursiveArrayTools 3.1→3.2.0 (_getindex), ChainRulesCore→1.18, ArrayInterface→7.6, PrecompileTools→1.2, MacroTools→0.5.5.
But even then, three genuine blockers remain (none fixable by a floor bump):
- StaticArrays pinned at floor 1.0.0 caps SciMLBase ≤3.15.0; RAT 3.1 forces SciMLBase into 2.11–2.15.2 → SciMLBase 2.15.2 calls
RecursiveArrayTools._getindex (absent <3.2.0) → UndefVarError: _getindex precompiling SciMLBase.
- With RAT 3.2.0, the DiffEq solve fails at runtime:
FirstAutodiffJacError → type SArray has no field y (derivative_wrappers.jl:198, ODE 6.62) — the SLArray labels are lost through the ForwardDiff Jacobian path. RAT 3.2.0 also hits Method overwriting is not permitted on ldiv!(A::T,b) where T<:Union{} (array_partition.jl:431).
- Raising StaticArrays above 1.0 (the real intent) cascades: StaticArrays 1.5.0 fails to precompile on Julia 1.10 (
UndefVarError: require_one_based_indexing); pinning ~1.4 shifts SciMLBase 2.77 / ODE 6.87 / RAT 3.50 / NonlinearSolve into further precompile errors (AbstractNonlinearTerminationMode not defined). The floors don't compose into a consistent precompilable set on 1.10.
Maintainer options: (a) move the heavy DiffEq/SLArray AD integration test into a group NOT run at downgrade (keep SLArrays/LArrays in downgrade); (b) coordinate a stack-floor raise that's actually consistent+precompilable on 1.10 (non-trivial given StaticArrays 1.5 precompile breakage on 1.10); or (c) leave downgrade disabled. No tests were loosened; no PR opened.
From the SciML downgrade re-enablement pass.
Investigated re-enabling the disabled downgrade workflow (verified locally, Julia 1.10.11, isolated depot). The existing
if: falsecomment is substantively correct: there is no low[compat]floor set that both resolves and passes on Julia 1.10. The SLArrays(48) and LArrays testsets pass; only the DiffEq testset (which AD-differentiates SLArrays through the full OrdinaryDiffEq/SciMLBase/RecursiveArrayTools/NonlinearSolve stack) can't be satisfied.Resolution-floor bumps that ARE genuinely needed (and correct): ForwardDiff 0.10.3→0.10.13 (StaticArrays 1.0 needs ≥0.10.13), OrdinaryDiffEq 6→6.62.0 (first allowing RAT 3.x), PreallocationTools 0.4→0.4.6 (
enlargediffcache!), RecursiveArrayTools 3.1→3.2.0 (_getindex), ChainRulesCore→1.18, ArrayInterface→7.6, PrecompileTools→1.2, MacroTools→0.5.5.But even then, three genuine blockers remain (none fixable by a floor bump):
RecursiveArrayTools._getindex(absent <3.2.0) →UndefVarError: _getindexprecompiling SciMLBase.FirstAutodiffJacError→type SArray has no field y(derivative_wrappers.jl:198, ODE 6.62) — the SLArray labels are lost through the ForwardDiff Jacobian path. RAT 3.2.0 also hitsMethod overwriting is not permittedonldiv!(A::T,b) where T<:Union{}(array_partition.jl:431).UndefVarError: require_one_based_indexing); pinning ~1.4 shifts SciMLBase 2.77 / ODE 6.87 / RAT 3.50 / NonlinearSolve into further precompile errors (AbstractNonlinearTerminationMode not defined). The floors don't compose into a consistent precompilable set on 1.10.Maintainer options: (a) move the heavy DiffEq/SLArray AD integration test into a group NOT run at downgrade (keep SLArrays/LArrays in downgrade); (b) coordinate a stack-floor raise that's actually consistent+precompilable on 1.10 (non-trivial given StaticArrays 1.5 precompile breakage on 1.10); or (c) leave downgrade disabled. No tests were loosened; no PR opened.
From the SciML downgrade re-enablement pass.