docs: enforce complete public API documentation - #24
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR tightens QuickCoffee’s Rust public API documentation contract by adding an RFC, documenting the host-facing embedding surface, and enforcing rustdoc completeness in CI via make api-doc.
Changes:
- Added RFC 0092 describing the public Rust API documentation gate and acceptance criteria.
- Added/expanded rustdoc on the embedding API types (e.g.,
Value,ErrorKind,Program,Engine,Context,Chunk) and CLI crate entrypoints. - Updated
make api-docto fail on missing rustdoc (RUSTDOCFLAGS="-D warnings -D missing_docs"), preventing docs.rs/API regressions from slipping through CI.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/vm.rs | Adds rustdoc for host-facing VM/embedding API types and methods (Value, errors, Engine/Program/Context). |
| src/main.rs | Adds crate-level documentation for the qcoffee CLI entrypoint. |
| src/lib.rs | Enables missing_docs warnings at crate level and keeps top-level API functions documented. |
| src/bytecode.rs | Documents Chunk and key public bytecode APIs; explicitly allows missing docs for low-level enums per RFC contract. |
| src/bin/qtest.rs | Adds crate-level documentation for the test runner binary. |
| src/bin/qdocco.rs | Adds crate-level documentation for the literate renderer/checker binary. |
| src/bin/qbench.rs | Adds crate-level documentation for the benchmark runner binary. |
| RFCs/0092-public-api-documentation.md | Introduces the documentation contract and CI/rustdoc enforcement requirements. |
| README.md | Updates RFC range reference to include RFC 0092. |
| Makefile | Makes api-doc fail on missing docs by adding -D missing_docs to RUSTDOCFLAGS. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Base automatically changed from
feat/descending-ranges
to
feat/string-map-pattern-keys
August 22, 2026 18:02
tiye
force-pushed
the
docs/public-api-docs
branch
from
August 22, 2026 18:39
f0eec00 to
c61caa9
Compare
Base automatically changed from
feat/string-map-pattern-keys
to
test/embedding-api-contract
August 23, 2026 04:07
tiye
force-pushed
the
test/embedding-api-contract
branch
from
August 23, 2026 04:19
1434269 to
c99c083
Compare
Base automatically changed from
test/embedding-api-contract
to
feat/program-fingerprint
August 23, 2026 04:20
tiye
force-pushed
the
docs/public-api-docs
branch
from
August 23, 2026 04:22
3fa5a8b to
3b05bf9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
api-docfail on missing rustdoc with-D warnings -D missing_docsValidation
make checkmake api-docmake docs && git diff --exit-code -- "docs/manual*.html"This changes no runtime or bytecode semantics; it makes docs.rs and embedding API regressions fail CI.