Skip to content

fix(protocols): re-export the DTLS connection-ID data and schema names - #2641

Merged
JarryShaw merged 1 commit into
mainfrom
fix/reexport-dtls-cid
Nov 2, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
fix/reexport-dtls-cid

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • fix — a bug fix

Description of your pull request and other information

main fails tests/protocols/test_package_reexports_1807_unit.py on every Python. It shows on the Python 3.15 leg, and fails locally on 3.14 as well. #2631 added DTLSCIDCiphertext (data and schema) and ConnectionId (data) to their submodules' __all__ without re-exporting them from the application packages.

This adds the package re-exports under the aliases the siblings use, DTLS_CIDCiphertext and TLS_ConnectionId, plus the matching __all__ entries in pcapkit.protocols.data and pcapkit.protocols.schema. The re-export test passes on 3.14 and 3.15, as do the public-API, __all__-export, layer-grouping and moved-name guards. It is 9 lines across 4 __init__.py files.

@JarryShaw JarryShaw added this to the PyPCAPKit v1.6 milestone Nov 2, 2026
@JarryShaw JarryShaw added fix Pull requests that fix a defect (fix: subject prefix) review: good-to-go Cross-review at the current head says ready; CI state is separate labels Nov 2, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at 499276552. I checked the change myself: it adds only import and __all__ entries, and uses the sibling alias form (DTLS_Ciphertext → DTLS_CIDCiphertext). The re-export test fails on main and passes here on both 3.14 and 3.15, and the export guards pass. Merging this turns main's Python 3.15 leg green again; it is also why #2483's 3.15 leg is red.

#2515)

#2631 added DTLSCIDCiphertext (data and schema) and the TLS ConnectionId
extension data to their submodules' __all__ but not to the packages, so
test_every_package_reexports_every_child_export failed on main.

- data.application: DTLS_CIDCiphertext, TLS_ConnectionId
- schema.application: DTLS_CIDCiphertext
- data and schema aggregators list the same names in __all__

Aliases follow the <protocol>_<name> form the siblings use
(DTLS_Ciphertext, TLS_ExtensionData). The test is not tier-gated; it fails
on 3.14 as well, and passes on 3.14 and 3.15 with this change.
@JarryShaw
JarryShaw force-pushed the fix/reexport-dtls-cid branch from 4992765 to 63e4848 Compare November 2, 2026 08:14
@JarryShaw

Copy link
Copy Markdown
Owner Author

Rebased onto main (16ccc4373): 499276552 → 63e484885. The patch-id is identical (f6ea8f14dcdf) and there were no conflicts.

On the old head, the only failure on Python 3.15 was the DTLSCIDCiphertext schema round trip, which comes from main and #2645 fixed. The re-export test passed. On the new head, both modules pass locally. The verdict stays good to go; once CI is green, this fixes main's 3.15 leg.

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Coverage: 94.08% (unit tier, Python 3.15, 63e484885, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 104 4 20 2 95.16%
pcapkit/const 20561 177 2832 158 98.53%
pcapkit/corekit 2697 74 854 37 96.65%
pcapkit/dumpkit 281 3 100 3 98.43%
pcapkit/foundation 3475 27 1206 32 98.74%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 21419 218 5650 196 98.46%
pcapkit/toolkit 961 28 342 10 96.32%
pcapkit/utilities 512 7 144 5 98.17%
pcapkit/vendor 5256 2260 1198 194 53.61%

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

@JarryShaw
JarryShaw merged commit 3e93eea into main Nov 2, 2026
61 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in PyPCAPKit Nov 2, 2026
@JarryShaw
JarryShaw deleted the fix/reexport-dtls-cid branch November 2, 2026 14:39
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Nov 2, 2026
JarryShaw added a commit that referenced this pull request Nov 2, 2026
…shared value helpers into 1.6.0 (#2449)

- Breaking: NoPayload and its data model and schema move from misc.null to
  misc.no_payload with no re-export, so a frame pickled by 1.5.x fails to
  load (#2636). 1.5.0's three NoPayload roles and 1.6.0's own point at
  misc.no_payload, 1.5.0's text unchanged.
- Added: the IP, L2TP, ICMP, IGMP and LinuxSLL bases give a member on read,
  make and from_data, version= naming it, with the refusals and IPv4's
  Version check ahead of the header (#2639).
- Changed: SCTP's chunk-flag and Invalid Stream Identifier reserved-octet
  messages (#2638). Folded into the TLS/DTLS entry: make() raises
  StructError for a value too wide for its field (#2638), and the
  DTLS_CIDCiphertext and TLS_ConnectionId package exports (#2641).
- The conventions entry records the version= dispatch rule (#2639) and ARP
  as the member-order reference (#2638).
- No entry for #2638's private value helpers or the Ethernet and PCAP-NG
  PAT_MAC_ADDR, as for #1844's OSPF copy; #2640's docstring fixes; or the
  test-only #2620, #2637, #2645 and #2646.
- 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

fix Pull requests that fix a defect (fix: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant