fix(codeowners): co-own the docs publish workflow and link-checker config - #12361
Merged
Conversation
…nfig Two files are documentation infrastructure but route only to ops: .github/workflows/fern-docs.yml the docs sync/preview/publish workflow .lycheeignore the docs link-checker allowlist Changes to both are almost always docs-motivated and reviewed with docs context. #12243 is the current example: it extends the workflow's examples sync to examples/deployments/dgdr/ because templates/dgdr.mdx embeds those manifests via <Code src=...>. A docs author, for a docs reason, gated on a team with no particular context on it. .lycheeignore has a sharper failure mode. Because docs is not a reviewer, ignore entries land through PRs that have nothing to do with link checking and nobody who owns the link policy sees them. That has happened repeatedly: a stargazers entry added inside an unrelated vLLM pin bump on release/1.3.0, and a self-referential entry in #12243. shared: is additive, so ops keeps ownership and docs is added alongside. 86 tests pass; strict gate 5010/5010 (100.00%); CODEOWNERS regenerates byte-identical. Signed-off-by: Dan Gil <dagil@nvidia.com>
Contributor
WalkthroughChangesShared ownership
Estimated code review effort: 1 (Trivial) | ~2 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Comment |
Contributor
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ea8b375317
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Collaborator
Author
|
/ok to test ea8b375 |
Signed-off-by: Dan Gil <dagil@nvidia.com>
saturley-hall
approved these changes
Jul 31, 2026
Member
|
/ok to test 94202bd |
dagil-nvidia
added a commit
that referenced
this pull request
Aug 7, 2026
areas.yaml auto-merged; only the generated CODEOWNERS conflicted. Resolved by regenerating from the merged areas.yaml rather than hand-merging, so the committed artifact is reproducible and the workflow's regenerate-and-diff step passes. Main gained ownership entries from #12488, #12012, #11874 and #11923 while this branch was in review, plus #12361, which co-owns the docs publish workflow and the link-checker config with docs. All survive: fern-docs.yml and .lycheeignore still resolve to ops and docs. This branch's own additions survive too: CODEOWNERS carries all 23 areas and areas.yaml carries ops and process. Validation: strict full-tree gate exits 0 at 5200/5200 owned with no stale globs; 150 tests pass. Signed-off-by: Dan Gil <dagil@nvidia.com>
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
Two files are documentation infrastructure but route only to
dynamo-ops-codeowners:.github/workflows/fern-docs.yml.lycheeignoreChanges to both are almost always docs-motivated and need docs context to review, but docs is not on the reviewer list, so nothing routes them there.
#12243 is the live example. It extends the workflow's examples sync to
examples/deployments/dgdr/becausetemplates/dgdr.mdxembeds those manifests through build-time<Code src="...">reads. A docs author, for a docs reason, reviewed by a team with no particular context on it..lycheeignoreshows the same gap. Ignore entries have landed through pull requests that have nothing to do with link checking — astargazersentry inside an unrelated vLLM pin bump (#11374) onrelease/1.3.0, and a self-referential entry in #12243. Nobody who owns docs link policy was asked to look at either.What this does, and what it does not
shared:is additive, so ops keeps ownership and docs is added alongside. Both teams land on oneCODEOWNERSline:This buys visibility, not enforcement. GitHub treats multiple owners on a line as any one of them satisfying the code-owner requirement, so a change to either file will still merge on ops approval alone. What changes is that docs is auto-requested and appears in the reviewer list, so these changes stop passing unseen.
Making docs the sole owner of
.lycheeignorewould make docs review mandatory, and is arguably right since the allowlist is a docs policy artifact. That is a larger ownership conversation and is deliberately out of scope here — this PR takes nothing away fromdynamo-ops-codeowners.Verification
CODEOWNERSis regenerated viaemit_codeowners.py, not hand-edited, per.github/codeowners/README.md, and regenerates byte-identical.Note
This PR changes
.github/codeowners/areas.yaml(ops) andCODEOWNERS(process), so it is itself gated on ops and process — docs has no say in it. That is a fair illustration of the thing it is adjusting.recipes/README.mdroutes todynamo-performance-codeownersand is arguably also a docs page, but that is a judgement about the wholerecipes/tree rather than about two clearly docs-infrastructure files, so it is left alone.