File python-libtmux.changes of Package python-libtmux
-------------------------------------------------------------------
Mon Dec 15 05:52:45 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.53.0:
* Highlights
- Fixed: Session.attach() no longer raises
TmuxObjectDoesNotExist when a user kills the session during
attachment
- Breaking: Session.attach() no longer calls refresh() after
returning (semantically incorrect for interactive commands)
* Bug Fixes
- Session.attach() no longer fails if session killed during
attachment (#616)
Fixed an issue where Session.attach() would raise
TmuxObjectDoesNotExist when a user:
- Attaches to a tmux session via tmuxp load
- Works in the session
- Kills the session (e.g., closes all windows) before
detaching
- Detaches from tmux
User Experience (Before Fix)
After running tmuxp load, users would see this traceback
printed to their terminal after detaching:
Traceback (most recent call last):
File "~/.local/bin/tmuxp", line 7, in <module>
sys.exit(cli.cli())
...
File ".../libtmux/session.py", line 332, in attach
self.refresh()
File ".../libtmux/neo.py", line 167, in _refresh
obj = fetch_obj(...)
File ".../libtmux/neo.py", line 242, in fetch_obj
raise exc.TmuxObjectDoesNotExist(...)
libtmux.exc.TmuxObjectDoesNotExist: Could not find object
Root Cause
Session.attach() called self.refresh() after the
attach-session command returned. Since attach-session is a
blocking interactive command, the session state can change
arbitrarily during attachment—including being killed
entirely.
Technical Details
The refresh() call was semantically incorrect for interactive
commands:
- attach-session blocks until user detaches
- Session state can change during attachment (user may kill
session, rename it, etc.)
- Refreshing the object after such a command makes no
sense—the state could be anything
The fix: Remove the self.refresh() call from Session.attach()
(2 lines removed).
* Breaking Changes
- Session.attach() no longer calls refresh() (#616)
Session.attach() previously called Session.refresh() after
the attach-session command returned. This was semantically
incorrect since attach-session is a blocking interactive
command where session state can change arbitrarily during
attachment.
This was never strictly defined behavior as libtmux abstracts
tmux internals away. Code that relied on the session object
being refreshed after attach() should explicitly call
session.refresh() if needed.
Migration
# If you relied on the implicit refresh (unlikely):
session.attach()
session.refresh() # Now explicit if you need it
Timeline
Date Event
Feb 2024 Session.attach() added with refresh() call (9a5147a)
Nov 2025 tmuxp switched from attach_session() to attach() (fdafdd2b)
Dec 2025 Users started experiencing the bug
Dec 2025 v0.53.0 released with fix
* What's Changed
- fix(Session.attach()): Remove refresh() call that fails after
session killed by @tony in #616
-------------------------------------------------------------------
Tue Dec 9 06:58:49 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.52.1:
* Development
- ci(release): Migrate to PyPI Trusted Publisher by @tony in #615
- update to 0.52.0:
* capture_pane() enhancements
- The Pane.capture_pane() method now supports 5 new parameters
exposing additional tmux capture-pane flags:
Parameter tmux Flag Description
escape_sequences -e Include ANSI escape sequences (colors, attributes)
escape_non_printable -C Escape non-printable chars as octal \xxx
join_wrapped -J Join wrapped lines back together
preserve_trailing -N Preserve trailing spaces at line ends
trim_trailing -T Trim trailing empty positions (tmux 3.4+)
Examples
Capturing colored output:
# Capture with ANSI escape sequences preserved
pane.send_keys('printf "\\033[31mRED\\033[0m"', enter=True)
output = pane.capture_pane(escape_sequences=True)
# Output contains: '\x1b[31mRED\x1b[0m'
Joining wrapped lines:
# Long lines that wrap are joined back together
output = pane.capture_pane(join_wrapped=True)
- Version compatibility
The trim_trailing parameter requires tmux 3.4+. If used
with an older version, a warning is issued and the flag is
ignored. All other parameters work with libtmux's minimum
supported version (tmux 3.2a).
* What's Changed
- Capture pane updates by @tony in #614
- update to 0.51.0:
* Breaking Changes
- Deprecate legacy APIs
Legacy API methods (deprecated in v0.16–v0.33) now raise
DeprecatedError (hard error) instead of emitting
DeprecationWarning.
See the migration guide for full context and examples.
- Deprecate legacy APIs (raise DeprecatedError) by @tony in
#611
Method Renamings
Deprecated Replacement Class Deprecated Since
kill_server() kill() Server 0.30.0
attach_session() attach() Session 0.30.0
kill_session() kill() Session 0.30.0
select_window() select() Window 0.30.0
kill_window() kill() Window 0.30.0
split_window() split() Window 0.33.0
select_pane() select() Pane 0.30.0
resize_pane() resize() Pane 0.28.0
split_window() split() Pane 0.33.0
Property Renamings
Deprecated Replacement Class Deprecated Since
attached_window active_window Session 0.31.0
attached_pane active_pane Session 0.31.0
attached_pane active_pane Window 0.31.0
Query/Filter API Changes
Deprecated Replacement Class Deprecated Since
list_sessions() / '_list_sessions(') sessions property Server 0.17.0
list_windows() / '_list_windows()' windows property Session 0.17.0
list_panes() / '_list_panes()' panes property Window 0.17.0
where({...}) .filter(**kwargs) on sessions/windows/panes All 0.17.0
find_where({...}) .get(default=None, **kwargs) on sessions/windows/panes All 0.17.0
get_by_id(id) .get(session_id/window_id/pane_id=..., default=None) All 0.16.0
children property sessions/windows/panes All 0.17.0
Attribute Access Changes
Deprecated Replacement Deprecated Since
obj['key'] obj.key 0.17.0
obj.get('key') obj.key 0.17.0
obj.get('key', None) getattr(obj, 'key', None) 0.17.0
Still Soft Deprecations (DeprecationWarning)
The following deprecations from v0.50.0 continue to emit DeprecationWarning only:
Deprecated Replacement Class
set_window_option() set_option() Window
show_window_option() show_option() Window
show_window_options() show_options() Window
g parameter global_ parameter Options & hooks methods
Migration Example
Before (deprecated, now raises DeprecatedError):
# Old method names
server.kill_server()
session.attach_session()
window.split_window()
pane.resize_pane()
# Old query API
server.list_sessions()
session.find_where({'window_name': 'main'})
# Old dict-style access
window['window_name']
After:
# New method names
server.kill()
session.attach()
window.split()
pane.resize()
# New query API
server.sessions
session.windows.get(window_name='main', default=None)
# New attribute access
window.window_name
- update to 0.50.1:
* Documentation
- Doc fixes by @tony in #612
-------------------------------------------------------------------
Fri Dec 5 14:02:13 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.50.0:
libtmux 0.50 brings a major enhancement to option and hook management with a unified, typed API for managing tmux options and hooks across all object types.
* Highlights
- Unified Options API: New show_option(), show_options(), set_option(), and unset_option() methods available on Server, Session, Window, and Pane
- Hook Management: Full programmatic control over tmux hooks with support for indexed hook arrays and bulk operations
- SparseArray: New internal data structure for handling tmux's sparse indexed arrays (e.g., command-alias[0], command-alias[99])
- tmux 3.2+ baseline: Removed support for tmux versions below 3.2a, enabling cleaner code and full hook/option feature support
* Unified Options API
All tmux objects now share a consistent options interface:
import libtmux
server = libtmux.Server()
session = server.sessions[0]
window = session.windows[0]
# Get all options as a structured dict
session.show_options()
# {'activity-action': 'other', 'base-index': 0, ...}
# Get a single option value
session.show_option('base-index')
# 0
# Set an option
window.set_option('automatic-rename', True)
# Unset an option (revert to default)
window.unset_option('automatic-rename')
* Hook Management
Programmatic control over tmux hooks:
session = server.sessions[0]
# Set a hook
session.set_hook('session-renamed', 'display-message "Renamed!"')
# Get hook value (returns SparseArray for indexed hooks)
session.show_hook('session-renamed')
# {0: 'display-message "Renamed!"'}
# Get all hooks
session.show_hooks()
# Remove a hook
session.unset_hook('session-renamed')
# Bulk operations for indexed hooks
session.set_hooks('session-renamed', {
0: 'display-message "Hook 0"',
1: 'display-message "Hook 1"',
5: 'run-shell "echo hook 5"',
})
* Breaking Changes
- Deprecated Window methods
The following methods are deprecated and will be removed in a
future release:
Deprecated Replacement
Window.set_window_option() Window.set_option()
Window.show_window_option() Window.show_option()
Window.show_window_options() Window.show_options()
* Deprecated g parameter
The g parameter for global options is deprecated in favor of
global_:
# Before (deprecated)
session.show_option('status', g=True)
# After (0.50.0+)
session.show_option('status', global_=True)
* New Constants
- OptionScope enum: Server, Session, Window, Pane
- OPTION_SCOPE_FLAG_MAP: Maps scope to tmux flags (-s, -w, -p)
- HOOK_SCOPE_FLAG_MAP: Maps scope to hook flags
* Documentation
- New topic guide: Options and Hooks
- New topic guides: Automation patterns, Workspace setup, Pane
interaction, QueryList filtering
- Refreshed README with hero section, quickstart, and more
examples
* tmux Version Compatibility
Feature Minimum tmux
All options/hooks features 3.2+
Window/Pane hook scopes (-w, -p) 3.2+
client-active, window-resized hooks 3.3+
pane-title-changed hook 3.5+
* What's Changed
- Improved option management, add hook management by @tony in
#516
- Refresh README by @tony in #609
- update to 0.49.0:
* Breaking: tmux <3.2 fully dropped
- Drop support for tmux versions < 3.2 by @tony in #608
- update to 0.48.0:
* Breaking: tmux <3.2 deprecated
- Deprecate old tmux versions by @tony in #606
* Development
- tmux: Add tmux 3.6 to testgrid by @tony in #607
-------------------------------------------------------------------
Sun Nov 2 11:07:39 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.47.0:
* Breaking changes
- Support Python 3.14 by @tony in #601
- Drop Python 3.9 by @tony in #602
-------------------------------------------------------------------
Thu May 29 06:01:07 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.46.2:
* Fix new_window argument typing in Session by @Data5tream in #596
- types: Add StrPath typing, fix new_session by @tony in #597
- types: Add StrPath typing, fix new_session, part 2 by @tony
in #598
-------------------------------------------------------------------
Sun Mar 16 17:05:39 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.46.1:
* Documentation
- Fix typo in Pane.send_keys (#593)
-------------------------------------------------------------------
Wed Feb 26 05:43:02 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.46.0:
* Breaking Changes
- Test Helper Imports Refactored: Direct imports from
libtmux.test are no longer possible. You must now import from
specific submodules (#580)
# Before:
from libtmux.test import namer
# After:
from libtmux.test.named import namer
# Before:
from libtmux.test import RETRY_INTERVAL_SECONDS
# After:
from libtmux.test.constants import RETRY_INTERVAL_SECONDS
* Internal Improvements
- Enhanced Test Utilities: The EnvironmentVarGuard now handles
variable cleanup more reliably
- Comprehensive Test Coverage: Added test suites for constants
and environment utilities
- Code Quality: Added proper coverage markers to exclude type
checking blocks from coverage reports
- Documentation: Improved docstrings and examples in the random
module
These changes improve maintainability of test helpers both
internally and for downstream packages that depend on libtmux.
* What's Changed
Coverage: Test helpers by @tony in #580
-------------------------------------------------------------------
Mon Feb 24 06:03:52 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.45.0:
* Breaking Changes
- Test helpers: Refactor by @tony in #578
Test helper functionality has been split into focused modules
(#578):
libtmux.test module split into:
- libtmux.test.constants: Test-related constants
(TEST_SESSION_PREFIX, etc.)
- libtmux.test.environment: Environment variable mocking
- libtmux.test.random: Random string generation utilities
- libtmux.test.temporary: Temporary session/window management
- Breaking: Import paths have changed. Update imports:
# Old (0.44.x and earlier)
from libtmux.test import (
TEST_SESSION_PREFIX,
get_test_session_name,
get_test_window_name,
namer,
temp_session,
temp_window,
EnvironmentVarGuard,
)
# New (0.45.0+)
from libtmux.test.constants import TEST_SESSION_PREFIX
from libtmux.test.environment import EnvironmentVarGuard
from libtmux.test.random import get_test_session_name, get_test_window_name, namer
from libtmux.test.temporary import temp_session, temp_window
* Misc
- Cursor rules: Add Cursor Rules for Development and Git Commit
Standards by @tony in #575
* CI
- tests(ci) Check runtime deps import correctly by @tony in
#574
-------------------------------------------------------------------
Tue Feb 18 06:01:52 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.44.2:
* Bug fixes
- fix(typings) Move typing-extensions into TypeGuard by @tony
in #572
* Documentation
- Doc / typos fixes by @tony in #569
* Development
- Tests: Improved parametrization by @tony in #570
-------------------------------------------------------------------
Mon Feb 17 12:48:34 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
-update to 0.44.1:
* types: Only use typing-extensions if necessary by @ppentchev in
#563
-------------------------------------------------------------------
Mon Feb 17 06:28:03 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.44.0:
* Support for context managers by @tony in #566.
Added context manager support for all main tmux objects:
- Server: Automatically kills the server when exiting the
context
- Session: Automatically kills the session when exiting the
context
- Window: Automatically kills the window when exiting the
context
- Pane: Automatically kills the pane when exiting the context
This makes it easier to write clean, safe code that properly
cleans up tmux resources.
-------------------------------------------------------------------
Sun Feb 16 09:41:23 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.43.0:
* New feature
- TestServer: Server, but partial'd to run on a test socket by
@tony in #565
* Documentation
- Fix "Topics" links in docs
- docs(traversal) Add more doctests by @tony in #567
- update to 0.42.1:
* Packaging: typing-extensions usage
- Move a typing-extensions import into a t.TYPE_CHECKING
section by @ppentchev in #562
- py(deps[testing,lint]) Add typing-extensions for older python
versions by @tony in #564
-------------------------------------------------------------------
Sat Feb 8 09:21:04 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.42.0:
* Improvements
- tmux_cmd: Modernize to use text=True by @tony in #560
Attempted fix for #558.
-------------------------------------------------------------------
Sat Feb 8 08:46:33 UTC 2025 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.41.0:
* Fixes
- Fix hardcoded uid in __str__ method of Server class by
@lazysegtree in #557
* Development
- Use future annotations by @tony in #555
* Documentation
- Fix docstring for color parameter by @TravisDart in #544
-------------------------------------------------------------------
Fri Dec 27 12:20:13 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.40.1:
* Bug fixes
- Fix passing both window command and environment by
@ppentchev in #553
-------------------------------------------------------------------
Sat Dec 21 14:58:31 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.40.0:
* Python 3.9 Modernization by @tony in #550
* test(legacy[session]) Stabilize assertion by @tony in #552
-------------------------------------------------------------------
Wed Nov 27 11:31:36 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.39.0:
* Drop Python 3.8 by @tony in #548
Python 3.8 reached end-of-life on October 7th, 2024 (see
devguide.python.org, Status of Python Versions, Unsupported
versions
See also:
https://devguide.python.org/versions/#unsupported-versions
-------------------------------------------------------------------
Wed Nov 27 11:22:20 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.38.1:
* Minimum Python back to 3.8 for now.
-------------------------------------------------------------------
Wed Nov 27 11:11:58 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.38.0:
* Development
- Project and package management: poetry to uv (#547)
uv is the new package and project manager for the project,
replacing Poetry.
- Code quality: Use f-strings in more places (#540)
via ruff 0.4.2.
* Documentation
- [docs] Sphinx v8 compatibility: configure a non-empty
inventory name for Python Intersphinx mapping. by @jayaddison
in #542
- Fix docstrings in query_list for MultipleObjectsReturned and
ObjectDoesNotExist.
* Other
- Bump dev dependencies, including ruff 0.4.2, f-string tweaks
by @tony in #540
-------------------------------------------------------------------
Tue Apr 23 08:02:41 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.37.0:
Tests
* pytest-xdist support in #522
* test stability improvements in #522
- retry_until() tests: Relax clock in assert.
- tests/test_pane.py::test_capture_pane_start: Use
retry_until() to poll, improve correctness of test.
-------------------------------------------------------------------
Sun Mar 24 18:12:11 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.36.0:
* Linting: Aggressive ruff pass (ruff v0.3.4) by @tony in #539
-------------------------------------------------------------------
Sun Mar 24 10:22:08 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.35.1:
* fix: server.attached_sessions by @patrislav1 in #537
* chore(Server.attached_sessions): Use .filter() by @tony in #538
-------------------------------------------------------------------
Tue Mar 19 06:49:58 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.35.0:
Breaking changes
* refactor: Eliminate redundant targets / window_index's across
codebase by @tony in #536
-------------------------------------------------------------------
Sun Mar 17 19:34:56 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.34.0:
Breaking changes!
* Command target change (#535)#
Commands: All cmd() methods using custom or overridden targets
must use the keyword argument target. This avoids entanglement
with inner shell values that include -t for other purposes.
These methods include:
- Server.cmd()
- Session.cmd()
- Window.cmd()
- Pane.cmd()
-------------------------------------------------------------------
Sun Mar 17 19:26:06 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.33.0:
Breaking changes!
* Improved new sessions (#532)
- Session.new_window():
- Learned direction, via WindowDirection).
- PEP 3102 keyword-only arguments after window name (#534).
- Added {meth}Window.new_window() shorthand to create window
based on that window's position.
* Improved window splitting (#532)
- Window.split_window() to Window.split()
- Deprecate Window.split_window()
- Pane.split_window() to Pane.split()
- Deprecate Pane.split_window()
- Learned direction, via PaneDirection).
- Deprecate vertical and horizontal in favor of direction.
- Learned zoom
* Tweak: Pane position (#532)
It's now possible to retrieve the position of a pane in a
window via a bool helper::
- Pane.at_left
- Pane.at_right
- Pane.at_bottom
- Pane.at_right
-------------------------------------------------------------------
Sat Mar 16 19:07:17 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.32.0:
* Fix docstring ordering in pane.split_window by @Ngalstyan4
in #528
* Add implicit exports into init.py by @ssbarnea in #531
-------------------------------------------------------------------
Sun Feb 18 17:38:34 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.31.0:
* Cleanups (#527)
- Streamline {Server,Session,Window,Pane}.cmd(), across all
usages to:
- Use cmd: str as first positional
- Removed unused keyword arguments **kwargs
* Renamings (#527)
- Session.attached_window renamed to Session.active_window()
- Session.attached_window deprecated
- Session.attached_pane renamed to Session.active_pane()
- Session.attached_pane deprecated
- Window.attached_pane renamed to Window.active_pane()
- Window.attached_pane deprecated
* Improvements (#527)
- Server.attached_windows now users QueryList’s .filter()
-------------------------------------------------------------------
Sun Feb 18 17:37:15 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.30.2:
* Bump `TMUX_MAX_VERSION` 3.3 -> 3.4
-------------------------------------------------------------------
Sun Feb 18 17:35:47 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.30.1:
* pytest plugin, test module: Update to renamed methods
introduced in v0.30.0
-------------------------------------------------------------------
Sun Feb 18 17:32:57 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.30.0:
* New commands
- Pane.kill()
* Renamed commands
- Window.select_window() renamed to Window.select()
- Deprecated Window.select_window()
- Pane.select_pane() renamed to Pane.select()
- Deprecated Pane.pane_select()
- Session.attach_session() renamed to Session.attach()
- Deprecated Session.attach_session()
- Server.kill_server() renamed to Server.kill()
- Deprecated Server.kill_server()
- Session.kill_session() renamed to Session.kill()
- Deprecated Session.kill_session()
- Window.kill_window() renamed to Window.kill()
Deprecated Window.kill_window()
* Improved commands
- Server.new_session(): Support environment variables
- Window.split_window(): Support size via -l
- Supports columns/rows (size=10) and percentage (size='10%')
-------------------------------------------------------------------
Sun Feb 18 17:31:02 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.29.0:
* fix(warnings): Use |DeprecationWarning| for APIs being
deprecated
* pytest: Ignore |DeprecationWarning| in tests
-------------------------------------------------------------------
Sun Feb 18 17:29:48 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.28.1:
Maintenance only, no bug fixes or new features
-------------------------------------------------------------------
Thu Feb 15 06:23:16 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.28.0:
* Breaking changes
- Session.new_window() + Window.split_window(): No longer
attaches by default
- 0.28 +: Now defaults to attach=False.
- 0.27.1 and before: defaults to attach=True.
Pass attach=True for the old behavior.
- Pane.resize_pane() renamed to Pane.resize(): (#523)
This convention will be more consistent with Window.resize().
- Pane.resize_pane(): Params changed (#523)
No longer accepts -U, -D, -L, -R directly, instead accepts
ResizeAdjustmentDirection.
* New features
- Pane.resize(): Improved param coverage (#523)
Learned to accept adjustments via adjustment_direction w/
ResizeAdjustmentDirection + adjustment.
Learned to accept manual height and / or width (columns/rows
or percentage) Zoom (and unzoom)
- Window.resize_window(): New Method (#523)
If Pane.resize_pane() (now Pane.resize()) didn't work before,
try resizing the window.
* Bug fixes
- Window.refresh() and Pane.refresh(): Refresh more underlying
state (#523)
- Obj._refresh: Allow passing args (#523)
e.g. -a (all) to list-panes and list-windows
- Server.panes: Fix listing of panes (#523)
Would list only panes in attached session, rather than all in
a server.
* Improvements
- Pane, Window: Improve parsing of option values that return
numbers
(#520)
- Obj._refresh: Allow passing list_extra_args to ensure
list-windows and list-panes can return more than the target
(#523)
-------------------------------------------------------------------
Fri Feb 9 19:26:01 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- ignore some checks again, that seemed fine but are now again
failing intermittently
-------------------------------------------------------------------
Thu Feb 8 19:58:58 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.27.1:
* pyproject: Include MIGRATION in sdist by @tony in #517, for
#508
-------------------------------------------------------------------
Thu Feb 8 19:57:35 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.27.0:
* Improvements
- QueryList: Generic fixes by @tony in #515
- This improves the annotations in descendant objects such
as:
- Server.sessions
- Session.windows
- Window.panes
- Bolster tests (ported from libvcs): doctests and pytests
-------------------------------------------------------------------
Thu Feb 8 19:48:46 UTC 2024 - Johannes Kastl <opensuse_buildservice@ojkastl.de>
- update to 0.26.0:
* Breaking change
- get_by_id() (already deprecated) keyword argument renamed
from id to
- Server.get_by_id(session_id), Session.get_by_id(window_id),
and Window.get_by_id(pane_id) (#514)
* Documentation
- Various docstring fixes and tweaks (#514)
* Development
- Strengthen linting (#514)
- Add flake8-commas (COM)
- Add flake8-builtins (A)
- Add flake8-errmsg (EM)
* CI
- Move CodeQL from advanced configuration file to GitHub's
default
-------------------------------------------------------------------
Mon Nov 27 05:28:27 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 0.25.0:
* Comparator fixes
- Fixed __eq__ for windows. by @m1guelperez in #505
- fix(pane,session,server): Return False if type mismatched by
@tony in #510
* Documentation
- ruff: Enable pydocstyle w/ numpy convention by @tony in #509
-------------------------------------------------------------------
Fri Nov 24 05:47:57 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 0.24.1:
* packaging: Remove requirements/ folder. Unused. by @tony in
#507
* pyproject: Add gp-libs to test dependency group
-------------------------------------------------------------------
Mon Nov 20 05:42:36 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 0.24.0:
* Breaking changes
- Drop Python 3.7 by @tony in #497
* Packaging
- packaging(pytest): Move configuration to pyproject.toml by
@tony in #499
- Poetry: 1.5.1 -> 1.6.1 (#497), 1.6.1 -> 1.7.0 (direct to
trunk)
See also:
https://github.com/python-poetry/poetry/blob/1.7.0/CHANGELOG.md
- Packaging (poetry): Fix development dependencies
Per Poetry's docs on managing dependencies and poetry check,
we had it wrong:
Instead of using extras, we should create these:
[tool.poetry.group.group-name.dependencies]
dev-dependency = "1.0.0"
Which we now do.
* Development
- Formatting: black -> ruff format by @tony in #506
- CI: Update action packages to fix warnings
- dorny/paths-filter: 2.7.0 -> 2.11.1
- codecov/codecov-action: 2 -> 3
* Full Changelog: v0.23.2...v0.24.0
-------------------------------------------------------------------
Mon Sep 11 04:53:57 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 0.23.2:
_Maintenance only, no bug fixes or new features_
Final Python 3.7 Release (End of life was June 27th, 2023)
-------------------------------------------------------------------
Wed Sep 6 07:13:49 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 0.23.1:
_Maintenance only, no bug fixes, or new features_
* Development
- Automated typo fixes from [typos-cli]:
```console
typos --format brief --write-changes
```
[typos-cli]: https://github.com/crate-ci/typos
- ruff's linter for code comments, `ERA` (eradicate), has been
removed
-------------------------------------------------------------------
Wed Sep 6 07:12:15 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 0.23.0:
_This maintenance release covers only developer quality of life
improvements, no bug fixes or new features_
* Maintenance
- Stricter code quality rules (via ruff) by @tony in
https://github.com/tmux-python/libtmux/pull/488
-------------------------------------------------------------------
Wed Sep 6 07:10:33 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 0.22.2:
_Maintenance only, no bug fixes or features for this release_
* Build system
- ci: Remove setuptools requirement for build-system in
https://github.com/tmux-python/libtmux/pull/495
-------------------------------------------------------------------
Mon May 29 17:53:51 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 0.22.1:
* Add back black dev dependency until `ruff` replaces black's
formatting
-------------------------------------------------------------------
Sat May 27 19:34:56 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 0.22.0:
* Move formatting, import sorting, and linting to ruff.
* This rust-based checker has dramatically improved performance.
Linting and formatting can be done almost instantly.
* This change replaces black, isort, flake8 and flake8 plugins.
-------------------------------------------------------------------
Tue May 16 10:52:55 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- ignore flaky test test_capture_pane (see
https://github.com/tmux-python/libtmux/issues/484)
- ignore flaky test test_new_window_with_environment[environment0]
(see https://github.com/tmux-python/libtmux/
issues/480#issuecomment-1551533987)
-------------------------------------------------------------------
Mon May 8 08:04:10 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
- Depends on poetry-core for building, we don't need the full poetry
module in this case.
-------------------------------------------------------------------
Fri May 5 07:20:24 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- add sle15_python_module_pythons
-------------------------------------------------------------------
Thu Apr 6 06:22:55 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- ignore yet another test:
test_new_window_with_environment[environment1]
(reported at https://github.com/tmux-python/libtmux/issues/478)
-------------------------------------------------------------------
Thu Mar 9 09:55:19 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- new package python-libtmux: Python API / wrapper for tmux