docs: cut timed context from the Sphinx prose and root docs (#719) - #953
Conversation
First slice of #719, scoped to ``docs/source/**/*.rst`` and the root documents. The sweep's one objectively testable half: prose saying *when* something changed, or *which* issue changed it, rather than what the code does now. * Remove ~20 timed-context statements across 15 files -- "until GitHub issue #911 moved all four definitions here", "they used to read .../-02.html, which is dead: measured 2026-09-19", "was deleted from the Wikipedia article on 2026-08-25", "Since #617, building a protocol", "one doc-only commit since 1.3.0 ... open and uncommented since May 2024". * Keep version-bounded contract, which is not history: ``.. deprecated::`` directives, the Python-version tables, "requires Python 3.11 or older until 0.12.1 is published", and "upstream is unmaintained, the cap is not expected to lift". * Keep every design decision, reframed from past tense to present where the tense was the only thing dating it -- why ``gap`` is not derived from ``hdl``, the RFC 791 versus TCP conflict-resolution rule, why PCAP-NG revision -03, why no IPX ``LINK``, and both construction-keyword rationales in ``ext.rst``. * Reframe the ``v*``-tag warning in ``releasing.rst`` from a narrative about #888 into the hazard it exists to prevent, keeping the cross-reference to the section that prevents it, so the guard cannot be simplified away again. Out of scope and untouched: ``CHANGELOG.md`` (generated), ``docs/source/changelog/``, and the five ``contributing/conventions/`` pages. ``pytest tests/project tests/corekit/test_sentinel_exports_unit.py``: 246 passed, 1 skipped, 697 subtests, 0 failed.
55f12f6 to
e45d312
Compare
|
GOOD TO GO at Third model on this slice (written by sonnet, edited by me, reviewed by fable). It confirmed the parts that mattered, each independently derived:
Two prose nits it raised, both real, both now fixed at
One finding I am deliberately not acting on here, and tracking instead. It found leftover timed context in two files this slice did edit: Why the verdict carries to |
|
GOOD TO GO at The head moved because the branch took a merge commit, parents
It added a check I had not thought of: On the real hazard, that a clean merge can still break the docs, the structural result settles most of it: across all 19 files on both sides of the merge, not one named anchor, substitution definition or section-title underline was added or removed, so the reference graph is byte-identical to It also found a genuine factual error, and correctly charged it to neither this PR nor the merge. Labelled |
Please follow the guide below
make pylint,make mypy,make isort)make testpasses, and a test case covers the changedocs/source/changelog/and regeneratedCHANGELOG.md, if the change is user-visible — N/A — changelog centralised in docs(changelog): shared 1.5.0 changelog — long-lived, merges last (#610, #616, #617, #618, #620) #657What is the purpose of your pull request?
fix— corrects a defectfeat— adds a featureperf— changes performance, not behaviourrefactor— changes neither behaviour nor performancetest— tests onlydocs— documentation onlyci— workflows or build toolingchore— anything elseDescription of your pull request and other information
First slice of #719, which asks for a prose sweep for concision and the removal of timed context. This takes the objectively testable half — a sentence naming when something changed, or which issue changed it, either is or is not there — across
docs/source/**/*.rstand the root documents. 15 files, +59/−80.What came out, about 20 statements:
until GitHub issue #911 moved all four definitions here;they used to read .../-02.html, which is dead: measured 2026-09-19 as a 404;was deleted from the Wikipedia article on 2026-08-25;Since #617, building a protocol;one doc-only commit since 1.3.0 … open and uncommented since May 2024.What stayed, deliberately. Version-bounded prose is contract rather than history, so
.. deprecated::directives, the Python-version tables, "requires Python 3.11 or older until 0.12.1 is published" and "upstream is unmaintained, the cap is not expected to lift" are all untouched. Every design decision stayed too, reframed from past tense to present where the tense was the only thing dating it — whygapis not derived fromhdl, the RFC 791 versus TCP conflict-resolution rule, why PCAP-NG revision -03, why no IPXLINK.One reframe worth reading closely. The
v*-tagwarning::inreleasing.rstwas entirely a narrative about #888, and also the only thing stopping someone reinstating the sharedPCAPKIT_TAG_EXISTScheck that caused releases to skip silently and finish green. Cutting it would have removed a guard rail; it is now stated as the hazard rather than as the incident, keeping the cross-reference to the section that prevents it.Two corrections I made to the sweep before committing it. A rewrite in
sentinels.rstsaid the sentinel types are "re-exported from their original modules", which inverts the direction — they are defined inpcapkit.corekit.sentinelsand re-exported by the old modules. Verified byNullType.__module__and an identity check, then reworded. And my own first attempt at that fix introduced "used to live beside", which is the very thing this slice removes.Out of scope and untouched:
CHANGELOG.md(generated byutil/changelog_md.py),docs/source/changelog/, and the fivecontributing/conventions/pages rewritten under #948/#949/#951/#952.pytest tests/project tests/corekit/test_sentinel_exports_unit.py: 246 passed, 1 skipped, 697 subtests, 0 failed. That second file is included because it reads a convention page and is what a previous slice of this programme broke.Not the whole of #719.
docs/source/pcapkit/**is ~140 files and only 13 were touched;contributing/pep.rstneeds a closer read to separate real citations from narrative;demo.rstandcontributing/testing.rstare untouched. Remaining directories are worth their own slices.