Skip to content

ci: gate cargo doc warnings + fix broken intra-doc links (COW-1069)#28

Open
brunota20 wants to merge 1 commit into
feat/ci-build-all-modules-cow-1066from
feat/ci-rustdoc-gate-cow-1069
Open

ci: gate cargo doc warnings + fix broken intra-doc links (COW-1069)#28
brunota20 wants to merge 1 commit into
feat/ci-build-all-modules-cow-1066from
feat/ci-rustdoc-gate-cow-1069

Conversation

@brunota20

Copy link
Copy Markdown
Collaborator

What does this PR do?

Adds a CI `docs:` job running `cargo doc --workspace --no-deps` with `RUSTDOCFLAGS="-D warnings"`, so any rustdoc warning (missing docs, broken intra-doc link, unresolved code reference) fails CI. Fixes the 3 broken intra-doc links the new gate surfaced.

Why

Surfaced by the COW-1063 QA pass. BLEU-844 (COW-1045) said "no missing-docs warnings under `#![warn(missing_docs)]`" but nothing in CI enforces it. Without a gate, new `pub fn` items land without doc comments, renamed types break intra-doc links silently, and `[SomeType]` references go stale.

Changes

  • `.github/workflows/ci.yml`: new `docs:` job.
  • `crates/nexum-engine/src/bindings.rs:8`: drop `[crate::host::impls]` intra-doc link (impls is private). Keep the prose reference unquoted.
  • `crates/nexum-engine/src/manifest/mod.rs:24`: `[load]` is ambiguous (sibling `fn load` + `mod load`) -> disambiguate with `[mod@load]`.
  • `crates/nexum-engine/src/manifest/types.rs:4`: same fix for `[super::load]`.

`#![warn(missing_docs)]` is already on `shepherd-sdk` (line 80) and `shepherd-sdk-test` (line 59), so the new CI step locks the existing baseline rather than introducing fresh churn.

Breaking changes

None.

Testing

  • `RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps` clean locally.
  • All 3 surfaced intra-doc link warnings fixed.
  • Actual CI run on this PR confirms the new job passes.

AI assistance disclosure

AI Assistance: this change + description was produced by a Claude Code agent (Claude Opus 4.7 1M context). A human (Bruno) reviewed and is accountable for the result.

Linear: COW-1069. Stacks on #27 (COW-1066 CI matrix).

…nks (COW-1069)

Locks the rustdoc discipline BLEU-844 (COW-1045) introduced.

CI changes (.github/workflows/ci.yml):

- New `docs:` job runs `cargo doc --workspace --no-deps` with
  `RUSTDOCFLAGS="-D warnings"`. Any rustdoc warning (missing docs,
  broken intra-doc link, unresolved code reference) fails CI.

Source fixes surfaced by the new gate:

- `crates/nexum-engine/src/bindings.rs:8`: drop `[crate::host::impls]`
  intra-doc link; `impls` is `mod` (private) so rustdoc cannot
  resolve it. Keep the prose reference unquoted.
- `crates/nexum-engine/src/manifest/mod.rs:24`: `[load]` is
  ambiguous (sibling `fn load` + `mod load`). Disambiguate with
  `[mod@load]`.
- `crates/nexum-engine/src/manifest/types.rs:4`: same fix for
  `[super::load]` -> `[mod@super::load]`.

`#![warn(missing_docs)]` is already on `crates/shepherd-sdk/src/lib.rs`
(line 80) and `crates/shepherd-sdk-test/src/lib.rs` (line 59), so the
new CI step locks the existing baseline rather than introducing fresh
churn.

Verified locally:
  RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps  -> clean

Linear: COW-1069. Stacks on COW-1066 (CI matrix).
@linear-code

linear-code Bot commented Jun 17, 2026

Copy link
Copy Markdown

COW-1069

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