Skip to content

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

Draft
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-bvproblemlibrary-downgrade-floor
Draft

Raise BVProblemLibrary DiffEqBase compat floor to 6.158 (fix downgrade CI)#202
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-bvproblemlibrary-downgrade-floor

Conversation

@ChrisRackauckas-Claude

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

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

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.

Local verification (Julia 1.10, the 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 (Aqua 10/10 + Load test).
  • DiffEqBase 6.157 is now correctly rejected by the compat (empty intersection between DiffEqBase@6.157 and project compatibility 6.158.0-7), confirming the floor is tight.

Please ignore until reviewed by @ChrisRackauckas

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>
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