Skip to content

Downgrade: raise RecursiveArrayTools compat floor to 4.2.0 (InterfaceI downgrade resolve)#3750

Draft
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downgrade-floor
Draft

Downgrade: raise RecursiveArrayTools compat floor to 4.2.0 (InterfaceI downgrade resolve)#3750
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downgrade-floor

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Problem

The Downgrade workflow (Downgrade Tests - InterfaceI) fails at resolution with:

Unsatisfiable requirements detected for package RecursiveArrayTools [731186ca]:
 ├─restricted to versions 4.2.0 - 4 by OrdinaryDiffEqTsit5, leaving only versions: 4.2.0 - 4.3.1
 └─restricted to versions 4.0.0 by an explicit requirement — no versions left

RecursiveArrayTools is declared in the root OrdinaryDiffEq Project.toml only as a
test dependency ([extras] / [targets].test) with no [compat] entry. As a result
julia-downgrade-compat pins it to the bare major floor 4.0.0.

Every in-tree sublibrary (OrdinaryDiffEqTsit5, OrdinaryDiffEqRosenbrock, etc.) is
pulled in via [sources] path-deps and is therefore skipped from downgrade — it stays
at its current version, which requires RecursiveArrayTools >= 4.2.0. So the downgrade
pin of 4.0.0 is below what the sublibraries require, and the resolve has no solution.

The conflict is downgrade-specific: the latest-versions CI does not fail in InterfaceI
for this reason (the resolver picks a modern RecursiveArrayTools there).

Fix

Add an explicit [compat] RecursiveArrayTools = "4.2.0" to the root Project.toml. 4.2.0
is the smallest RecursiveArrayTools co-installable with the sublibraries (which all pin
>= 4.2.0), so it is a genuine minimum, not an arbitrary bump. No upper bound is touched.

Verification (resolution only, not full test suite)

Ran the actual julia-actions/julia-downgrade-compat (Resolver.jl --min=@deps) on
Julia 1.10 (the LTS downgrade floor), with the same effective skip list the SciML
centralized workflow uses (stdlibs ∪ all [sources] sublib names):

  • Before (no RecursiveArrayTools compat): the merged InterfaceI resolve selects
    RecursiveArrayTools 4.0.0, which is incompatible with the in-tree
    OrdinaryDiffEqTsit5 (>= 4.2.0).
  • After (RecursiveArrayTools = "4.2.0"): the merged resolve selects
    RecursiveArrayTools 4.2.0, co-installable with the sublibraries.

CI will confirm the full build/test.


This PR should be ignored until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

…t floor unresolvable at downgrade minimum)

The root package listed RecursiveArrayTools only as a test dependency
([extras]/[targets]) with no [compat] entry, so julia-downgrade-compat
pinned it to the bare major floor 4.0.0. Every in-tree sublibrary
(OrdinaryDiffEqTsit5, etc., pulled in via [sources] and therefore skipped
from downgrade) requires RecursiveArrayTools >= 4.2.0, so the InterfaceI
downgrade resolve was Unsatisfiable:

  RecursiveArrayTools restricted to 4.2.0-4 by OrdinaryDiffEqTsit5,
  but restricted to 4.0.0 by an explicit requirement -> no versions left.

Adding an explicit [compat] floor of 4.2.0 makes the downgrade pin the
smallest RecursiveArrayTools that is co-installable with the sublibraries.
Verified with julia-downgrade-compat (Resolver.jl --min=@deps) on Julia
1.10 (LTS floor): the merged InterfaceI resolve now selects
RecursiveArrayTools 4.2.0 instead of 4.0.0.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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