SciML / SciML/LabelledArrays.jl
Downgrade CI: no Julia-1.10 [compat] floor set that resolves AND passes (DiffEq/SLArray AD test stack co-evolution)
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 125
- Forks
- 20
- Avg merge
- 6h 3m
- Merged PRs (30d)
- 10
Description
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: _getindexprecompiling 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 hitsMethod overwriting is not permittedonldiv!(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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the disabled downgrade workflow and its DiffEq testset, reproducing it on Julia 1.10.11 with an isolated depot. Inspect derivative_wrappers.jl:198 and array_partition.jl:431 alongside the listed dependency floors. Done requires a maintainer-selected resolution—moving the integration test, coordinating compatible floors, or leaving downgrade disabled—with the resulting workflow behavior documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- ci-cd, testing
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100