Skip to content

Raise BVProblemLibrary DiffEqBase compat floor to 6.158 (fix downgrade CI)#202

Merged
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-bvproblemlibrary-downgrade-floor
Jun 21, 2026
Merged

Raise BVProblemLibrary DiffEqBase compat floor to 6.158 (fix downgrade CI)#202
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-bvproblemlibrary-downgrade-floor

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Problem

The downgrade-sublibraries / test (lib/BVProblemLibrary) job is red on master. It fails with:

ERROR: LoadError: UndefVarError: `BVPFunction` not defined
  @ lib/BVProblemLibrary/src/linear.jl:22

Root cause (downgrade)

lib/BVProblemLibrary/Project.toml declared DiffEqBase = "6, 7". The downgrade resolver therefore selected DiffEqBase 6.0.0, an ancient release that:

  • predates BVPFunction (re-exported into DiffEqBase from SciMLBase), which src/linear.jl and src/BVProblemLibrary.jl use throughout; and
  • does not even precompile on Julia 1.10 (Base.@_pure_meta import failure, combine_axes method-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 provides BVPFunction.

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 Pkg compat (Aqua deps_compat on Julia 1.12)

Touching lib/BVProblemLibrary/Project.toml makes the sublibraries / lib/BVProblemLibrary [QA] job run, which exposed a pre-existing latent Aqua finding on Julia 1.12 (it does not fire on 1.10):

BVProblemLibrary does not declare a compat entry for the following extras: Pkg
Aqua deps_compat: Test Failed ... isempty(result) -> Pkg

Pkg is in [extras]/[targets] (used by test/runtests.jl to activate the qa env) but had no [compat] entry. Added Pkg = "1.10", matching the existing Markdown/Test stdlib pins. Real fix, no test weakening.

Local verification

  • Julia 1.10 (downgrade channel): at the new floor pinned to its minimum (DiffEqBase 6.158 + SciMLBase 2.60.0) BVProblemLibrary precompiles and loads, prob_bvp_linear_1 is a BVProblem{..., BVPFunction{...}}, and Pkg.test() passes. DiffEqBase 6.157 is correctly rejected (empty intersection ... 6.158.0-7), confirming the floor is tight.
  • Julia 1.12.6 (the failing QA job): DIFFEQPROBLEMLIBRARY_TEST_GROUP=QA Pkg.test() for lib/BVProblemLibrary now reports Aqua | 10 10 (was 9 pass / 1 fail before adding the Pkg compat).

Please ignore until reviewed by @ChrisRackauckas

ChrisRackauckas and others added 2 commits June 19, 2026 04:48
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>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 21, 2026 11:09
@ChrisRackauckas ChrisRackauckas merged commit 8dfc64d into SciML:master Jun 21, 2026
26 checks passed
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