Skip to content

refactor(link)!: move InARP into its own module - #2596

Merged
JarryShaw merged 1 commit into
mainfrom
refactor/2529-inarp-module
Nov 2, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
refactor/2529-inarp-module

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • refactor — changes neither behaviour nor performance

Description of your pull request and other information

InARP moves out of pcapkit.protocols.link.arp into its own module, pcapkit.protocols.link.inarp, following the one-protocol-class-per-module ruling on #2529, as the DRARP move (#2540) did. Its schema and data classes move with it.

Breaking: arp.InARP shipped in v1.5.1. It gets versionremoved:: 1.6.0 and no re-export (#1715/#1744). pcapkit.InARP and pcapkit.protocols.InARP are unchanged. Dispatch imports, docs pages, cross-references and the #1744 ledger (SHIPPED/PURE) are retargeted. The rest of the issue's pending list is SSLv3 and NoPayload.

Part of #2529

- `InARP` moves from `pcapkit.protocols.link.arp` to the new
  `pcapkit.protocols.link.inarp`, with no re-export at the old path;
  `arp.py` keeps `ARP` alone and records `versionremoved:: 1.6.0`.
- `pcapkit.protocols.link` imports `InARP` from its new home, so
  `pcapkit.InARP` and `pcapkit.protocols.InARP` are unchanged.
- Docs: a new `inarp` page in the link toctree; the ARP page, `ext.rst`,
  the class-hierarchy click target, the TLS and link pages and
  protocol-family-grouping.rst point at the new path, and InARP leaves the
  page's list of classes still pending under #2529.
- Tests: `test_inarp_unit.py` pins the new module, the bare old path and
  the top-level names; the #1744 ledger lists `arp.InARP` as removed and
  shipped; the ARP-family tests import from the new path.
@JarryShaw JarryShaw added breaking Breaks public-facing behaviour or API (apply alongside the type label) refactor Restructuring for its own sake — neither a fix nor a new capability (refactor: prefix) review: good-to-go Cross-review at the current head says ready; CI state is separate labels Nov 1, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at 2c471564a (Sonnet review). The old arp.InARP path is gone, with versionremoved and no re-export, and pcapkit.InARP is unchanged. The #1744 ledger and the member-order guard are consistent with main. The rebase onto f4aa57742 is patch-identical (b0cc771f) outside the two context-only conflicts.

@JarryShaw JarryShaw moved this to In review in PyPCAPKit Nov 1, 2026
@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Coverage: 94.03% (unit tier, Python 3.15, 2c471564a, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 104 4 20 2 95.16%
pcapkit/const 20093 144 2712 125 98.78%
pcapkit/corekit 2605 74 818 37 96.52%
pcapkit/dumpkit 281 3 100 3 98.43%
pcapkit/foundation 3360 27 1186 32 98.70%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 20352 220 5370 204 98.34%
pcapkit/toolkit 961 28 342 10 96.32%
pcapkit/utilities 506 7 144 5 98.15%
pcapkit/vendor 5009 2222 1148 182 52.31%

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

@JarryShaw
JarryShaw merged commit 1693171 into main Nov 2, 2026
66 checks passed
@JarryShaw
JarryShaw deleted the refactor/2529-inarp-module branch November 2, 2026 02:18
@github-project-automation github-project-automation Bot moved this from In review to Done in PyPCAPKit Nov 2, 2026
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Nov 2, 2026
@github-actions github-actions Bot added this to the PyPCAPKit v1.6 milestone Nov 2, 2026
JarryShaw added a commit that referenced this pull request Nov 2, 2026
…1.6.0 (#2449)

- Added: DCCP, its checksum over the IP pseudo-header, register_dccp and
  register_dccp_option, and the pcapkit.const.dccp registries (#2593).
- Folded into unreleased entries: LinuxSLL's stop on its ARPHRD path
  (#2587) and ARPHRD's __proto_dest__ (#2598), SSLv2 records chained in a
  segment (#2585), the checksum's move to pcapkit.corekit.checksum.internet
  (#2586), and IGMPv2's and IGMPv3's versioned name (#2590).
- Breaking: InARP moves to pcapkit.protocols.link.inarp with no re-export,
  joining the DRARP entry (#2596).
- Changed: the conventions' new rulings (#2599), the milestone workflow's
  next-open-milestone lookup (#2591), the PyPy protocols shards (#2604).
  Fixed: a handled next-layer refusal is quiet under beholder (#2597); the
  IPX crawlers restore sys.path (#2601).
- CHANGELOG.md regenerated; util/changelog_md.py --check passes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking Breaks public-facing behaviour or API (apply alongside the type label) refactor Restructuring for its own sake — neither a fix nor a new capability (refactor: prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant