To install the unreleased libtmux version, see developmental releases.
pip:
$ pip install --user --upgrade --pre libtmux
- Insert changes/features/fixes for next release here
-
Remove tox and tox-poetry-installer
This created issues with running poetry while inside the virtualenv.
- Try out sphinx-autoapi for its table of contents generation ({issue}
367
)
retry()
: Add deprecation warning. This will be removed in 0.13.x ({issue}368
, {issue}372
)- New function
retry_until()
: Polls a callback function for a set period of time until it returnsTrue
or times out. By default it will raise {exc}libtmux.exc.WaitTimeout
, withraises=False
it will returnFalse
. Thank you @categulario! ({issue}368
, {issue}372
)
-
Final python 3.7 and 3.8 release
Bug fixes and security updates will go to
v0.11.x
-
Internal: Use new separator to split
tmux(1)
formatting information ({issue}289
, {issue}343
)The separator is configurable via
LIBTMUX_TMUX_FORMAT_SEPARATOR
. If you ever have compatiblity issues in the future let us know which default works best across versions.Credit: @JonathanRaiman and @jagguli
-
Basic type annotations ({issue}
359
, {issue}361
) via @otherJL0
- Code cleanup ({issue}
362
) from @otherJL0 - Format with black w/ string normalization. This is a one-time diff ({issue}
354
)
- Sidebar reorganized into sections
- Added documentation on fetching developmental releases of libtmux
First experimental release using poetry build
({issue}347
). If you are packaging and run
across any difficulty please see {issue}346
.
-
Drop python 3.6 ({issue}
344
) -
Add python 3.10, though still
packaging.version
issues remain ({issue}344
)A compat module and version constraints will need to be added for this
- poetry: 1.1.7 -> 1.1.12 ({issue}
344
) - Add
.pre-commit-config.yaml
({issue}344
)
-
{issue}
324
: Update poetry to 1.1- CI: Use poetry 1.1.7 and
install-poetry.py
installer - Relock poetry.lock at 1.1 (w/ 1.1.7's fix)
- CI: Use poetry 1.1.7 and
-
{issue}
339
(CI): Lock python at 3.9 to avoid poetry issue withdataclasses
-
ci: Fix publishing docs (similar to {issue}
339
) -
{issue}
341
{issue}342
:Server.attached_sessions()
now supports multiple attached sessions.Remove attached sessions limitation to not detect multiple attached clients, thank you @timoses
- Update
Window.select_window()
for {issue}271
- {issue}
321
: Convert to markdown - {issue}
271
: Fix {}select_window()
by providing the session ID as argument to {}-t
. Thanks @Flowdalic - Drop python 3.5 support
Python 2.7 support dropped.
- {issue}
306
: chore: Remove python 2.7 support - {issue}
314
: chore: Python 3.x syntax tweaks - {issue}
312
: ci: Add tmux 3.2a to CI - chore: Update black to 21.6b0
- {issue}
271
: Fix select_window() by providing the session ID as argument to -t.
- {issue}
297
: Enchance subprocess interaction std[in|out|err]. Needed for interact with big buffer, fixes {issue}251
, thank you @gil-obradors! - {issue}
303
Addcommon.get_libtmux_version
which gives the tmux version as a loose constraint. Fix linking to terms inside docs, and duplicate description of module which sphinx warned about in api.rst. - {issue}
266
Fix issue on local tests where env variables would cause show-environment to pause tests indefinitely.
- {issue}
234
:Window.split_window
: Allow passingpercent
, Thank you @jinankjain! - {issue}
289
: Fix warning due to invalid escape sequences, Thank you @tirkarthi! - {issue}
295
: Publish docs via our own action - {issue}
295
: Move more packaging over to poetry, though we'll keep setup.py for the moment to ensure compatibility package maintainers. - {issue}
295
: New development instructions - {issue}
295
: Move doc/ to docs/ - {issue}
296
: CI: Test python 2.7, cache python packages, prevent running internal PRs twice
-
{issue}
278
: Fix Python deprecation warnings, thanks @d1618033Also thanks Flowdalic for a similar PR at {issue}
294
-
Add
project_urls
to setup.py -
{issue}
293
Move from Pipfile to poetry -
Fix show_option test in tmux 3.0
-
Clean up handle_option_error comments
-
Move CI to a GitHub action
- CHANGES updated to plain reStructuredText
- Add
project_urls
to setup.py for pypi. - Looser Pipfile versions, add Pipfile.lock
- {issue}
117
Fix issue with renaming clients with tmux 2.7 on BSD/macOS machines. - {issue}
121
Supportliteral=True
(-l
) inPane.send_keys
from @ritiek - {issue}
131
Fix for unicode commands in Python 2, thanks @myw - {issue}
172
Support for next-X.Y versions from @sloria - {issue}
120
capture_pane
support forPane
- {issue}
119
display_message
support forPane
- Sort imports with isort
- Add sphinxcontrib-napoleon package for documentation
- Move docstrings over to numpy's style
- {issue}
46
Change license from BSD to MIT - Move to new organization, tmux-python
- Support package updates to pytest, sphinx, etc.
- Travis/CI: Limit tests to Python 2.7 and 3.6 (removed 3.3 to 3.5)
- Travis/CI: Update pypy veersions
- {issue}
103
Server.new_session
learned how to run commands in window on session start, thanks @grimpy! - {issue}
68
Make Server.has_session() use returncode, thanks @jlargentaye! This should makehas_session
more robust.
- Port
retry
function from tmuxp (tmux-python/tmuxp#354)
- Don't add -x/-y in tmux >= 2.6 if running tmuxp from inside client.
- Allow
Window.select_layout
with no args - Fix test where
bell-
was no longer ambiguous as of tmux 2.6
- Hotfix to support tmux 2.6 session creation
- {issue}
65
Add session id to commands, thanks @askedrelic
- Exact matches only supported on 2.1 and up
- Support exact matching in
Server.has_session
- {issue}
37
Improve support for formatted options likepane-border-status
. Thanks @kaushalmodi.
-
Support for python 2.6 dropped. New minimum version is 2.7
-
Add support for tmux 2.4, pypy and pypy3
-
Overhaul error handling when setting and showing options
- Added {}
handle_option_error
for handling option errors - Added {exc}
libtmux.exc.OptionError
base exception - Added {exc}
libtmux.exc.InvalidOption
and {}libtmux.exc.AmbiguousOption
- {exc}
libtmux.exc.UnknownOption
now extends {exc}libtmux.exc.OptionError
- Added {}
-
Overhaul version checking
has_version
has been renamed toget_version
get_version
will return tmux built from git master as the latest version supported by the libtmux version with-master
at the end, e.g.2.4-master
get_version
will return tmux on openbsd base system as the latest version supported by the libtmux version with-openbsd
at the end, e.g.2.4-openbsd
has_required_tmux_version
has been renamed tohas_minimum_version
- added
has_gt_version
,has_gte_version
,has_lt_version
,has_lte_version
,
-
Fixed up documentation in some session methods
-
Added pydoc exception info to option methods in window and sessions.
-
Added
TMUX_MIN_VERSION
andTMUX_MAX_VERSION
- Fix
which
command - Add
TmuxCommandNotFound
exception - Add
tmux_search_paths
andappend_env_path
kwargs totmux_cmd
.
- {issue}
32
support for OpenBSD's tmux
- {issue}
25
support for working with tmuxmaster
, thanks @sloria.
- {issue}
197
use {}LooseVersion
instead of {}StrictVersion
for version checks. Thanks @minijackson. - Pin packages with pyup.io
- {issue}
21
Readme fix from @huwenchao.
- {issue}
18
Fix logger, courtesy of @geekli - {issue}
19
Add support forstart_directory
in new sessions and panes, courtesy of @gandelman-a. - Fix tests and add official support for 2.3
- Raise exception for invalid session names. tmux does not allow names that are empty, contain periods or colons.
- Remove unused
target_sesssion
param inServer.attach_session
andServer.switch_client
.
- {issue}
12
- fix logger message when tmux doesn't exist inPATH
- {issue}
8
new exceptionUnknownOption
- {issue}
8
returnNone
for options that are valid tmux options, but unset at that scope. - {issue}
6
major documentation overhaul
- update
which()
to find tmux viaos.environ['PATH']
. https://redd.it/4laeut
- attributes for formatters are now accessible via
Session
,Window
andPane
objects.session.name
is equivalent tosession.get('session_name')
, you can do the same with other properties in_info
.window.name
,pane.current_path
,session.id
,window.id
,pane.id
,session.index
,window.index
,pane.index
, etc. attached_sessions
,attached_window
andattached_pane
are now properties._TMUX
metadata object changed to_info
..findWhere()
is nowfind_where
.- README and usage fixes
- switch to pytest
- libtmux forked from tmuxp.