Skip to content

docs: #1103 round 8 -- finish the Protocol/ProtocolBase cross-reference sweep, fix other prose drift - #2428

Merged
JarryShaw merged 1 commit into
mainfrom
docs-1103-round8-protocolbase-sweep
Oct 29, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
docs-1103-round8-protocolbase-sweep

Conversation

@JarryShaw

@JarryShaw JarryShaw commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner

Summary

Round 8 of the whole-repo prose sweep (#1103). Fanned out 8 shard agents by directory; most of the repo was clean (no changes). Where there were real findings:

  • Picked up the round-7 carry-over: ipv6_ext.py/.rst's _lookup_next_layer target (only the link target flipped to the fully-qualified Protocol._lookup_next_layer; the display text, naming the concrete Internet subclass, was already correct and untouched), plus four more sites the docs: prefer Protocol over ProtocolBase in cross-references, per the owner's #1103 ruling #2420 ruling missed (corekit/sentinels.py, docs/source/ext.rst x3, schema/schema.py, schema/link/ethernet.py). Not exhaustive: transport.py's ProtocolBase._lookup_registry link (added by fix(reassembly): the deferred TCP analyser dispatches on AppType, not bare ports #2421) and roughly 11 more unqualified ProtocolBase.<member> roles in protocol.py itself are still outstanding for a future round.
  • internet.py, link.py, transport.py, sctp.py, protocol.py: register()'s Arguments:/Returns: said Protocol subclass/instance while the signature types ProtocolBase and the adjacent Raises: clause already said so — fixed to match.
  • protocol-layer-placement.rst: the Link − Application − ProtocolBase set difference is __proto_key__ (added by fix(foundation): check every register_protocol_code key before registering any (#2268) #2343), not empty as the page claimed.
  • registry-protocol.rst: "every registry overrides _validate_value" contradicted its own next paragraph (the AppType transports inherit it instead).
  • vendor/ipx/packet.py, vendor/reg/linktype.py: a self-contradicting claim and a stale counted-number in vendor docstrings.
  • engines.rst, conf.py, util/changelog_md.py, CONTRIBUTING.md: a stale scapy version, a wrong file path, a false "matches the Sphinx we build with" claim, and a missing caveat about actionlint making Lint non-advisory.

No executable code changed — every edit is inside a docstring, comment, or .rst file. Verified via diff review, py_compile on every changed .py file, and a clean import pcapkit from this worktree's venv.

Behavioral defects found, deliberately NOT fixed here (reporting separately)

  • 16 of 24 pcapkit/vendor crawlers' process(self, data) reads the module-global DATA instead of its own data argument — latent, harmless only because request() happens to return that same global.
  • pcapkit/vendor/pcapng/filter_type.py: empty registry behind a live TODO.
  • Three open "figure out how to handle this programmatically" TODOs in pcapkit/vendor/mh/{cga_sec,status_code,cga_extension}.py.
  • Dead multiprocessing.Pool scaffolding in vendor/__main__.py (left disabled on purpose, but misleading next to the exit-code contract in its own docstring).

Test plan

What is the purpose of your pull request?

  • docs — documentation only

…uling, fix other drift

Round 8 of the whole-repo prose sweep (#1103). Fanned out 8 shard agents by
directory; most of the repo was clean. Changes:

* pcapkit/protocols/internet/ipv6_ext.py + its .rst: finish the carry-over
  miss from round 7 -- the `_lookup_next_layer` plain pointer still targeted
  `ProtocolBase`, flipped to `Protocol` per #2420's ruling.
* Same miss in corekit/sentinels.py (`__keywords__`), docs/source/ext.rst
  (three sites, including a verbatim twin of a paragraph #2420 already fixed
  in protocol.py), schema/schema.py and schema/link/ethernet.py.
* internet.py, link.py, transport.py, sctp.py, protocol.py: `register()`'s
  Arguments: and a couple of Returns:/versionchanged clauses said `Protocol`
  subclass/instance while the signature types `ProtocolBase` and the
  adjacent Raises: clause already said so -- internal contradiction, fixed
  to `ProtocolBase` to match.
* docs/source/contributing/conventions/protocol-layer-placement.rst: the
  Link-Application-ProtocolBase set difference is `__proto_key__`, not
  empty as claimed (#2343 added it after this page was written).
* docs/source/contributing/conventions/registry-protocol.rst: "every
  registry overrides `_validate_value`" contradicted its own next
  paragraph, where the AppType transports inherit rather than override.
* pcapkit/vendor/ipx/packet.py, vendor/reg/linktype.py: a self-contradicting
  claim and a stale counted-number, both in vendor docstrings.
* docs/source/engines.rst, docs/source/conf.py, util/changelog_md.py,
  CONTRIBUTING.md: a stale scapy version, a wrong file path, a false
  "matches the Sphinx we build with" claim, and a missing caveat about
  actionlint making Lint non-advisory.

No executable code changed -- every edit is inside a docstring, comment, or
.rst file; confirmed by diff review and `import pcapkit` from this worktree.

Four behavioral defects found but deliberately left unfixed (reported
separately): 16 of 24 pcapkit/vendor crawlers' `process(self, data)` reads
the module-global `DATA` instead of its own `data` argument (latent,
harmless only because `request()` returns that same global); an empty
`FilterType` registry behind a live TODO; three open "handle this
programmatically" TODOs in pcapkit/vendor/mh; and dead `multiprocessing.Pool`
scaffolding in vendor/__main__.py.
@github-actions github-actions Bot added this to the PyPCAPKit v1.5 milestone Oct 29, 2026
@JarryShaw JarryShaw moved this to In review in PyPCAPKit Oct 29, 2026
@JarryShaw JarryShaw added docs Pull requests that change documentation only (docs: subject prefix) review: running A cross-review is in flight against the current head - no verdict yet labels Oct 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage: 94.22% (unit tier, Python 3.15, c075cf62a, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 104 4 20 2 95.16%
pcapkit/const 19609 133 2620 120 98.84%
pcapkit/corekit 2605 74 818 37 96.52%
pcapkit/dumpkit 282 3 102 3 98.44%
pcapkit/foundation 3064 24 1068 26 98.79%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 17593 193 4678 179 98.32%
pcapkit/toolkit 924 36 334 10 95.55%
pcapkit/utilities 502 7 144 5 98.14%
pcapkit/vendor 4449 1961 1020 167 52.64%

Per-file detail: the coverage-html artifact of this run.

@JarryShaw

Copy link
Copy Markdown
Owner Author

Review: GOOD TO GO at c075cf62a. Diff itself is clean prose-only (AST guard: all 13 touched .py files structurally identical once docstrings are stripped; no Raises: clause touched, all 5 correctly still say ProtocolBase; the removed count in vendor/reg/linktype.py is genuinely removed, not just updated). Docs build byte-identical warning sets (default + nitpicky) vs main+PR merged. Full tests/project plus a 22-file text-reading sweep outside it: clean.

Fixed the one overclaim in the PR body myself (metadata-only, no re-review needed): "finished the round-7 carry-over" overstated it — transport.py's ProtocolBase._lookup_registry link and ~11 more unqualified ProtocolBase.<member> roles in protocol.py remain for a future round. Softened to say so explicitly.

Two corrections worth noting for next time rather than reopening this round: the claimed "tests/examples sites follow a documented CONTRIBUTING.md convention" doesn't exist as stated (89 role hits, 73 member references remain there, left alone on #2422's own "not rendered" reasoning instead) — and the changelog has 5 untouched ProtocolBase sites, not 4.

@JarryShaw JarryShaw added review: good-to-go Cross-review at the current head says ready; CI state is separate and removed review: running A cross-review is in flight against the current head - no verdict yet labels Oct 29, 2026
@JarryShaw
JarryShaw merged commit cfbe5dc into main Oct 29, 2026
67 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in PyPCAPKit Oct 29, 2026
@JarryShaw
JarryShaw deleted the docs-1103-round8-protocolbase-sweep branch October 29, 2026 12:47
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Pull requests that change documentation only (docs: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant