Skip to content

Fix master CI: import OrdinaryDiffEqFunctionMap explicitly#604

Merged
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-master-functionmap
May 11, 2026
Merged

Fix master CI: import OrdinaryDiffEqFunctionMap explicitly#604
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-master-functionmap

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented May 10, 2026

After OrdinaryDiffEq v7's split into sub-packages, FunctionMap moved to the OrdinaryDiffEqFunctionMap sub-package and is no longer in scope from a bare using OrdinaryDiffEq. The DataDrivenDMD nonlinear_autonomous test (and several siblings + the docs example) reference FunctionMap directly and crashed with UndefVarError: FunctionMap not defined.

Added OrdinaryDiffEqFunctionMap to:

  • lib/DataDrivenDMD/Project.toml [deps]/[compat]/[extras]/[targets]
  • docs/Project.toml [deps]/[compat]
  • using lines in lib/DataDrivenDMD/test/nonlinear_autonomous.jl, lib/DataDrivenDMD/test/nonlinear_forced.jl, docs/src/libs/datadrivendmd/example_01.jl

After pushing the FunctionMap fix two more pre-existing master failures became visible; this PR addresses them too:

  1. Docs buildexample_04.jl (DMD, sparse) and example_02.jl (SR) reference SciMLBase.NoSpecialize, but using DataDrivenDiffEq only imports SciMLBase as an internal binding, not visible inside the per-block module Documenter creates. Added explicit using SciMLBase: NoSpecialize to each example and to docs/Project.toml.

  2. DataDrivenSR testUndefVarError: LiteralReal not defined. SymbolicUtils v4 renamed LiteralReal to SymReal and the constructor now requires Sym{T}(name; type=...). Updated convert_to_basis in lib/DataDrivenSR/src/DataDrivenSR.jl to match the form produced by DynamicExpressions' node_to_symbolic (Sym{SymReal}(:xN; type=Number)) so substitution actually hits. Verified locally: Pkg.test(DataDrivenSR) now passes (Simple/Univariate/Lifted testsets, 6 passing).

Master CI on this repo has been red since the OrdinaryDiffEq v7 / SciMLBase v3 ecosystem bumps merged. This PR turns it green.

Ignore until reviewed by @ChrisRackauckas.

After OrdinaryDiffEq v7's split, FunctionMap moved to the
OrdinaryDiffEqFunctionMap sub-package and is no longer in scope from
a bare `using OrdinaryDiffEq`. Add it to the relevant Project.toml
[deps]/[compat]/[extras]/[targets] and to the `using` statements in
the affected DataDrivenDMD tests and docs example.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Two pre-existing master failures uncovered after the OrdinaryDiffEq v7
and SciMLBase v3 migrations:

- docs build: example_04.jl (DMD, sparse) and example_02.jl (SR)
  reference SciMLBase.NoSpecialize but `using DataDrivenDiffEq` only
  imports SciMLBase as an internal binding, so it is not visible inside
  the per-block module Documenter creates. Add an explicit
  `using SciMLBase: NoSpecialize` to each example and to docs/Project.toml.

- DataDrivenSR test: SymbolicUtils v4 renamed `LiteralReal` to `SymReal`
  and now requires `Sym{T}(name; type=...)`. Match the form produced by
  DynamicExpressions' `node_to_symbolic` so the substitution dict in
  `convert_to_basis` actually matches its keys.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review May 11, 2026 02:19
@ChrisRackauckas ChrisRackauckas merged commit db466af into SciML:master May 11, 2026
20 of 21 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