Skip to content

chore(docs): centralise changelog entries for unreleased versions - #2483

Open
JarryShaw wants to merge 61 commits into
mainfrom
chore/2449-centralize-changelog
Open

JarryShaw wants to merge 61 commits into
mainfrom
chore/2449-centralize-changelog

Conversation

@JarryShaw

@JarryShaw JarryShaw commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Please follow the guide below

  • Searched for similar pull requests
  • Followed the coding style
  • make test passes, and a test case covers the change (tests/project/test_pr_template_commit_types_1102_unit.py and tests/project/test_python_versions_update_1660.py run)
  • Described the user-visible change below and left its changelog entry to the maintainer (N/A)

What is the purpose of your pull request?

  • chore — anything else

Description of your pull request and other information

Closes #2449

Feature PRs no longer add entries under docs/source/changelog/ or to CHANGELOG.md; the maintainer writes them centrally. CONTRIBUTING.md says so, and this PR also rewords the template's changelog box to match (not deferred). util/update_python_versions.py and its test follow the new box wording. No runtime code or release content changed.

@JarryShaw JarryShaw added chore Maintenance work: tooling, repo hygiene, no library behaviour change review: running A cross-review is in flight against the current head - no verdict yet labels Oct 31, 2026
@JarryShaw JarryShaw moved this to In review in PyPCAPKit Oct 31, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

NEEDS CHANGES (Sonnet, 30953ed00). CONTRIBUTING.md change is correct and contained; no code, release content or counts changed.

  • .github/PULL_REQUEST_TEMPLATE.md still tells contributors to add an entry and regenerate CHANGELOG.md, and links to the section this PR rewrites. Reword it in this PR, with util/update_python_versions.py (~L1301) and tests/project/test_python_versions_update_1660.py (~L879), which pin the current wording.
  • If the template is instead deferred, the body must say so and Closes #2449 becomes Refs #2449.
  • Non-blocking: "Feature pull requests" (L61) is narrower than L28; "Open" (L61) is undefined; L28 is 125 columns.

@JarryShaw JarryShaw added review: needs-changes Cross-review at the current head says changes are required; see the verdict comment and removed review: running A cross-review is in flight against the current head - no verdict yet labels Oct 31, 2026
@JarryShaw
JarryShaw force-pushed the chore/2449-centralize-changelog branch from 30953ed to 4f2af68 Compare October 31, 2026 02:09
@JarryShaw JarryShaw added review: running A cross-review is in flight against the current head - no verdict yet and removed review: needs-changes Cross-review at the current head says changes are required; see the verdict comment labels Oct 31, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

NEEDS CHANGES (Sonnet, 4f2af68ee). Regex and pinned test verified; no code changed.

  • CONTRIBUTING.md ~L69 is 102 columns. Break before "the" so line 70 starts "the .rst entry, then regenerates:".
  • PULL_REQUEST_TEMPLATE.md ~L10: "described … above" should say "below" (the description is below the checklist); update test_python_versions_update_1660.py ~L879 to match.
  • Non-blocking: "Feature branches" (CONTRIBUTING ~L64), "docs-only" in the body (the diff touches util/ and tests/), "open versions" in the title.

@JarryShaw JarryShaw added review: needs-changes Cross-review at the current head says changes are required; see the verdict comment and removed review: running A cross-review is in flight against the current head - no verdict yet labels Oct 31, 2026
Pull requests for user-visible changes each adding a bullet to the unreleased
version's changelog file conflict on every merge. CONTRIBUTING.md now says the
maintainer writes those entries centrally, and that such PRs leave the file out
of the diff. The PR template's changelog box and the generator that annotates
it follow the same rule.

Refs #2449
@JarryShaw
JarryShaw force-pushed the chore/2449-centralize-changelog branch from 4f2af68 to a9db8a4 Compare October 31, 2026 02:21
@JarryShaw JarryShaw changed the title chore(docs): centralise changelog entries for open versions chore(docs): centralise changelog entries for unreleased versions Oct 31, 2026
@JarryShaw JarryShaw added review: running A cross-review is in flight against the current head - no verdict yet and removed review: needs-changes Cross-review at the current head says changes are required; see the verdict comment labels Oct 31, 2026
@github-actions

