GeezerVison is showing github.com — libtmux 0.61.0 by tony · Pull Request #1074 · tmux-python/tmuxp
Conversation
tony
commented
Jul 4, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Summary
- Bump libtmux
~=0.60.0 → ~=0.61.0 — one upstream release, no breaking changes, tmux 3.2a-3.6 unaffected.
- Improve
tmuxp debug-info: report the exact tmux patch release (3.7a/3.7b) instead of the numeric-normalized 3.7, adopting libtmux 0.61.0's get_version_str().
- Inherit libtmux's
Pane.break_pane() fix on tmux 3.7a/3.7b — tmuxp never calls break_pane, so this is behavior-only with no code change.
Upstream changes
libtmux 0.61.0 (2026-07-04)
Hardens support for the tmux 3.7 patch line.
Release: https://github.com/tmux-python/libtmux/releases/tag/v0.61.0
Changelog: https://libtmux.git-pull.com/history.html#libtmux-0-61-0-2026-07-04
Changes by area
pyproject.toml / uv.lock: bump the libtmux specifier and re-lock.
src/tmuxp/cli/debug_info.py: tmux_version now reads get_version_str() instead of str(get_version()), preserving the patch letter.
tests/cli/test_debug_info.py: add test_debug_info_reports_raw_tmux_version, which monkeypatches the helper to a known 3.7a and asserts the raw string reaches the JSON output verbatim.
CHANGES: 1.74.0 entry under ### Dependencies (minimum bump) and ### What's new (debug-info patch release).
Design decisions
get_version_str() for reporting, get_version() for comparison. debug-info exists for bug reports, where the faithful patch release matters. plugin.py deliberately keeps get_version() because it feeds LooseVersion constraint checks — a LooseVersion("3.7b") would compare the letter and break version-gate ordering. libtmux 0.61.0 splits these two functions for exactly this reason, and this PR follows that split rather than migrating both call sites.
Before / After
On a tmux 3.7b host, debug-info previously normalized the version.
Before:
$ tmuxp debug-info --json | jq .tmux_version
"3.7"
After:
$ tmuxp debug-info --json | jq .tmux_version
"3.7b"
Verification
debug-info no longer normalizes the version (expect zero matches):
$ rg 'get_version\(\)' src/tmuxp/cli/debug_info.py
plugin.py intentionally keeps numeric comparison (expect a match):
$ rg 'get_version\(\)' src/tmuxp/plugin.py
Test plan
-
uv run py.test — full suite and doctests pass, including test_debug_info_reports_raw_tmux_version
-
uv run mypy — strict type check clean
-
uv run ruff check . and uv run ruff format --check . — clean
-
just build-docs — builds with no new warnings
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
…n_str
why: Pick up libtmux 0.61.0, which hardens support for the tmux 3.7
patch line and adds a helper for the raw tmux version string.
what:
- Bump libtmux dependency specifier ~=0.60.0 -> ~=0.61.0 in pyproject.toml
- Update uv.lock (resolved 0.60.0 -> 0.61.0)
libtmux 0.61.0 (2026-07-04):
- break_pane() keeps tmux's default window name on tmux 3.7a/3.7b
instead of forcing "libtmux" (#699)
- get_version_str() returns the raw tmux version with its point-release
suffix intact (e.g. "3.7a"), where get_version() strips it for
numeric comparison (#699)
- Test suite now passes against tmux 3.7a and 3.7b (#698)
Release: https://github.com/tmux-python/libtmux/releases/tag/v0.61.0
Changelog: https://libtmux.git-pull.com/history.html#libtmux-0-61-0-2026-07-04
why: libtmux 0.61.0 adds get_version_str(), which keeps the tmux
point-release suffix (e.g. "3.7a") that get_version() strips for
numeric comparison. debug-info exists for bug reports, where the exact
patch release matters -- 3.7 and 3.7a differ in behavior.
what:
- Switch debug-info's tmux_version from str(get_version()) to
get_version_str(), preserving the letter suffix
- Add a test asserting the raw version reaches the output verbatim
plugin.py keeps get_version() for LooseVersion constraint checks.
why: Document the dependency bump and the debug-info change for the
upcoming 1.74.0 release.
what:
- Add ### Dependencies entry for the libtmux 0.61.0 minimum bump
- Add ### What's new entry for debug-info reporting the raw tmux
patch version
|
✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.56%. Comparing base (bca5998) to head (7f6f76d).
Additional details and impacted files
@@ Coverage Diff @@
## master #1074 +/- ##
=======================================
Coverage 82.56% 82.56%
=======================================
Files 31 31
Lines 2770 2770
Branches 518 518
=======================================
Hits 2287 2287
Misses 346 346
Partials 137 137
☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.
🚀 New features to boost your workflow:
- ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
tony
changed the title
deps(libtmux[~=0.61.0]): Bump from ~=0.60.0 for 3.7a/3.7b, get_version_str
libtmux 0.61.0
Jul 4, 2026
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
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.
|