Skip to content

Cut 0.10.0: consolidate the changelog and refresh every published number - #265

Merged
kurok merged 1 commit into
masterfrom
release/0.10.0
Sep 18, 2026
Merged

kurok merged 1 commit into
masterfrom
release/0.10.0

Conversation

@kurok

@kurok kurok commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Cuts 0.10.0. Version 0.9.0 → 0.10.0: no API changed, so not a major; one documented behaviour did — lazy modes now pin the payload they borrow from (#239) — which is more than a patch. Single-sourced from Cargo.toml; both lockfiles follow.

The changelog needed consolidating before it could be released

Twenty-two PRs had each appended their own section heading, so [Unreleased] held three ### Added blocks and three ### Changed blocks, and #223's entry appeared twice, verbatim. It is now one Added, one Changed and one Fixed — 21 entries — with the lazy-borrow behaviour change leading Changed, because it is the only one a caller can observe.

Every published number was roughly half of what the code does

All the Readme's performance figures dated from the 0.9.0 measurement. Stale numbers that are 2× wrong are worse than no numbers, so all three tables are re-measured from a single dispatched benchmark run on one runner (EPYC 7763, 4 vCPU), each table keeping its own statistic — minimum for the library comparison, median for the mode and batch tables.

0.9.0 0.10.0
against other libraries 0.59 ms · 25x / 34x 0.34 ms · 42x / 62x
parse_email 0.575 ms 0.326 ms
parse_email_tree 0.556 ms 0.326 ms
8 × 767 KiB, threads=1 4.48 ms 2.63 ms
2000 × 0.8 KB vs a thread pool 11.7x 13.9x

The mail-parser row also moves 4.6.4 → 4.6.5, which #263 bumped.

One ratio moved the wrong way, and the text now says so. The mode= multipliers shrank — lazy 7.2x → 5.8x, metadata 11.3x → 6.4x — because the default mode roughly halved, so there is less of it left to skip. Every mode is faster in absolute terms than it was in 0.9.0, and the Readme says that rather than quietly dropping the comparison.

Verification

  • 867 Python tests including the Readme and docs snippet tests, which execute the examples
  • built wheel reports 0.10.0; check_bench_lockfile.py passes (it caught bench/Cargo.lock still on 0.9.0 mid-change)
  • Cargo.lock and bench/Cargo.lock regenerated

Not in this PR

The Rust toolchain pin is still 1.98.0; 1.98.1 is out and toolchain-ab.yml is measuring it now, per the procedure in rust-toolchain.toml. That is a separate change with its own measurement — this repo has seen a rustc minor move performance 15–96% (#120) — so it should not ride along with a release. If it measures clean and you want 0.10.0 built on it, merge that first and I will re-tag.

Version 0.9.0 -> 0.10.0. No API changed, so not a major; one documented
behaviour did (lazy modes now pin the payload they borrow from, #239), which
is more than a patch. Single-sourced from Cargo.toml; the two lockfiles
follow.

The changelog needed consolidating before it could be released. Twenty-two
PRs had each appended their own section heading, leaving [Unreleased] with
three "### Added" blocks and three "### Changed" blocks, and #223's entry
written out twice, verbatim. It is now one Added, one Changed and one Fixed,
21 entries, with the lazy-borrow behaviour change leading Changed because it
is the only one a caller can observe.

Every performance number in the Readme was from the 0.9.0 measurement and is
now roughly half of what the code does, which makes them worse than no
numbers. All three tables are re-measured on one runner (EPYC 7763, 4 vCPU)
from a single dispatched benchmark run, keeping each table's own statistic --
minimum for the library comparison, median for the mode and batch tables:

  against other libraries   0.59 -> 0.34 ms, and 25x/34x -> 42x/62x
  parse_email               0.575 -> 0.326 ms
  parse_email_tree          0.556 -> 0.326 ms
  8 x 767 KiB, threads=1    4.48 -> 2.63 ms
  2000 x 0.8 KB vs a pool   11.7x -> 13.9x

One ratio moved the wrong way and says so in the text: the mode= multipliers
shrank (lazy 7.2x -> 5.8x, metadata 11.3x -> 6.4x) because the default mode
roughly halved, so there is less left to skip. Every mode is faster in
absolute terms than it was in 0.9.0.

Signed-off-by: kurok <22548029+kurok@users.noreply.github.com>
@kurok
kurok merged commit 49a241c into master Sep 18, 2026
15 checks passed
@kurok
kurok deleted the release/0.10.0 branch September 18, 2026 14:12
Sign up for free to 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.

1 participant