Downgrade CI: raise SciMLBase compat floor to 2.146#92
Merged
ChrisRackauckas merged 2 commits intoJun 21, 2026
Merged
Conversation
The downgrade CI (which pins SciMLBase to its compat floor) was failing with an unsatisfiable resolution. With SciMLBase pinned to the previous floor (2.49), the test environment's solver stack (OrdinaryDiffEq / OrdinaryDiffEqSDIRK / ModelingToolkit / MethodOfLines, pulled in via test/Project.toml) could only resolve to versions on the old FastBroadcast 0.3 line, while RecursiveArrayTools (dragged in at 3.54 by the SciMLBase dependency graph) requires FastBroadcast 1.3 — leaving no FastBroadcast version installable. The SciML stack switches from FastBroadcast 0.3 to 1.3 at OrdinaryDiffEqCore 3.26, which requires SciMLBase >= 2.146. Raising the floor to 2.146 lets the downgrade resolution land on a single, internally consistent FastBroadcast-1.3 stack (verified locally on Julia 1.10: SciMLBase 2.146.0, OrdinaryDiffEq 6.111.0, OrdinaryDiffEqSDIRK 1.14.0, RecursiveArrayTools 3.54.0, FastBroadcast 1.3.2). The package source only uses long-stable SciMLBase API (ODEProblem/ODEFunction/CallbackSet/ DiscreteCallback), so the raised floor is purely a downgrade-CI accommodation and does not restrict any real functionality; the 3.x line remains supported via the existing "3.1" range entry. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Core (julia 1 / pre) and QA (julia 1) test jobs failed with a null conclusion on the Run tests step (and all subsequent steps) on self-hosted runners — the lost-communication infrastructure flake, not a test failure (julia-buildpkg, i.e. resolution + precompilation, succeeded in every case). Verified locally that Core passes on Julia 1.12 and QA passes on Julia 1.11/1.12, so this empty commit re-runs CI to land the flaked jobs on healthy runners. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The Downgrade CI job on
mainis red with an unsatisfiable package resolution. The downgrade workflow pins each direct dependency to its compat floor; withSciMLBase = "2.49, 3.1"it pins SciMLBase to2.49.0. At that floor, the test environment's solver stack (OrdinaryDiffEq/OrdinaryDiffEqSDIRK/ModelingToolkit/MethodOfLines, brought in viatest/Project.toml) can only resolve to versions on the FastBroadcast 0.3 line, whileRecursiveArrayTools(dragged to 3.54 by the SciMLBase dependency graph) requires FastBroadcast 1.3 — leaving no installable FastBroadcast version:Root cause
The SciML stack switches from FastBroadcast
0.3to1.3atOrdinaryDiffEqCore 3.26, which requiresSciMLBase >= 2.146. Any SciMLBase floor below2.146forces the resolver onto the old FastBroadcast0.3line, which is incompatible with the modernRecursiveArrayToolsthat the rest of the graph pulls in.Fix
Raise the SciMLBase compat floor from
2.49to2.146. The package source only uses long-stable SciMLBase API (ODEProblem/ODEFunction/CallbackSet/DiscreteCallback/AutoSpecialize), so this is purely a downgrade-CI accommodation and does not restrict real functionality; the 3.x line stays supported via the existing3.1range entry. This continues the same pattern as #87 (which raised the floor2.0 → 2.49).Local verification (Julia 1.10 / lts)
Reproduced the downgrade resolution failure locally at the old floor, then confirmed it resolves at
2.146to a single internally consistent FastBroadcast-1.3 stack:Pkg.test(; force_latest_compatible_version=false, allow_reresolve=false)gets past resolution (the failing step) and into the test run with this floor. On the PR branch's own CI, Downgrade Tests is now green.Remaining red checks are NOT in-repo bugs
The repo's other red checks on
main/ this PR are infrastructure, not source/dependency bugs, and are out of scope for this code change:tests / Core (julia 1),tests / Core (julia pre),tests / QA (julia 1)— self-hosted-runner lost-communication flakes, not test failures. In each failing job, every step is green throughSet test group env (GROUP)(so checkout,setup-julia, andjulia-buildpkg— i.e. resolution + precompilation — all succeeded), and then theRun tests …step and every step after it report anullconclusion (the runner died mid-step; a real test failure would record the test step asfailurewith the coverage steps still resolving). All three ran onself-hosted-…-runner-*boxes. Verified locally that the groups genuinely pass on the affected versions:boundary_conditions17/17,dirichlet_source2/2,explicit_imports2/2,geometry5/5,heat2/2,ode_problem13/13,porous_medium3/3,problem24/24,robin_diffusion2/2),EXIT=0.7 pass / 2 brokenboth times — the 2 broken are the pre-existing@test_brokenplaceholders for QA: Aqua/JET findings marked @test_broken pending fix #84 (Aqua deps_compat + JET), not regressions.These clear on a CI re-run that lands on a healthy runner; no source change is warranted.
Documentation (on
mainonly) — the docs build succeeds;deploydocsfails atgit fetch upstream(exit 128, "DOCUMENTER_KEY … not correctly set up"), i.e. a missing/invalid gh-pages deploy key (repo secret). The deploy step only runs on push tomain, which is why this PR'sDocumentationcheck is green (PRs build but do not deploy). Fixing it requires setting theDOCUMENTER_KEYsecret on the repo, not a code change.Please ignore until reviewed by @ChrisRackauckas