Align downstream LinearSolve compatibility#4730
Conversation
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Execution scratchpad for commit 39c88bc:
Next: inspect draft PR CI and base-branch freshness. |
|
CI triage update:
|
|
Focused CI result:
This confirms the LinearSolve environment alignment across the full configured Downstream version matrix. QA is still running; its clean-master Aqua/JET failures are documented in #4670. |
|
QA CI triage: The QA job ended with The new |
|
Base freshness update: Upstream master advanced by merged docs resolver fix #4729. After fetching both upstream and origin and verifying that the remote feature branch still contained only commit 39c88bc, I rebased and updated the branch with Pre-rebase CI reached a terminal state: 52 successful checks, 11 failures, 1 cancelled benchmark leg, and 4 skipped matrix placeholders. The complete Downstream matrix passed 31/31 on Julia LTS, stable, and prerelease. Red checks were exact-base failures already assigned to separate investigations, the fork-token benchmark comment 403, the exact-base QA runner-loss condition, and one NeuralPDE randomized training tolerance miss (exact-base job passed; single-job rerun API was unavailable with current permissions). The rebase restarts CI and provides another sample for that NeuralPDE check. |
Context
While validating the Optimization.jl downstream workflow, the ModelingToolkit
GROUP=Alldownstream job failed after earlier groups had loaded LinearSolve 3.87.0. The downstream group then resolved LinearSolve 4.3.0 and loaded ControlSystemsMTK, whose ArnoldiMethod extension tried to accessLinearSolve.ArnoldiMethodJLin the already-loaded 3.87.0 module.Original failure: https://github.com/SciML/Optimization.jl/actions/runs/29184114746/job/86627032925
LinearSolve 4.3.0 introduced the ArnoldiMethod extension in SciML/LinearSolve.jl#1071. A minimal two-environment reproducer fails with a preloaded LinearSolve 3.87.0 plus an inner LinearSolve 4.3.0 environment, while the same reproducer passes with LinearSolve 4.2.1.
Changes
test/downstream/Project.toml.3.66compatibility range to the root test environment so both environments resolve the same LinearSolve major version.This changes test environment resolution only; it does not change public API.
Prompt and process record
The original request was to update Optimization.jl downstream coverage. Repository instructions require a separate investigation whenever a failure reproduces on unmodified master, so this fix is intentionally split from that Optimization change.
Investigation steps:
0c663b6cc74f18b07b3b9aff95109b5ac1775db6and ModelingToolkit038c30a79a0e0ec09f9b6eff4cf1eaa44a088e15.ee7dd34d8b7cfe8a085e0fa04cec28a607053f66still resolves the same 3.87.0-loaded/4.3.0-inner mismatch before this patch.Local validation
Julia 1.12.6:
Downstream | 31 pass | 31 total | 8m39.5s; it printed preloaded LinearSolve 3.87.0 and resolved the inner downstream environment to 3.87.0.GROUP=Downstream julia --project=. -e "using Pkg; Pkg.test(; coverage=false)":Downstream | 31 pass | 31 total | 23m38.9s, followed byTesting ModelingToolkit tests passed.GROUP=QA ... Pkg.test(): newDownstream LinearSolve compatibilitytest passed 2/2. The overall QA run reproduced two unrelated clean-master failures (Aqua piracy and JET) already tracked in QA: track pre-existing Aqua/JET/ExplicitImports findings (root + ModelingToolkitBase) #4670; they are being investigated separately and were not skipped or silenced here.Runic --check .: passed.git diff --check: passed.