Skip to content

Documentation maintenance

User documentation answers: how do I install the package, use it, interpret results, and understand its limitations? Contributor documentation explains source builds, tests, fixtures, benchmark collection, and release procedures.

Required review

  • [ ] Install from the appropriate package manager; keep source setup under Contribute.
  • [ ] Lead benchmark pages with results, units, and a clear current/historical label.
  • [ ] Keep supported and unsupported features concise; link detailed contracts separately.
  • [ ] Verify examples against the published package, not just the workspace source.
  • [ ] Keep package names, release links, API references, and platform requirements accurate.
  • [ ] Preserve historical measurements, source revisions, and incomplete results.
  • [ ] Keep attribution, licenses, and the final codec-author acknowledgements.
  • [ ] Preview the site at narrow and wide widths; check search and navigation.

Release freshness

documentation.json records the published release separately from the source version. Each page declares an audience. User pages must have a generated release reference and must not contain repository test/build instructions. Paired release:* comments keep installation blocks synchronized with the published record. Keep these markers when editing Markdown.

After a release has finished publishing to its registries:

make docs-release-refresh
make docs-release-check
make docs-registry-examples

Review and commit the changed release record and user pages. The refresh checks the newest published GitHub release (including alphas), resolves its tag to the immutable commit, and verifies the matching registry versions. It does not bump source versions or rewrite old benchmark and coverage data. An API error fails the check; it does not silently accept stale information.

The Documentation workflow checks release freshness on main updates, successful tag releases, manual runs, and daily. Pull requests run offline structure checks and example checks; release freshness is verified before deploying main. A pending source version may differ from the published version without directing users to unavailable packages.

Build and validate

make docs-setup
make docs-test docs-lint
make docs-examples
make docs-build
make docs-serve

The offline checks validate audience assignments, managed release blocks, installation and API pins, relative Markdown links, rendered links and anchors (including absolute links to this project's Pages site), and final attribution. They cannot prove every prose claim or every external page's contents; review behavioral claims against the implementation and recorded evidence.

make docs-registry-examples creates temporary consumer projects, installs exact published versions, and executes the Markdown quickstarts. Rust compilation is cached under target/docs-registry-cargo; temporary environments are removed. The source example check remains separate so a future source change cannot hide a broken published-package example.

Documentation tools use the hash-locked requirements-docs.txt. Update the direct pins and use make docs-lock for intentional tool upgrades.

Publish and benchmark data

Each repository deploys its own site to GitHub Pages through Actions. mkdocs.yml owns navigation, documentation.json selects source pages, and target/site is generated output. Successful trusted main benchmark runs can supply the displayed data. Only data is imported from benchmark artifacts; executable site code comes from the reviewed checkout.

Results show all recorded rows, including failures, fallbacks, and unmeasured values. Detailed source hashes, environment, sample boundaries, and policies are available under Contribute. A documentation build never reruns a benchmark or turns an older measurement into evidence for a new release.