GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — libtmux 0.61.0 by tony · Pull Request #1074 · tmux-python/tmuxp

Conversation

@tony

@tony tony commented Jul 4, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

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.

  • Fix: Pane.break_pane() keeps tmux's own default window name on tmux 3.7a/3.7b instead of forcing libtmux (Fix break_pane forcing 'libtmux' window name on tmux 3.7a/3.7b libtmux#699).
  • New API: get_version_str() returns the raw tmux version with its point-release suffix intact ("3.7a"), where get_version() strips it for numeric comparison (Fix break_pane forcing 'libtmux' window name on tmux 3.7a/3.7b libtmux#699).
  • Development: libtmux's own test suite now passes against tmux 3.7a and 3.7b (Fix window-name test for tmux 3.7a/3.7b and add them to CI libtmux#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

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.

All reactions
tony added 3 commits July 4, 2026 08:11
@tony
deps(libtmux[~=0.61.0]): Bump from ~=0.60.0 for 3.7a/3.7b, get_versio…
55acbff
…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
@tony
cli/debug_info(feat[version]): Report raw tmux patch version
885834b
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.
@tony
docs(CHANGES): libtmux ~=0.60.0 -> ~=0.61.0
7f6f76d
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
@codecov

codecov Bot commented Jul 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ 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.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@tony 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
@tony
tony merged commit 9c18f90 into master Jul 4, 2026
14 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@pbsds pbsds mentioned this pull request Jul 15, 2026
python3Packages.libtmux: 0.61.0 -> 0.62.0 NixOS/nixpkgs#542167
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

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.

1 participant

@tony
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.