Skip to content

docs(api): thematic API reference generated from coverage manifest - #856

Open
ocots wants to merge 2 commits into
mainfrom
docs/api-reference
Open

docs(api): thematic API reference generated from coverage manifest#856
ocots wants to merge 2 commits into
mainfrom
docs/api-reference

Conversation

@ocots

@ocots ocots commented Aug 14, 2026

Copy link
Copy Markdown
Member

Summary

  • Replaces the old hand-maintained api/public.md (now in docs/attic/) with thematic API-reference pages generated at build time.
  • docs/api_reference.jl now parses the contract in docs/reports/99-api-coverage.md, builds a API_THEMES manifest, and writes one page per theme (modelling, problem, solving, options, solution, flows, geometry, types, io, qualified, internals).
  • Adds a strict coverage check: every exported symbol must appear in exactly one theme; every non-exported symbol in a theme must be in qualified. The build fails with error on drift.
  • Renames the old auto-generated Private page to Internals (per the Handbook wording) and keeps describe.jl in it.
  • Rewrites docs/src/api/ecosystem.md to list the seven control-toolbox packages with @extref links, including the missing CTLie.
  • Generated pages are created before makedocs and removed afterward by the existing _cleanup_pages mechanism, so only ecosystem.md remains tracked.

Test plan

  • julia --project=docs docs/make.jl completes with exit 0.
  • VitePress build finishes successfully.
  • docs/src/api/ contains only ecosystem.md after the build.
  • API Reference sidebar shows the new thematic pages plus Ecosystem.
  • Reviewer check: no unintentional symbol drift (re-run names(OptimalControl) and compare with the generated pages).

Notes

This branch is based on docs/infrastructure (PR 2) because the page skeleton with the final @id anchors is not yet on main. It should be rebased/retargeted to main once PR 2 is merged.

Generated with Devin

ocots and others added 2 commits August 14, 2026 11:48
Make the documentation buildable again, archive the pre-v2.1 pages,
and land the final capability-first skeleton so the remaining
content PRs do not touch the build environment.

- realign docs/Project.toml with the root [compat]
- add CTLie, DifferentiationInterface, ForwardDiff, OrdinaryDiffEqTsit5
- fix docs/make.jl: defensive extension loading, InterLinks, sitemap, Literate
- archive old docs/src/*.md and api/{public,subpackages}.md to docs/attic/
- create stub pages for the new sitemap
- track docs/src/assets/Manifest.toml and Project.toml for reproducibility

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- Replace the hand-maintained api/public.md with theme pages generated
  from docs/reports/99-api-coverage.md at build time.
- Add missing/stale coverage checks against names(OptimalControl) so the
  reference cannot drift from the code again.
- Rename the old Private page to Internals and keep describe.jl in it.
- Rewrite api/ecosystem.md with the seven control-toolbox packages,
  including the missing CTLie link.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
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.

1 participant