Skip to content

Release 2.0.0 - #133

Merged
EONRaider merged 1 commit into
masterfrom
release/2.0.0
Sep 4, 2026
Merged

Release 2.0.0#133
EONRaider merged 1 commit into
masterfrom
release/2.0.0

Conversation

@EONRaider

Copy link
Copy Markdown
Owner

Summary

Cuts 2.0.0 — Tier 2 of the post-1.3.0 roadmap (#107), now that #104 and all six of its sub-issues (#87, #88, #89, #90, #91, #92) are closed. Mirrors the exact shape of the 1.3.0 release commit (0f86821): CHANGELOG.md's ## [Unreleased] heading becomes ## [2.0.0] - 2026-09-04, pyproject.toml and netprotocols.__version__ bump to 2.0.0, and uv.lock is regenerated to match. No functional changes — those already merged in #130, #131, #132 (and earlier this cycle in #125, #126, #127).

Why major:#90 deletes Packet.payload outright (it was always exactly bytes(self), a redundant duplicate of __bytes__). Everything else in the tier is additive.

What ships in 2.0.0

Verification

  • uv run --frozen ruff check . and uv run --frozen ruff format --check . are clean
  • uv run --frozen mypy is clean (strict)
  • uv run --frozen pytest passes locally (includes test_version.py's __version__/pyproject.toml agreement check)
  • uv run --frozen python scripts/benchmark.py --check --threshold 15 — within threshold (-3.2% vs. baseline)
  • uv build succeeds and produces netprotocols-2.0.0

Notes

Merging this does not publish anything by itself. Per .github/workflows/release.yml, only a pushed v2.0.0 tag on the resulting merge commit triggers CI + uv publish to real PyPI (trusted publishing) — that is a separate, deliberate step after this merges, and I'll confirm with you before pushing that tag since a published version can only be yanked, never replaced.


🤖 Generated with Claude Code

https://claude.ai/code/session_01SVCFe7B1U5VeJRoUbx24vb


Generated by Claude Code

From codec to platform: a public protocol registry so a third party
can extend the decode walk without forking (#87); decode_frame(), the
chain walker, ships with the library instead of living in the README
and three copy-pasted test files (#88); every ProtocolError carries
structured diagnostics -- protocol, field, offset, frame_offset,
expected/actual -- instead of only a formatted string (#91); Packet
indexes by protocol type and is hashable, and .payload is deleted
outright as the breaking change behind this major bump (#90); a
canonical, direction-independent flow key for TCP/UDP conversations
(#89); and ICMPv4/ICMPv6.embedded_chain decodes an error message's
truncated embedded packet with no try/except (#92).
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SVCFe7B1U5VeJRoUbx24vb
@EONRaider
EONRaider merged commit ad3fc3e into masterSep 4, 2026
7 checks passed
@EONRaider
EONRaider deleted the release/2.0.0 branch September 4, 2026 09:48
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@EONRaider@claude