Skip to content

Fix FBDMD documentation cross-reference - #675

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:codex/fix-dmdsvd-doc-reference
Sep 4, 2026
Merged

Fix FBDMD documentation cross-reference#675
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:codex/fix-dmdsvd-doc-reference

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Sep 4, 2026

Copy link
Copy Markdown
Member

Summary

Documenter 1.18 tightened @ref syntax so plain link text targets headings and code-form link text targets docstrings. Mark DMDSVD as code in the FBDMD docstring so strict cross-reference validation resolves the documented type again, without changing Documenter settings.

Ignore this PR until reviewed by @ChrisRackauckas.

Root cause

The failing workflow upgraded from Documenter 1.17.0 to 1.18.0. A minimized strict-docs git bisect identified JuliaDocs/Documenter.jl commit 16a8cdcb32c6dd79bb2b045c41108d6e3ad39943, which intentionally made [Name](@ref) a heading reference and [`Name`](@ref) a docstring reference. The stale FBDMD docstring used the former syntax for the DMDSVD type.

No separate runtime test was added: the strict documentation build is the exact discriminating regression test, and runtime behavior is unchanged.

Failing before

On unmodified master at d3325ea95ac70812e6a004e8e63020e0f31e7aff:

$ julia +release --project=docs docs/make.jl
[ Info: CrossReferences: building cross-references.
┌ Error: Cannot resolve @ref for md"[DMDSVD](@ref)" in docs/src/libs/datadrivendmd/koopman.md.
│ - Header or `@id` anchor with slug 'DMDSVD' in docs/src/libs/datadrivendmd/koopman.md does not exist.
│ - Header or `@id` anchor with slug 'DMDSVD' is not unique in docs/src/libs/datadrivendmd/koopman.md.
ERROR: LoadError: `makedocs` encountered an error [:cross_references] -- terminating build before rendering.

This reproduces the failure in https://github.com/SciML/DataDrivenDiffEq.jl/actions/runs/33438015785/job/99639084750.

Passing after

The same command with this one-line source fix, using Julia 1.12.6 and Documenter 1.19.0:

$ julia +release --project=docs docs/make.jl
[ Info: CrossReferences: building cross-references.
[ Info: CheckDocument: running document checks.
[ Info: Populate: populating indices.
[ Info: RenderDocument: rendering document.
[ Info: HTMLWriter: rendering HTML pages.
[ Info: Automatic `version="1.16.0"` for inventory from ../Project.toml
┌ Warning: Documenter could not auto-detect the building environment. Skipping deployment.

The process exited successfully; local deployment was skipped as expected.

Verification

$ GROUP=QA julia +release --project=. -e 'using Pkg; Pkg.test()'
Test Summary:     | Pass  Total     Time
Quality Assurance |   96     96  2m01.1s
Test Summary:       | Pass  Total   Time
JET Static Analysis |   11     11  40.0s
Testing DataDrivenDiffEq tests passed

$ GROUP=DataDrivenDMD_QA julia +release --project=. -e 'using Pkg; Pkg.test()'
Test Summary:       | Pass  Total  Time
Developer interface |    9      9  4.5s
Test Summary: | Pass  Total     Time
QA            |   21     21  2m36.1s
Testing DataDrivenDMD tests passed
Testing DataDrivenDiffEq tests passed

$ julia +release --project=.tmp/runic-env -m Runic --check lib/DataDrivenDMD/src/algorithms.jl
# exit 0

$ typos lib/DataDrivenDMD/src/algorithms.jl
# exit 0

GPU and downstream jobs were not run because this is a documentation-link syntax correction with no runtime code change.

Links

🤖 Generated with Codex CLI 0.151.0 (model: gpt-5.6-sol; session: local session ID 01a0598f-11b9-72d1-91d9-b2fbb186557d).

Mark DMDSVD as a code reference so Documenter resolves it as a docstring rather than a header.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: OpenAI Codex <noreply@openai.com>
Agent-Harness: Codex CLI 0.151.0
Agent-Model: gpt-5.6-sol
Agent-Session: local session ID 01a0598f-11b9-72d1-91d9-b2fbb186557d
@ChrisRackauckas-Claude
ChrisRackauckas-Claude force-pushed the codex/fix-dmdsvd-doc-reference branch from 42906d8 to 7b9f463 Compare September 4, 2026 05:58
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Hosted docs reached a separate current-master linkcheck failure after the code-reference fix: the unchanged STLSQ docstring link returns HTTP 404. The failing job is https://github.com/SciML/DataDrivenDiffEq.jl/actions/runs/33842475044/job/100927455267, and the same URL is present on unmodified master at

It is based upon [this Matlab implementation](https://raw.githubusercontent.com/eurika-kaiser/SINDY-MPC/e1dfd9908b2b56af303ee9fb30a133aced4fd757/utils/sparsifyDynamics.m).
. I am keeping that independent repair out of this one-line PR; it needs its own failing-before/passing-after linkcheck evidence.

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review September 4, 2026 21:25
@ChrisRackauckas
ChrisRackauckas merged commit ada1a84 into SciML:master Sep 4, 2026
23 of 24 checks passed
@ChrisRackauckas-Claude

ChrisRackauckas-Claude commented Sep 5, 2026

Copy link
Copy Markdown
Member Author

The complete documentation build now passes locally on this PR's unchanged source tree (7b9f46310fe6218c2ae570061ee35302d61f46fd, also tree-identical to fetched master ada1a846ee98343de0a6cc9aa4ec3af288e71d50).

The failed CI job terminated on a 404 from the pinned sparsifyDynamics.m source URL, not the FBDMD cross-reference. That exact URL currently returns HTTP 200, and the full local build succeeds with the existing link checks enabled. No source links, doctests, or failure settings were changed.

Exact command from the checkout, Julia 1.12.7:

TMPDIR=/home/crackauc/sandbox/tmp_20260831_204216_89854/.tmp JULIA_PKG_PRECOMPILE_AUTO=0 timeout 14400 /home/crackauc/.julia/juliaup/julia-1.12.7+0.x64.linux.gnu/bin/julia --project=docs docs/make.jl

The process exited 0. Terminal output includes:

[ Info: Populate: populating indices.
[ Info: RenderDocument: rendering document.
[ Info: HTMLWriter: rendering HTML pages.
[ Info: Automatic `version="1.16.0"` for inventory from ../Project.toml
Warning: Documenter could not auto-detect the building environment. Skipping deployment.

Redirect and large-example rendering warnings were also emitted and were not suppressed. The build's equivalent absolute-path rewrites in docs/Project.toml were restored afterward; the tracked worktree is clean. Local deployment was not performed or verified. The CI retry request was rejected with Must have admin rights to Repository; the current credentials cannot rerun this job. Hosted verification remains pending, and this local success does not turn the historical hosted check green.

Links:

🤖 Validation coordinated with Codex CLI 0.153.4 (model: gpt-6-astra; session: local session ID 01a0598f-11b9-72d1-91d9-b2fbb186557d).

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