Skip to content

ProbNumDiffEq downstream job uses Julia 1.10 for a Julia 1.12 test environment #4186

Description

@ChrisRackauckas-Claude

Summary

The ProbNumDiffEq.jl/Downstream/1.10 job has two independent incompatibilities:

  1. the exact downstream test environment requires Julia 1.12 and JET 0.11.1, while the workflow runs Julia 1.10;
  2. TaylorIntegration 0.18.15 imports SciMLBase-owned ODE problem/function types through OrdinaryDiffEqCore, and those implicit re-exports were removed.

Both reproduce on an unmodified detached checkout of 4cb802090d69e83e13a43c2490d9de40bb3216bc with ProbNumDiffEq at 4c6cf2956a6c26546cf8f3ab0a237e1b17158c00 and Julia 1.10.11.

Workflow reproducer

git worktree add --detach /tmp/ode-master 4cb802090d69e83e13a43c2490d9de40bb3216bc
git clone https://github.com/nathanaelbosch/ProbNumDiffEq.jl.git /tmp/ode-master/downstream
git -C /tmp/ode-master/downstream checkout --detach 4c6cf2956a6c26546cf8f3ab0a237e1b17158c00
cd /tmp/ode-master
JULIA_DEPOT_PATH=/tmp/probnum-depot GROUP=Downstream julia +1.10 --project=downstream -e 'using Pkg; Pkg.develop(PackageSpec(path=".")); Pkg.develop(map(path -> Pkg.PackageSpec(; path = joinpath("lib", path)), readdir("lib"))); Pkg.update(); Pkg.test(coverage=true)'

The command exits 1 when Pkg.test resolves the test environment:

Warning: julia version requirement for project not satisfied
ERROR: Unsatisfiable requirements detected for package JET [c3a54625]:
 JET [c3a54625] log:
 ├─restricted to versions 0.11.1-0.11 by project [3c3524ba], leaving only versions: 0.11.1-0.11.6
 └─restricted by julia compatibility requirements to versions: 0.8.22-0.9.18 or uninstalled — no versions left

ProbNumDiffEq's test/Project.toml has:

JET = "0.11.1"
julia = "1.12"

Those constraints were added by nathanaelbosch/ProbNumDiffEq.jl@e0ed536. The package project still supports Julia 1.10, but its current test project does not.

Independent TaylorIntegration failure

After the develop/update phase, this focused reproducer:

JULIA_DEPOT_PATH=/tmp/probnum-depot julia +1.10 --project=downstream -e 'using OrdinaryDiffEq, TaylorIntegration'

reports:

ERROR: LoadError: UndefVarError: `ODEFunction` not defined
in expression starting at .../TaylorIntegration/ext/TaylorIntegrationDiffEqExt.jl:3
Error during loading of extension TaylorIntegrationDiffEqExt of TaylorIntegration

TaylorIntegration 0.18.15 contains:

using OrdinaryDiffEqCore:
    ODEFunction,
    ODEProblem,
    DynamicalODEProblem,
    @cache

The first three names are owned by SciMLBase; only @cache belongs to the Core solver-extension API. 661f605 removed Core's blanket @reexport using SciMLBase, exposing this downstream non-public dependency. fd8861e made downstream failures propagate.

Suggested remediation

The ProbNumDiffEq downstream job needs to run Julia 1.12 if it is intended to test the current downstream test environment. That change alone is insufficient: TaylorIntegration must import ODEFunction, ODEProblem, and DynamicalODEProblem from SciMLBase and retain only @cache from OrdinaryDiffEqCore. Restoring the blanket Core re-export would make dependencies rely on non-owning/internal API again.

Until those downstream changes land, this workflow entry cannot be made green by an OrdinaryDiffEq source fix. It should either be updated to Julia 1.12 after coordinating the TaylorIntegration change or temporarily removed.

CI

Original failing job: https://github.com/SciML/OrdinaryDiffEq.jl/actions/runs/31294134149/job/93196329841

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions