Skip to content

[CI Broken] Multiple CI failures: missing OptimizationBase dependency, Enzyme/MIRK test failure, and ModelingToolkit API breakage #398

@ChrisRackauckas-Claude

Description

@ChrisRackauckas-Claude

Summary

The CI on the master branch is currently failing with multiple issues affecting different test jobs. This was discovered during an automated CI health check.

Failed CI Jobs

  1. test (alldeps, 1.11) - Missing dependency failure
  2. test (alldeps, 1.11, lib/BoundaryValueDiffEqMIRK) - Test error in "Swirling Flow III"
  3. ModelingToolkit.jl/All/1 - Upstream API change in ModelingToolkit
  4. Format Check - Formatting issue

Error Details

1. Missing OptimizationBase Dependency (test alldeps, 1.11)

The main BoundaryValueDiffEq test suite fails at precompilation due to a missing dependency:

ERROR: LoadError: ArgumentError: Package BoundaryValueDiffEqCore does not have OptimizationBase in its dependencies

This affects BoundaryValueDiffEqCore, BoundaryValueDiffEqAscher, and BoundaryValueDiffEqMIRK packages. The error suggests that OptimizationBase needs to be added as a dependency to BoundaryValueDiffEqCore/Project.toml.

Root cause: BoundaryValueDiffEqCore attempts to import OptimizationBase but it is not declared in its dependencies.

2. Enzyme Mutability Error in MIRK Tests (Swirling Flow III)

The BoundaryValueDiffEqMIRK test suite has 1 test error in the "Swirling Flow III" test item:

EnzymeMutabilityException: Function argument passed to autodiff cannot be proven readonly.
If the function argument cannot contain derivative data, instead call autodiff(Mode, Const(f), ...)

This appears to be an issue with Enzyme.jl's automatic differentiation when computing Jacobians. The error suggests that Enzyme cannot prove that the function argument is readonly, which may indicate an incompatibility between the current versions of Enzyme.jl and the BoundaryValueDiffEqMIRK code.

Failed test: test/mirk_basic_tests.jl:267 - "Swirling Flow III"

3. ModelingToolkit Upstream API Change

The ModelingToolkit.jl downstream tests fail with:

ERROR: LoadError: UndefVarError: `generate_ODENLStepData` not defined in `ModelingToolkitBase`

This error occurs in downstream/src/systems/solver_nlprob.jl:1. The function generate_ODENLStepData appears to have been removed or renamed in a recent version of ModelingToolkitBase.

This is an upstream issue in ModelingToolkit.jl/ModelingToolkitBase.

CI Run Links

Suggested Fix Approach

  1. OptimizationBase dependency: Add OptimizationBase to the [deps] section in lib/BoundaryValueDiffEqCore/Project.toml

  2. Enzyme/MIRK issue: This may require updating how Enzyme is called for Jacobian computation, possibly by wrapping the function in Const() or adjusting the function annotation settings

  3. ModelingToolkit issue: This likely requires updating the downstream ModelingToolkit integration to match the latest API changes in ModelingToolkitBase. May need to check what replaced generate_ODENLStepData.

cc @ChrisRackauckas

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