Documenter
Generate documentation from a saved run bundle. The build reads existing measurements and retains their comparison outcome; it does not rerun a check.
Generate and build a page
Install Documenter alongside PerfChecker in your documentation project. Load a real saved bundle, then generate its default version-comparison page:
using PerfChecker, Documenter
bundle = read_run_bundle("perf/results/ACTUAL-RUN/bundles/ACTUAL-BUNDLE")
documenter_page(bundle, "docs/src/generated/performance.md")Add "Performance" => "generated/performance.md" to the existing Documenter.makedocs pages list. Generate the page before building. For a small standalone local documentation build:
Documenter.makedocs(;
root = abspath("docs"), sitename = "Performance",
format = Documenter.HTML(prettyurls = false),
pages = ["Performance" => "generated/performance.md"])Open docs/build/generated/performance.html. The default summary reports measured series and comparisons; a single-release profile may be INCONCLUSIVE because it has no comparison.
Real saved output: generated Bibliography Markdown reports INCONCLUSIVE, 2 series, 0 comparisons. Its wrapper receipt and HTML build receipt record local Documenter and DocumenterVitepress builds of the allocation bundle.
Select evidence with document blocks
A query selects the saved observations that belong on the page:
query = PerformanceQuery(
id = "export-latency",
resources = [:observations, :comparison, :plots],
predicates = [
QueryPredicate("package", :equals, "Bibliography"),
QueryPredicate("feature", :equals, "export_bibtex"),
QueryPredicate("metric", :equals, "julia.wall.time")])
block = PerformanceDocumentBlock("export-latency", "Bibliography export latency",
query; views = [:observations, :comparison, :plots])
documenter_page(bundle, "docs/src/generated/performance.md"; blocks = [block])The generated block contains run/runtime provenance and matching tables. An empty selection prints No matching evidence; it is separate from a zero measurement. The Interactive plots section lists matching plot IDs rather than embedding figures. Supply a block's interactive_url to link to an exported Makie view.
Use config = "perf/perfchecker-ui.json" instead of blocks to read documentation.blocks from shared configuration. Report queries describes the query fields.
One-call builds and VitePress
documenter_makedocs(bundle; root="exports/docs", sitename="Performance") generates the default page and builds it locally in one call. For VitePress:
using DocumenterVitepress
documenter_vitepress_makedocs(bundle; root = "exports/vitepress",
sitename = "Performance",
repo = "https://github.com/Mirage-Interactive-Fr/PerfChecker.jl")The wrappers do not accept custom blocks or config; use explicit page generation and Documenter.makedocs for custom reports. The shipped kitchen-sink documenter.jl results/ACTUAL-RUN writes exports/performance.md from a completed run.
Keep the complete run bundle, its provenance and observation units with shared figures. These commands build files locally; publication belongs to your documentation deployment workflow.
