Test against tmux 3.7c - #746
Open
tony wants to merge 2 commits into
Open
Conversation
why: tmux 3.7c is the current 3.7 point release. libtmux needs no code change to accept it -- get_version() strips the point-release suffix so the existing 3.7 feature gates already match, and the break-pane crash workaround keys on the raw "3.7" string via get_version_str(). what: - Swap the 3.7b matrix lane for 3.7c - Reword two test docstrings that named 3.7b as a tested point release, phrasing them so later point releases need no edit Verified: full suite against a locally built tmux 3.7c, 1455 passed, 1 skipped.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #746 +/- ##
=======================================
Coverage 52.37% 52.37%
=======================================
Files 26 26
Lines 3729 3729
Branches 747 747
=======================================
Hits 1953 1953
Misses 1472 1472
Partials 304 304 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
why: Record the tested-version change and the one tmux-side behavior shift users of new_pane() will notice. what: - Add a Development entry noting CI exercises tmux 3.7c and why the point release needs no library change - Note that a floating pane created in a zoomed window unzooms it on 3.7c, where 3.7 through 3.7b left the window zoomed
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.
tmux 3.7c is the current 3.7 point release. libtmux supports it with no library change, so this swaps the CI matrix lane and refreshes two test docstrings that named
3.7b.Why no library change is needed
libtmux.common.get_version()normalizes point releases — it strips the letter suffix, so"3.7c"parses asLooseVersion("3.7"). Everyhas_gte_version("3.7")gate already accepts it. The single caller that reads the raw suffix,libtmux.common.get_version_str(), feeds thePane.break_pane()crash workaround, and that gate compares against the literal"3.7"— so 3.7c takes the fixed path.Upstream changes assessed
Every entry in the 3.7c changelog, checked against libtmux's surface:
window.c) — libtmux exposes no scrollbar API.format.c) — performance only, identical output.message-styleas themessage-formatdefault (status.c) —message_formatis a typed option field; libtmux never reads its default.layout.c) — behavior note below, no libtmux change.Two further deltas show up in the diff but not the changelog, and neither touches libtmux:
spawn.crestores empty window names.cmd-split-window.ctreats a lone empty command string as-E.Behavior note for
new_pane()On 3.7c, creating a floating pane in a zoomed window unzooms it —
window_zoomed_flaggoes from1to0. tmux 3.7 through 3.7b left the window zoomed. Measured against local builds of all four:The upstream note says the fix avoids a crash. I could not reproduce a crash on 3.7, 3.7a, or 3.7b, either detached or with a client attached on a pty, so there is no libtmux-side guard to add.
Why the 3.7a lane stays
3.7a and 3.7b are the only releases where an empty
-nname falls back to the command name instead of staying empty. Probed across every matrix version:3.7a is the older of the two and still in the wild, so it keeps its lane.
Verification
Full suite against a locally built tmux 3.7c: 1455 passed, 1 skipped.
Pre-commit gate clean:
ruff check,ruff format,mypy,pytest --reruns 0,just build-docs.