github-actions Bot commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Coverage: 94.45% (unit tier, Python 3.15, 0cd0d2044, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 106 4 20 2 95.24%
pcapkit/const 20918 175 2908 156 98.57%
pcapkit/corekit 2913 77 940 38 96.81%
pcapkit/dumpkit 286 3 102 3 98.45%
pcapkit/foundation 3506 27 1216 32 98.75%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 22834 157 5952 127 99.00%
pcapkit/toolkit 961 26 342 8 96.62%
pcapkit/utilities 559 7 150 5 98.31%
pcapkit/vendor 5590 2286 1280 214 55.75%

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

@JarryShaw JarryShaw added review: pending No verdict for the current head - never reviewed, or the head moved since the last one 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 review: pending No verdict for the current head - never reviewed, or the head moved since the last one labels Oct 31, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

Local-only commit 30953ed forks from 4ca3f30 and is redundant with origin a9db8a4 (rebase onto origin is empty). Nothing to push. Local commit to be dropped.

@JarryShaw

JarryShaw commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner Author

Add to convention and session/sweep memo: upon each release, amend inline or post updates in thread to the PEP's Discussion post. PEP doc is source of truth but aim to keep the Discussion also up-to-date.

@JarryShaw

Copy link
Copy Markdown
Owner Author

Ruling reconciled: upon each release, amend pep.rst inline and update Discussion #106 ("PyPCAPKit Enhancement Proposals") to match -- the page stays authoritative. Documented in process.rst (20f39eb73) and in the sweep memo.

@JarryShaw

Copy link
Copy Markdown
Owner Author

Owner ruling (2026-11-01), paraphrased: changelog entries are consolidated in this PR and stripped from the open feature PRs, so they stop conflicting. The ruling named #2383, which is a merged HIP fix, so I've taken it to mean this PR (it implements #2449's practice). Say so if that's wrong.

In flight on this branch: merge current main, add #2509's Radiotap entry, and reconcile the 1.6.0 entries this merge wave left stale. When that is pushed, the label resets to review: pending and a fresh review runs.

- add entries for the user-visible changes merged since 1.5.1 that had
  none: LinuxSLL, ICMP/ICMPv6, IGMP, TLS/DTLS, SSLv2, DTLS reassembly,
  IP_Pseudo, the IPv6 extension-header walk and the IPv6_Ext id() and
  membership fixes
- add the Radiotap entry from #2509
- drop the FRAD, Netlink and GRE entries' stale "remain Raw" and
  "tracked separately" notes, and cite each entry's own PR and issue
- record the centralised-changelog rule this PR introduces
- regenerate CHANGELOG.md; util/changelog_md.py --check passes
- #2766 (Fixed): a cut list of plain values ends with the data, where 1.5.x
  read zero values past the cut (a cut Type 0 Routing header, measured on
  v1.5.1), into the ListField entry; IGMPv3's sources and the Query's
  num_sources, into the IGMP entry.
- #2767: a cut header rebuilt on its own reads back its parsed values, a
  regression of the 1.6.0 rebuild path, into the cut-header Fixed entry; the
  round-trip test rule, into the conventions entry.
- #2764: SSLv2, TLS and DTLS records rebuild from their to_dict(), into the
  TLS/DTLS Added entry, as those classes never shipped.
- #2765: the further member reorders and guard rules, into the member-order
  entry, which records the earlier #2490 reorders.
- CHANGELOG.md regenerated; util/changelog_md.py --check passes.
- Breaking (#2770), a new entry after the package layout one:
  pcapkit.protocols.__proto__, a dict keyed by upper-cased name in 1.5.1, is
  removed with no alias; ProtocolBase.__registry__, get_protocol(),
  register_protocol() and the read-only registry view replace it, and a
  concrete Protocol subclass registers itself, measured against v1.5.1. The
  ruling goes into the conventions entry.
- The lazy-import entry no longer describes the removed registry module,
  which never shipped and stays unnamed.
- 1.5.0's __proto__ role points at ProtocolBase.__registry__, its text
  unchanged, so the nitpicky build does not warn on it.
- CHANGELOG.md regenerated; util/changelog_md.py --check passes.
@JarryShaw JarryShaw added review: running A cross-review is in flight against the current head - no verdict yet and removed review: good-to-go Cross-review at the current head says ready; CI state is separate labels Nov 4, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

NEEDS CHANGES at f865c75a5 (Sonnet cross-review, verified against v1.5.1)

@JarryShaw JarryShaw added review: needs-changes Cross-review at the current head says changes are required; see the verdict comment and removed review: running A cross-review is in flight against the current head - no verdict yet labels Nov 4, 2026
- #2770: 1.5.1's Protocol.__init_subclass__ already registered a subclass
  as it was defined. The entry names what changed, measured on a v1.5.1
  export: an abstract subclass is skipped, where 1.5.x registered it, and a
  name clash keeps the existing entry and warns, where 1.5.x replaced it and
  warned that it was overwriting.
- #2767: drops "length", since IPv6_Ext's length at cut 1 is still open on
  #2761.
- CHANGELOG.md regenerated; util/changelog_md.py --check passes.
@JarryShaw JarryShaw added review: running A cross-review is in flight against the current head - no verdict yet and removed review: needs-changes Cross-review at the current head says changes are required; see the verdict comment labels Nov 4, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

CI note on 1818bb3a2: one job failed, Python 3.15 (LATEST tier, half 2). The failure is test_register_restores_shipped_descriptor_1504_unit::test_restoring_imports_nothing, which raises KeyError: 'pcapkit.protocols.link.arp.protocol'.

This PR changes only the changelog. Main passes the same job, and the module passes when run on its own. The cause is in the test: its _unimported helper pops the shipped module from sys.modules on the assumption it is already imported, and since #2757's lazy imports that depends on which tests ran first. A test-only fix goes straight to main. I'll re-run this job after that.

- Fixed, a new entry beside the cut-header one: a whole header rebuilt
  through from_data reads back what its parse read. An extension header
  parsed with extension=True rebuilds in that mode, where 1.5.x's rebuild
  gained next-layer keys, and a rebuilt Shim6 header keeps its protocol, where
  1.5.x's was None (#2774); a rebuilt or made TCP header reads its padding past
  the End of Option List, where 1.5.x read it as empty (#2775). Both measured
  on a v1.5.1 export.
- CHANGELOG.md regenerated; util/changelog_md.py --check passes.
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at 0cd0d2044, for the entries folded so far (cross-review of the #2770 correction, and my own read of folds 26–28).

@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 Nov 4, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance work: tooling, repo hygiene, no library behaviour change review: good-to-go Cross-review at the current head says ready; CI state is separate

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

chore(docs): centralize 1.6.0 changelog updates in one place, not per-feature-PR

1 participant