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
openSUSE Build Service is sponsored by