Raise root LinearSolve compat floor to 5 to fix Downgrade CI - #1095
Conversation
The source-tree sublibraries (NonlinearSolveBase, NonlinearSolveFirstOrder, NonlinearSolveQuasiNewton) require LinearSolve 5, but the root Project.toml floor was reverted to 4.3 in 60736b5 (SciML#1079). The Downgrade workflow resolves the root project at its compat floors with the sublibraries fixed as path dependencies, so LinearSolve pinned at 4.3.0 conflicts with the sublibraries' strict LinearSolve = "5" requirement and resolution fails before any test runs. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Status update after the first CI round on this PR. The LinearSolve floor fix works as intended: the Downgrade job now gets past resolution (previously it died in ~40 s with The remaining Downgrade failure is not a downgrade problem. The job now fails 5m39s in with exactly one test failure: Investigation of why this cannot be fixed by raising compat floors:
Root cause of the residual failure: 74405d3 (#1051) changed Per repo policy I am not loosening the tolerance, skipping, or re-marking the test broken in this PR. Tracking issue with the full evidence table: #1096. This PR remains the correct and complete fix for the Downgrade resolution failure; the Downgrade job will go green once #1096 is resolved (the robustness suite outcome is the only remaining failure in that job). |
This PR should be ignored until reviewed by @ChrisRackauckas.
Problem
The "Downgrade / Downgrade Tests - Core" job (root package downgrade test) fails on master and on nearly all recent PRs. Failing master run: https://github.com/SciML/NonlinearSolve.jl/actions/runs/29706251701 (job fails ~40s in, during
Pkg.test's sandbox resolve, before any test runs):Root cause
The Downgrade workflow min-resolves the root Project.toml at its compat floors, while the
[sources]sublibraries are kept fixed as path dependencies (they are on the downgrade skip list). PR #1070 (6264446) aligned the tree: sublibraries went toLinearSolve = "5"and the root floor was raised toLinearSolve = "5"to match.Commit 60736b5 ("Require operator-capable NonlinearSolveBase", #1079, merged 2026-07-16) reverted the root entry from
LinearSolve = "5"back toLinearSolve = "4.3, 5"while bumping the NonlinearSolveBase floor. Since the in-tree NonlinearSolveBase / NonlinearSolveFirstOrder / NonlinearSolveQuasiNewton all requireLinearSolve = "5", the downgrade resolution (root LinearSolve pinned at its 4.3.0 floor) became unsatisfiable. The first master Downgrade run at 60736b5 (https://github.com/SciML/NonlinearSolve.jl/actions/runs/29487978734) already fails with this exact conflict.Fix
Raise the root floor back to
LinearSolve = "5", matching the source-tree sublibraries. No version bump, following the precedent of the earlier floor-alignment PRs (#1059, #1070, #1075).Verification
Reproduced and verified locally on Julia 1.10.11 (the workflow's LTS) in a fresh clone, emulating CI exactly: computed the effective skip list (stdlibs + all
[sources]deps) asSciML/.githubdowngrade.yml@v1does, ranjulia-actions/julia-downgrade-compat@v2'sdowngrade.jlwithmode=deps, thenPkg.instantiate(); Pkg.build()andPkg.testfails with the identicalUnsatisfiable requirements detected for package LinearSolveerror as CI.Testing NonlinearSolve tests passed, exit code 0.The remaining test failures seen in the 2026-07-15 master Downgrade run (23 Test Problems: Broyden broken-test list) were already fixed by #1051 (74405d3), so with this floor fix the job is green again.
🤖 Generated with Claude Code