Raise BVProblemLibrary DiffEqBase compat floor to 6.158 (fix downgrade CI)#202
Merged
ChrisRackauckas merged 2 commits intoJun 21, 2026
Conversation
The downgrade-sublibraries job for lib/BVProblemLibrary failed with `UndefVarError: BVPFunction not defined` because the compat floor `DiffEqBase = "6, 7"` let the downgrade resolver pick DiffEqBase 6.0.0. That ancient release predates `BVPFunction` (re-exported from SciMLBase) and does not even precompile on Julia 1.10 (Base.@_pure_meta / combine_axes method-overwriting errors). DiffEqBase only requires `julia = "1.10"` from 6.158 onward, and 6.158's SciMLBase floor (2.60.0) includes `BVPFunction`. Raising the lower bound to 6.158 makes the downgrade resolution pick a DiffEqBase that both precompiles on Julia 1.10 and provides `BVPFunction`. Verified locally on Julia 1.10: at the new floor (DiffEqBase 6.158 + SciMLBase 2.60.0) BVProblemLibrary loads and `Pkg.test()` passes; DiffEqBase 6.157 is correctly rejected by the new compat. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ia 1.12) The sublibraries QA job for lib/BVProblemLibrary fails on Julia 1.12 with Aqua's deps_compat check: "does not declare a compat entry for the following extras: Pkg". Pkg is listed in [extras]/[targets] (used by test/runtests.jl to activate the qa env) but had no [compat] entry. On Julia 1.10 Aqua does not flag this, but on 1.12 it does. Add `Pkg = "1.10"` (matching the existing Markdown/Test stdlib pins) so deps_compat passes. 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-sublibraries / test (lib/BVProblemLibrary)job is red onmaster. It fails with:Root cause (downgrade)
lib/BVProblemLibrary/Project.tomldeclaredDiffEqBase = "6, 7". The downgrade resolver therefore selected DiffEqBase 6.0.0, an ancient release that:BVPFunction(re-exported into DiffEqBase from SciMLBase), whichsrc/linear.jlandsrc/BVProblemLibrary.jluse throughout; andBase.@_pure_metaimport failure,combine_axesmethod-overwriting-during-precompilation error).From the registry, DiffEqBase only requires
julia = "1.10"starting at 6.158, and 6.158's SciMLBase dependency floor (2.60.0) already providesBVPFunction.Fix 1 — raise DiffEqBase floor
Raise the lower bound:
DiffEqBase = "6.158, 7". Raising a floor never loosens anything; it only excludes the broken-on-1.10 ancient versions. The 7.x line is unchanged.Fix 2 — add
Pkgcompat (Aqua deps_compat on Julia 1.12)Touching
lib/BVProblemLibrary/Project.tomlmakes thesublibraries / lib/BVProblemLibrary [QA]job run, which exposed a pre-existing latent Aqua finding on Julia 1.12 (it does not fire on 1.10):Pkgis in[extras]/[targets](used bytest/runtests.jlto activate theqaenv) but had no[compat]entry. AddedPkg = "1.10", matching the existingMarkdown/Teststdlib pins. Real fix, no test weakening.Local verification
BVProblemLibraryprecompiles and loads,prob_bvp_linear_1is aBVProblem{..., BVPFunction{...}}, andPkg.test()passes. DiffEqBase 6.157 is correctly rejected (empty intersection ... 6.158.0-7), confirming the floor is tight.DIFFEQPROBLEMLIBRARY_TEST_GROUP=QA Pkg.test()forlib/BVProblemLibrarynow reportsAqua | 10 10(was 9 pass / 1 fail before adding thePkgcompat).Please ignore until reviewed by @ChrisRackauckas