Skip to content

Fix docs build: import FunctionMap/Rodas4P for OrdinaryDiffEq v7#610

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-docs-ode-v7-exports
Jun 16, 2026
Merged

Fix docs build: import FunctionMap/Rodas4P for OrdinaryDiffEq v7#610
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-docs-ode-v7-exports

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Problem

The Documentation / Build and Deploy Documentation check on master is failing. The Documenter build terminates with [:example_block] because every @example tpp-advanced block after the intensity/integrated_intensity definitions in docs/src/applications/advanced_point_process.md throws:

UndefVarError: `FunctionMap` not defined in `Main.var"__atexample__named__tpp-advanced"`
UndefVarError: `Rodas4P` not defined in `Main.var"__atexample__named__tpp-advanced"`

(The single UndefVarError: λ further down is a cascade: λ = intensity(...) never binds because intensity itself fails on FunctionMap.)

Root cause

The docs environment resolves OrdinaryDiffEq v7.0.0. In v7 the package dropped its blanket @reexport and now only exports a curated solver set (Tsit5, Vern6-9, Rosenbrock23, Rodas5P, FBDF, ...). FunctionMap and Rodas4P are no longer reachable via using OrdinaryDiffEq — they live in the OrdinaryDiffEqFunctionMap and OrdinaryDiffEqRosenbrock subpackages. The tutorial uses both, so the build broke once v7 entered the docs resolve. The main package already migrated for v7 (it added OrdinaryDiffEqFunctionMap to its test deps); the docs environment was simply not updated.

Fix

  • Add OrdinaryDiffEqFunctionMap and OrdinaryDiffEqRosenbrock to docs/Project.toml (deps + compat).
  • Import the specific solvers in the tutorial: using OrdinaryDiffEqFunctionMap: FunctionMap and using OrdinaryDiffEqRosenbrock: Rodas4P.

No solver algorithm or prose change — Rodas4P is still registered/exported by OrdinaryDiffEqRosenbrock v2, so the documented behavior is preserved exactly.

Local verification

Against the exact CI resolve (OrdinaryDiffEq v7.0.0, OrdinaryDiffEqFunctionMap v2.0.0, OrdinaryDiffEqRosenbrock v2.3.0) on Julia 1.10, in the docs/ environment:

  • Pkg.instantiate() resolves cleanly with the new deps.
  • Reproducing the exact failing patterns:
    • solve(dprob, FunctionMap()) on a DiscreteProblem with a DiscreteCallback -> retcode = Success, 23 saved points.
    • solve(oprob, Rodas4P()) on a stiff ODEProblem -> retcode = Success.
  • JuliaFormatter (sciml style, format_markdown=true) leaves the edited import block unchanged.

Please ignore until reviewed by @ChrisRackauckas.

OrdinaryDiffEq v7 dropped the blanket `@reexport` and now only exports a
curated set of solvers. `FunctionMap` and `Rodas4P` are no longer available
via `using OrdinaryDiffEq`; they now live in the `OrdinaryDiffEqFunctionMap`
and `OrdinaryDiffEqRosenbrock` subpackages. The advanced point process
tutorial used both, so every `@example tpp-advanced` block downstream of the
`intensity`/`integrated_intensity` definitions failed with
`UndefVarError: FunctionMap not defined` / `Rodas4P not defined`, terminating
the Documenter build.

Add the two subpackages to the docs environment and import the specific
solvers in the tutorial. This mirrors the main package, which already added
OrdinaryDiffEqFunctionMap to its test dependencies for the v7 migration.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 16, 2026 08:53
@ChrisRackauckas ChrisRackauckas merged commit e269c89 into SciML:master Jun 16, 2026
2 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