Repository navigation
Closed
Labels
docsPull requests that change documentation only (docs: subject prefix)Pull requests that change documentation only (docs: subject prefix)
Milestone
Description
From the 2026-11-01 conventions audit, re-verified on 73add05a3. Each item breaks a written documentation.rst rule; the heading scans were samples, not parses.
- "Format and Mechanics":
:issue:roles that name pull requests:pep.rst, "Deterministic Construction Arguments" (fix(ipv6_ext): stop the base make's keywords leaking into subclasses that ignore them (#2286) #2358) and "Delivery Sequence" (feat(protocols): add the IP_Pseudo pseudo-protocol for the IP pseudo-header (#2471) #2479, "for its pseudo-header checksum");protocol-layer-placement.rst, "Things That Will Look Like Mistakes" (fix(foundation): check every register_protocol_code key before registering any (#2268) #2343);sentinel-convention.rst, "Naming a Sentinel" (refactor(corekit)!: move the byte-order field helpers into corekit (#1711) #1715);const-vendor-pairing.rst, the opening ruling (feat(application): implement TLS/SSL and DTLS record layer + handshake framing #2441); the doc-comments onLINEandVendor.PROTO_DESTinpcapkit/vendor/default.py(refactor(foundation): declare each registry's code kind as a class attribute, not a module table (#2343) #2392).tests/project/test_docs_issue_pr_roles_1103_unit.pychecks only bare numbers and hand-written links, so nothing enforces this half. - "Paraphrasing a Ruling" (name the issue, not the pull request):
:pr:inprotocol-family-grouping.rst,const-vendor-pairing.rst,reassembly-integration.rst("Compliance, Measured", "The DTLS reassembly work on"),process.rst("The PEP Discussion, Kept Current"),workflows.rst("Workflow Scripts" and "Workflow Lint") andreleasing.rst("Recovery").process.rst's "The PEP Discussion, Kept Current" cites chore(docs): centralise changelog entries for unreleased versions #2483 for a ruling given only on that thread (it closes chore(docs): centralize 1.6.0 changelog updates in one place, not per-feature-PR #2449), so record that instead of swapping the role; refactor(foundation): route DTLS reassembly via toolkit and analysis (#2496) #2528 rewrites the "The DTLS reassembly work on" paragraph inreassembly-integration.rst. workflows.rstcarries hand-written tracker links to ci(python): GraalPy's unit tier stops on an xdist worker MemoryError under the 2 GiB per-process heap #1753, ci(experimental): skip or stop superseded runs instead of cancelling them, so commits are not marked red #1938, ci: stop repeating text-only PR pin tests on every main unit leg #1954, test: sort the remaining GraalPy-only failures into defects and gates #1963, ci: PyPy workers on the ALL tier grow until they are OOM-killed #2005, ci: Python 3.14t and GraalPy experimental legs produce no JUnit XML #2073 and ci: Containment summary reports a superseded stop as 'tests exited 0' #2077 and a bare#1962; the 1103 test passes only through itsALLOWEDset (other tests pin those strings), which documentation.rst does not mention.- "Heading Case and Shape", finite verbs:
warnings.rst"How a Warning Is Reported",logging.rst"WhatDEBUGWill Tell You",ext.rst"What's in for Protocols?" (a non-how-to question; its casing is fine);protocol-layer-placement.rst"Things That Will Look Like Mistakes" is borderline. - Lowercase content words:
const/tcp.rstandvendor/tcp.rst"Multipath TCP options";const/vlan.rstandvendor/vlan.rst"Priority levels defined in IEEE 802.1p";const/mh.rstandvendor/mh.rst"... Type field in the Mobility Header"; the "... version N" titles ofipv4.rst,ipv6.rst,igmpv1.rst,igmpv2.rst,igmpv3.rst,l2tpv2.rst,sslv2.rst. The page exempts no verbatim registry title. - "Mermaid for Flows", letter only: the
SUFFIXEDandBAREnodes ofmint-criterion.rst's decision graph (_unregistered_member) and theVALUEnode ofregistry-protocol.rst'sget()graph under "Failed-Lookup Exceptions" (_validate_value) leave a leading underscore unescaped; they render plain under CommonMark, and Mermaid's own parser was not run.
Fix: cite what each number is (the issue the PR closes: #2286, #2471, #2268, #1711; #2441 and #2392 close none, so say where the ruling sits); rename or re-case the headings per the verb/gerund line; escape the underscores; tighten the 1103 test to resolve each role's kind, and state its ALLOWED set on the page. Sweep references to every renamed heading ("Renaming a Heading").
Blocked: #2519 (warnings.rst), #2521, #2528, #2537, #2540, #2542, #2543 and #2544 edit pages above; unblocks when all eight merge (gh pr view <n> --json state -q .state prints MERGED).
Metadata
Metadata
Assignees
Labels
docsPull requests that change documentation only (docs: subject prefix)Pull requests that change documentation only (docs: subject prefix)
Projects
- StatusShow more project fieldsDone
Activity
JarryShaw commentedon Nov 1, 2026
Its original blockers have all merged, but the convention pages it sweeps are being edited by the #2557/#2563 stream. Blocked: this unblocks when that stream's PR merges.
JarryShaw commentedon Nov 2, 2026
#2599 has merged, so this is unblocked. A worker is on it, applying the citation rule #2599 recorded (cite a PR-thread ruling by the issue the PR closes, or by
:pr:with "no issue holds the ruling"). It also fixes protocol-layer-placement.rst's:issue:2343``, since #2343 is a pull request.JarryShaw commentedon Nov 2, 2026
The citation sweep is done locally. A Sonnet review asked for two fixes: cite #2495 for the const-crawler ruling, and re-case the title of
sslv3.rst, which #2602 added. Both are being fixed now.Needs deciding: the new citation-kind test. It checks each
:issue:/:pr:role against a saved list of every issue and PR number. The list stops at #2614, and #2615 already falls outside it.util/script regenerates the list on demand.Recommendation: 2. Most docs changes cite a recent number, so option 1 would tax about half of future docs PRs. Option 2 still catches the error this test exists for, a PR number cited as an issue, once a refresh records the number. Option 3 adds another workflow to maintain. The fix round implements 2 unless you choose otherwise.
JarryShaw commentedon Nov 2, 2026
take 2 and the regeneration should be a scheduled job.
JarryShaw commentedon Nov 2, 2026
The owner chose 2, paraphrased: the test checks recorded numbers strictly and skips numbers above the snapshot's maximum. The owner also asked for the snapshot to be regenerated by a scheduled job rather than by hand.
The fix round adds that job, a scheduled and manually dispatchable workflow that runs the
util/refresh script. Becausemainis protected, it opens or updates a PR whenever the snapshot changes. It is documented on workflows.rst.