chore: release v0.11.0 — the stability candidate - #348
Merged
Merged
Conversation
Version 0.11.0 in the workspace manifest and in termlens-cli's dependency on the library; Cargo.lock refreshed (nine member versions, nothing else). The [Unreleased] section becomes [0.11.0] - 2026-09-11, headed by the one breaking change and its migration table, with a fresh empty [Unreleased] above. The 0.11.0 corpus directory is frozen from this tree (six text files byte-identical to 0.10.1's; JSON with "format": 1). The report action tag in the README and the skill moves to v0.11.0. Signed-off-by: Vyncint Ng <115854244+vyncint@users.noreply.github.com>
vyncint
force-pushed
the
chore/release-v0.11.0
branch
from
September 10, 2026 21:02
0cda79a to
9126a7a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The release commit for 0.11.0, the stability candidate, cut per
docs/RELEASING.mdsteps 1–3 (step 2b included):workspace.package.version→0.11.0;termlens-cli'stermlens = { version = "0.11.0", … };Cargo.lockrefreshed — the diff is nine member version lines and nothing else.[Unreleased]→[0.11.0] - 2026-09-11, a fresh empty[Unreleased]above. The section opens with the one breaking change (Screen::unsupported() exposes its Arc<str> storage and keeps the overflow count in a second accessor #330) and its migration table;.github/scripts/extract-changelog.sh v0.11.0extracts 179 lines of notes.crates/termlens/tests/compat/0.11.0/frozen from this tree with thewrite_corpuswriter: six text files byte-identical to 0.10.1's, JSON with"format": 1. The compat README says how later directories come to be.@v0.11.0(exists once the tag is pushed).The gate on this PR: tree
0.11.0against published0.10.3;check-semver.shreads the- **Breaking:**bullet under[0.11.0](ahead of the baseline) and runs with--release-type major— measured locally: PASS in all three views. The same holds for the tag's re-run ofci.yml. After publish, a follow-up PR moves the baseline to0.11.0(RELEASING step 5).Local matrix on this exact tree (all green): fmt; clippy all-features / default / minimal / decode / Windows target; rustdoc both ways;
cargo test --workspace --all-features529 passed, 0 failed, 5 ignored (each ignore platform-reasoned or the corpus writer); default set; the four isolated-p termlenssets; feature isolation; CLI contract; README links; skill snippets; gates-listed (19); candidate statement; semver self-test; cargo-deny; MSRV 1.85.1 over three configurations;cargo package -p termlens --lockedverified (305 KB, contents listed and reviewed — corpus and snapshots ship as tests, nothing private).cargo package -p termlens-clicannot resolvetermlens 0.11.0until the library is published, as in every prior release;release.ymlpublishes the library first.Performance (release builds, same input, interleaved, new first): JSON serialize 228 vs 235 µs, deserialize 432 vs 432 µs,
with_styles29.5 vs 30.3 µs (0.11 vs 0.10.3); 40k-line flood through 80x24 within noise. No regression; the JSON gains 11 bytes for theformatfield.Stress: run 34527017048 on the candidate tree is in flight; per RELEASING step 0 the stress workflow also runs on the merged release commit before the tag is pushed.
After merge: wait for stress on the exact commit → tag
v0.11.0→release.yml→ verify crates.io, the GitHub Release,install.yml, a fresh consumer → baseline PR → consumer migrations (separate repositories, against crates.io).