Repository navigation
Add the wolfTPM manual as an in-repo docs/ source with build tooling - #626
aidangarske wants to merge 17 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The manual reverses security-sensitive session attributes, contains an unsafe fwTPM initialization example, and omits English HTML from the CI artifact.
5 open findings
What changed in this PR
Moves the bilingual wolfTPM manual into the repository and adds tooling to generate website, PDF, and Doxygen API documentation.
Changes:
- Adds English and Japanese manuals covering APIs, integrations, fwTPM, PQC, and SPDM.
- Adds MkDocs/Doxygen build tooling and documentation container.
- Adds CI workflows for validation, artifact generation, and image publishing.
| File | Description |
|---|---|
tools/docs-manual/Makefile |
Builds HTML, PDF, and API pages. |
tools/docs-manual/doxybook.cfg |
Configures API Markdown generation. |
tools/docs-manual/documentation-rev |
Pins shared documentation tooling. |
tools/docs_manual.py |
Stages and builds both languages. |
tools/check-docs-no-internal-links.sh |
Detects internal path leakage. |
mkdocs.yml |
Defines English site navigation. |
mkdocs-ja.yml |
Defines Japanese site navigation. |
docs/WindowTBS.md |
Redirects legacy Windows documentation. |
docs/tpm2-overview.md |
Documents TPM concepts and devices. |
docs/tls-and-certificates.md |
Documents TLS and certificate examples. |
docs/testing.md |
Documents local tests and CI. |
docs/SWTPM.md |
Redirects legacy simulator documentation. |
docs/stm32cube.md |
Documents STM32Cube integration. |
docs/sbom-and-compliance.md |
Documents SBOM generation. |
docs/project-structure.md |
Describes repository structure. |
docs/management-and-gpio.md |
Documents management and GPIO tools. |
docs/key-management.md |
Documents key-management examples. |
docs/ja/tpm2-overview.md |
Adds Japanese TPM overview. |
docs/ja/testing.md |
Adds Japanese testing guide. |
docs/ja/stm32cube.md |
Adds Japanese STM32Cube guide. |
docs/ja/sbom-and-compliance.md |
Adds Japanese SBOM guide. |
docs/ja/project-structure.md |
Adds Japanese project structure. |
docs/ja/management-and-gpio.md |
Adds Japanese management guide. |
docs/ja/key-management.md |
Adds Japanese key guide. |
docs/ja/index.md |
Adds Japanese manual landing page. |
docs/ja/hal-io-callback.md |
Adds Japanese HAL guide. |
docs/ja/getting-started.md |
Adds Japanese quickstart. |
docs/ja/fwtpm/spdm.md |
Adds Japanese fwTPM SPDM guide. |
docs/ja/fwtpm/post-quantum.md |
Adds Japanese fwTPM PQC guide. |
docs/ja/examples-overview.md |
Adds Japanese examples guide. |
docs/ja/cited-sources.md |
Adds Japanese references. |
docs/ja/benchmarks.md |
Adds Japanese benchmarks. |
docs/ja/api-reference.md |
Adds Japanese API overview. |
docs/index.md |
Adds English manual landing page. |
docs/hal-io-callback.md |
Documents HAL callbacks. |
docs/getting-started.md |
Adds build and first-run guide. |
docs/fwtpm/spdm.md |
Documents fwTPM SPDM support. |
docs/fwtpm/post-quantum.md |
Documents fwTPM PQC support. |
docs/fwtpm/hal-and-porting.md |
Documents fwTPM porting. |
docs/examples-overview.md |
Summarizes example applications. |
docs/DEVTPM.md |
Redirects legacy Linux documentation. |
docs/dev/docs-build.md |
Documents manual maintenance. |
docs/csharp-wrapper.md |
Documents the C# wrapper. |
docs/cited-sources.md |
Lists manual references. |
docs/benchmarks.md |
Documents benchmark results. |
docs/assets/table-code.css |
Styles code inside tables. |
docs/assets/skin.css |
Adds manual site styling. |
docs/api-reference.md |
Introduces generated API pages. |
docker/docs/requirements.txt |
Pins MkDocs. |
docker/docs/Dockerfile |
Builds the documentation image. |
.gitignore |
Tracks the documentation Makefile. |
.github/workflows/publish-docs-image.yml |
Publishes the builder image. |
.github/workflows/docs-site.yml |
Builds and uploads manual outputs. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
# Conflicts: # .github/workflows/codespell.yml
yosuke-wolfssl
left a comment
There was a problem hiding this comment.
Thanks for pulling the manual in-tree. The nav parity between mkdocs.yml and mkdocs-ja.yml, the link checker and the docs-site workflow setup all look good. Requesting changes because several commands and defaults a first-time reader runs don't match configure.ac. The tooling also has one build-order bug.
Inline comments cover the ones a reader hits first. A few themes:
- swTPM default. On any non-Windows x86_64/aarch64 host, including macOS,
configure.ac:253-289turns--enable-swtpm(and--enable-fwtpm) on unless a hardware flag is given. Several pages describe builds as if it were off: the fwTPM TIS build, the "plain build autodetects" claim, and pinning SPI with--enable-spi.build-options.md:84-96gets this right, so the other pages should follow it. - PQC. The wolfSSL floor is post-v5.9.1 (
wc_MlDsaKey_Init), not 5.8.0. And--enable-pqcis not an alias of--enable-v185. - Tooling.
make allrunspdf-prepbeforehtml-prep, andpdf-preprewritesapi/mdin place. The HTML API pages then get PDF-style anchors, which accounts for the ~80 anchor warnings in the CI log.
Two things can't be inline comments because the PR doesn't touch those files:
- Dead links to the stub pages and deleted README sections:
src/fwtpm/README.md:16,163examples/pqc/README.md:10,80,161docs/README.md:52,94(the Doxygen main page)wolftpm/tpm2_wrap.h:3890,3913, which render into the API pageswolftpm/fwtpm/fwtpm.h:231wrapper/CSharp/README.md:29
- Website links: a minor note, since I expect you already have this in hand. The manual URLs in
README.mdand the four stubs will resolve once wolfSSL/documentation#285 is merged and the site is published, so landing the two together would keep them working.
I'll send you the rest separately as a list so this review stays readable. It covers lower-severity EN accuracy items, tooling nits, and the Japanese translation (glossary, headings, and links the JA pages dropped). Most EN fixes also need the same change in docs/ja/.


Add the wolfTPM manual as an in-repo docs source with build tooling
post-quantum, SPDM, and SealSQ), and every change needed a PR against a separate repo.
following the merged wolfCOSE pattern.
mkdocs-ja.yml, and the docs-site.yml and publish-docs-image.yml workflows.
website manual.
Manual and Docs structure
This needs merged first then we can merge wolfSSL/documentation#285