GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||
GeezerVison is showing github.com — Require tmux 3.3a before workspace effects by tony · Pull Request #1092 · tmux-python/tmuxp Conversation
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@ ## master #1092 +/- ## ========================================== - Coverage 82.55% 82.44% -0.11% ========================================== Files 31 31 Lines 2768 2826 +58 Branches 518 525 +7 ========================================== + Hits 2285 2330 +45 - Misses 346 357 +11 - Partials 137 139 +2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
bfab78b to
44da478
Compare
The workspace version check depends on the coordinated libtmux source. Select the immutable libtmux 0.62 source through uv and its lockfile.
The pinned libtmux narrows the constructor of its missing-object exception to a typed query keyword. Forward that keyword from SessionMissingWorkspaceException instead of arbitrary keywords, so the workspace exception keeps constructing against the new contract.
why: A current executable can connect to an older daemon. Workspace imports and callbacks must wait until the selected endpoint qualifies. what: - Check the backend and actual endpoint before external code or effects - Honor the server of a supplied session or window at direct entries - Report version check failures without changing existing lookup errors - Keep help, conversion and diagnostics usable without a checked tmux - Test old daemons, cold executables, supplied targets and import order
why: Upgrading an executable does not upgrade a running daemon. Users need the endpoint requirement and coordinated installation path. what: - Document tmux 3.3a including its patch letter across support surfaces - Explain source-pinned installation and daemon replacement behavior - Describe diagnostic errors, scripts and readiness boundaries
why: Existing workspaces may still target a daemon below the new minimum after the executable has been upgraded. what: - Describe saving sessions and restarting or selecting a fresh daemon - Explain locked source installation and configuration-only commands
why: Supported operation coverage starts at 3.3a while older releases still need proof that the version check stops before imports and callbacks. what: - Retain the floor, modern and master operation lanes - Build 3.2a and 3.3 for focused negative version tests
why: The endpoint minimum changes loading, freezing and shell usage. Release notes must identify the transition and the migration route. what: - Record the concrete before and after tmux requirements - Explain endpoint refusal and commands available without tmux
why: Locked refusal lanes lost the global three-day cutoff in CI,
so dependency sync failed before reaching native version tests.
what:
- Set UV_EXCLUDE_NEWER to the lockfile span for both refusal lanes.
- Preserve the immutable dependency resolution and locked install.
Move the coordinated libtmux source pin to the revision whose version probe uses run-shell -C instead of display-message, so no user hook fires before a refusal. tmuxp has no version probe of its own: the version check delegates to libtmux's support module. uv.lock changes only the two rev references.
`libtmux~=0.62.0` was satisfied by the released 0.62.0, which has no version-check module, and a 0.63 release would have been excluded by the compatible-release range, so no release could satisfy both. libtmux 0.63 is the series that carries libtmux._internal.support, so require `~=0.63.0`. The `[tool.uv.sources]` git pin stays as the development path until libtmux 0.63.0 is released and moves to libtmux's version-check head (f6e4630a1). uv.lock changes only the two rev references and `uv lock --check` passes. Release order: libtmux 0.63.0 first, then drop the source pin here.
util._require_backend probed libtmux._internal.support and an integer policy marker through importlib. Import libtmux._internal.support instead and check the selected daemon with server_version(); a libtmux without the module is refused before custom code runs. The workspace builder also ran the version check on every window, pane and option hook; it now checks a server once per builder and checks again only when a direct entry supplies a different one, which keeps the guarantee that a supplied session or window of an older daemon is refused before any callback. Tests: the missing-backend test hides libtmux._internal.support; a build of two windows and three panes checks its server exactly once. Checking on every hook again makes the second test see six extra checks. The version check module passes (20 cases) with the native 3.2a lane; ruff and mypy are clean.
Describe the dependency as libtmux 0.63 or newer, the development pin as temporary, and the order: release libtmux first, then drop the source pin and merge this change.
State that this release requires libtmux 0.63 or newer and that a checkout installs with uv sync --locked until that release exists. Keep the migration note separate from runtime changes.
Add the Minimum libtmux entry in the repository's usual form and note the once-per-build version check. Keep the release note separate from runtime changes.
why: libtmux.common.get_version() now warns with DeprecationWarning because it reads the client executable, not the daemon a Server talks to. what: - Build the plugin's tmux version from server_version(Server()), stripping letter suffixes as get_version() did - Reach libtmux's version check through the guarded backend import
44da478 to
177db45
Compare
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
Require tmux 3.3a for core operations
There was an error while loading. Please reload this page.