SciML / SciML/DiffEqCallbacks.jl

Downgrade CI resolves incompatible OrdinaryDiffEqRosenbrock/Core versions

Open Beginner friendly
#334 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
100
Forks
54
Avg merge
3h 29m
Merged PRs (30d)
8

Description

Problem

The Core Downgrade workflow currently fails on master and on unrelated pull requests because it resolves an incompatible pair:

  • OrdinaryDiffEqRosenbrock v1.8.0
  • OrdinaryDiffEqCore v1.32.0

OrdinaryDiffEqRosenbrock then fails to precompile:

WARNING: could not import OrdinaryDiffEqCore.namify into OrdinaryDiffEqRosenbrock
ERROR: LoadError: UndefVarError: `namify` not defined

The failure surfaces when Core/domain_tests.jl loads OrdinaryDiffEqRosenbrock; it is not a DiffEqCallbacks test assertion.

CI evidence

Bisect result

The first failing repository run was at 1fac1f5d. The only commit between the last success and first failure is 1fac1f5d (QA: scan the Functors package extension (#331)), which changed only test/qa/Project.toml and test/qa/qa.jl. Project.toml and the Downgrade workflow are identical at the last-success and first-failure commits, including:

OrdinaryDiffEqRosenbrock = "1.8.0, 2"

Therefore there is no repository source commit to bisect further; the transition is resolver/registry-state dependent.

Local reproduction

On Julia 1.10.11 in a fresh local environment:

using Pkg
Pkg.add([
    PackageSpec(name = "OrdinaryDiffEqCore", version = v"1.32.0"),
    PackageSpec(name = "OrdinaryDiffEqRosenbrock", version = v"1.8.0"),
])
using OrdinaryDiffEqRosenbrock

This exits 1 with the same missing namify import.

Updating only OrdinaryDiffEqRosenbrock to v1.18.1 while retaining OrdinaryDiffEqCore v1.32.0 loads successfully:

loaded OrdinaryDiffEqRosenbrock 1.18.1
loaded OrdinaryDiffEqCore 1.32.0

Suggested fix

Raise the test compat floor to a known compatible Rosenbrock release, for example OrdinaryDiffEqRosenbrock = "1.18.1, 2", or add the appropriate upstream compatibility bound so the downgrade resolver cannot select the incompatible pair.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with test/qa/Project.toml and the Core/domain_tests.jl entry point, then inspect the Downgrade workflow and reproduce the resolver failure on Julia 1.10.11. Done means the downgrade environment no longer selects the incompatible OrdinaryDiffEqRosenbrock/Core pair and the affected workflow passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, julia
Domain
ci-cd, testing-qa
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.