1# Changelog 2 3## current 4 5- _Insert changes/features/fixes for next release here_ 6 7## tmuxp 1.9.3 (2021-10-30) 8- #700: Add `-h` / `--help` option, thanks @GHPS 9- #689: Update poetry to 1.1 10 - CI: Use poetry 1.1.7 and `install-poetry.py` installer 11 - Relock poetry.lock at 1.1 (w/ 1.1.7's fix) 12- #696: Typo fix, thanks @inkch 13 14## tmuxp 1.9.2 (2021-06-17) 15- #686: Allow click 8.0.x 16- Remove `manual/`, move to https://github.com/tmux-python/tmux-manuals 17 18## tmuxp 1.9.1 (2021-06-16) 19- libtmux: Update to 0.10.1+ to include `Window.select_window()` fix 20 21 https://github.com/tmux-python/libtmux/pull/271 22 23## tmuxp 1.9.0 (2021-06-16) 24- libtmux: Update to 0.10.x 25 26## tmuxp 1.8.2 (2021-06-15) 27 28- {issue}`474` Re-release with `python setup.py sdist bdist_wheel` to 29 fix missing test files 30 31## tmuxp 1.8.1 (2021-06-14) 32 33- {issue}`681` Bump version to make homebrew release easier 34 35## tmuxp 1.8.0.post0 (2021-06-14) 36 37- {issue}`681` tmuxp is now available on homebrew! Thank you @jvcarli! 38 39## tmuxp 1.8.0 (2021-06-14) 40 41- {issue}`662` CI: Only update docs when changed 42- {issue}`666` CI: Move test plugin packages from pyproject.toml to 43 pytest fixtures. Fixes {issue}`658` 44- {issue}`661` 45 46 - Bump minimum version 3.5 -> 3.6 47 - Drop python 2.7 support 48 - Modernize syntax (remove `__future__` and modesets) 49 - Update black to 21.6b0 50 51## tmuxp 1.7.2 (2021-02-03) 52 53- {issue}`666` CI: Move test plugin packages from pyproject.toml to 54 pytest fixtures. Fixes {issue}`658` 55 56## tmuxp 1.7.1 (2021-02-03) 57 58- {issue}`665` Support for passing tmux config file (`-f`), thanks 59 @jfindlay! Fixes {issue}`654` 60 61## tmuxp 1.6.5 (2021-02-03) 62 63- {issue}`665` Support for passing tmux config file (`-f`), thanks @jfindlay! Fixes 64 {issue}`654` 65 66## tmuxp 1.7.0 (2021-01-09) 67 68This will be the last Python 2.7 release of tmuxp. Bug fixes for python 692.7 will live in the [1.7.x branch][1.7.x branch]. 70 71- {issue}`530` New feature: Plugin system 72 73 - Add plugin system for user customization of tmuxp 74 - Add tests for the plugin system 75 - Update existing tests for the plugin system 76 - Add the plugin interface to the tmuxp package 77 - Add in depth documentation for the plugin system 78 79 Thank you @joseph-flinn! 80 81- {issue}`656` New feature: Ability to append windows to a session 82 83 `tmuxp load -a configfile` will append a configuration to your current 84 tmux session. 85 86 Thank you @will-ockmore! 87 88- {issue}`647` Improvement: Logging to file: 89 90 `tmuxp load <filename> --log-level outputfile.log` 91 92- {issue}`643` New command: Debug information 93 94 Port `tmuxp debug-info` from via v1.6.2 95 96[1.7.x branch]: https://github.com/tmux-python/tmuxp/tree/v1.7.x 97 98## tmuxp 1.7.0a4 (2021-01-06) 99 100- Port click package fix from 1.6.4 101 102## tmuxp 1.7.0a3 (2020-11-22) 103 104- Port `tmuxp load <filename> --log-level outputfile.log` from 105 1.6.3 106 107## tmuxp 1.7.0a2 (2020-11-08) 108 109- Port `tmuxp debug-info` from {issue}`643` from via v1.6.2 110 111## tmuxp 1.7.0a1 (2020-11-07) 112 113- {issue}`530` Plugin system 114 115 - Add plugin system for user customization of tmuxp 116 - Add tests for the plugin system 117 - Update existing tests for the plugin system 118 - Add the plugin interface to the tmuxp package 119 - Add in depth documentation for the plugin system 120 121 Thank you @joseph-flinn! 122 123## tmuxp 1.6.4 (2021-01-06) 124 125- {issue}`651` Fix packaging issue with click, thanks @dougharris! Fixes 126 {issue}`649` 127 128## tmuxp 1.6.3 (2020-11-22) 129 130- {issue}`647` Adding option to dump {}`load` output to log file, thank you 131 @joseph-flinn! 132 133 `tmuxp load file.yaml --log-file yourfile.txt` 134 135 Adjust log levels: 136 137 `tmuxp --log-level DEBUG load file.yaml --log-file yourfile.txt` 138 139## tmuxp 1.6.2 (2020-11-08) 140 141- {issue}`643` New command `tmuxp debug-info` for creating github 142 issues, fixes {issue}`352`. Thank you @joseph-flinn! 143 144(v1-6-1)= 145 146## tmuxp 1.6.1 (2020-11-07) 147 148- {issue}`641` Improvements to `shell` 149 150 Thanks [django-extensions][django-extensions] (licensed MIT) for the shell detection abstraction. 151 152 - Deprecate `shell_plus` 153 - `tmuxp shell` now detects the best shell available by default 154 - Python 3.7+ with `PYTHONBREAKPOINT` set in env will drop into `pdb` by 155 default 156 - Drop into `code.interact` by default instead of `pdb` if no third 157 party shells found 158 - New options, override: 159 160 - `--pdb`: Use plain old `breakpoint()` (python 3.7+) or 161 `pdb.set_trace` 162 - `--code`: Drop into `code.interact`, accepts `--use-pythonrc` 163 - `--bpython`: Drop into [bpython][bpython] 164 - `--ipython`: Drop into [ipython][ipython] 165 - `--ptpython`: Drop into [ptpython][ptpython], accepts `--use-vi-mode` 166 - `--ptipython`: Drop into [ipython][ipython] + [ptpython][ptpython], accepts 167 `--use-vi-mode` 168 169[django-extensions]: https://github.com/django-extensions/django-extensions 170 171## tmuxp 1.6.0 (2020-11-06) 172 173- {issue}`636` + {issue}`638` New command: `tmuxp shell` 174 175 Automatically preloads session, window, and pane via [libtmux][libtmux] 176 {ref}`API objects <libtmux:api>` and makes them available in a python 177 console. 178 179 ```{image} _static/tmuxp-shell.gif 180 :width: 100% 181 182 ``` 183 184 As of {ref}`1.6.1 (above) <v1.6.1>`, `tmuxp shell` will find the most 185 feature-rich shell available. If you have [ipython][ipython], [ptpython][ptpython], or 186 [bpython][bpython] available, it will be selected automatically. Pass `--pdb` 187 to use standard library pdb, or `--code` to use `code.interact`. 188 189 In python 3.7+, supports `PYTHONBREAKPOINT`: 190 191 ```{code-block} sh 192 193 $ pip install ipdb 194 $ env PYTHONBREAKPOINT=ipdb.set_trace tmuxp shell 195 196 ``` 197 198 You can execute python directly via `-c`: 199 200 ```{code-block} sh 201 202 $ tmuxp shell -c 'print(session.name); print(window.name)' 203 my_server 204 my_window 205 206 $ tmuxp shell my_server -c 'print(session.name); print(window.name)' 207 my_server 208 my_window 209 210 $ tmuxp shell my_server my_window -c 'print(session.name); print(window.name)' 211 my_server 212 my_window 213 214 $ tmuxp shell my_server my_window -c 'print(window.name.upper())' 215 MY_WINDOW 216 217 ``` 218 219[bpython]: https://bpython-interpreter.org/ 220[ipython]: https://ipython.org/ 221[ptpython]: https://github.com/prompt-toolkit/ptpython 222 223## tmuxp 1.5.8 (2020-10-31) 224 225- {issue}`639` Passes start_directory through to new tmux session 226 Fixes {issue}`631`, thank you @joseph-flinn! 227 228## tmuxp 1.5.7 (2020-10-31) 229 230- {issue}`637` Support for loading directories with periods in it 231 232 `tmuxp load ~/work/your.project` will now work 233 234 Earlier workaround was to do `tmuxp load ~/work/your.project/.tmuxp.yaml` 235 236 Fixes {issue}`212` and {issue}`201` 237 238## tmuxp 1.5.6 (2020-10-12) 239 240- {issue}`618`: allow passing `--overwrite` to `tmuxp freeze`. Thank you 241 @betoSolares! 242- {issue}`589` added option for the the confirm command to auto-confirm the prompt. 243 Thank you @aRkedos! 244- {issue}`626` Add new session name option to cli. Thank you @joseph-flinn! 245- {issue}`626` Add test for new session name option 246- {issue}`626` Update docs for new session name option 247- {issue}`623` Move docs from RTD to self-serve site 248- {issue}`623` Modernize Makefiles 249- {issue}`623` New development docs 250- {issue}`623` Move doc -> docs 251- {issue}`623` Move tests to GitHub Actions 252- {issue}`623` Update pyproject.toml to experiment with poetry packaging 253- {issue}`619` isort 5 254- {issue}`629` Update black from 19.10b0 to 20.08b1 255 256## tmuxp 1.5.5 (2020-07-26) 257 258- {issue}`616` (via: {issue}`599`) New command: `tmuxp ls` 259 260 List commands available via config directory. If the config is printed, 261 it's loadable via `tmuxp load configfilename` without needing to type the 262 full filepath. Thank you @pythops! 263 264- {issue}`480` Fix typo, thanks @jstoja 265- {issue}`578` Fix typo, thanks @mauroporras 266- {issue}`519` Fix typo, thanks @timgates42 267- {issue}`506` Fix Makefile typo, thanks @wolfgangpfnuer 268- {issue}`619` Update isort to 5.x 269- Travis: Only run on master and PRs one time 270- Travis: Add caching for tmux builds 271- Travis: Test 2.9 and 3.0a 272- {issue}`613`: Move from Pipenv to Poetry 273 274## tmuxp 1.5.4 (2019-11-06) 275 276- {issue}`500`: Fix window focus 277- Fix travis CI builds for python 3.7 278 279## tmuxp 1.5.3 (2019-06-06) 280 281- {issue}`377`: Include examples in source distribution package 282 283## tmuxp 1.5.2 (2019-06-02) 284 285- Loosen libtmux version constraint to >0.8 and <0.9 (libtmux 0.8.2 286 released today) 287- {issue}`484` CHANGES converted to plain reStructuredText 288- {issue}`491` `tmuxp freeze` will now infer active session with freezing 289- {issue}`490` Fix XDG's `$XDG_CONFIG_HOME` behavior 290- {issue}`483`, {issue}`482`, {issue}`480` Doc fixes 291- {issue}`487` Simplifying handling of configs with no panes (Fixes 292 {issue}`470`) 293 294## tmuxp 1.5.1 (2019-02-18) 295 296- Add tests/\*.sh scripts to MANIFEST.in to include them in Pypi package. 297- Include twine to dev packages on requirements and Pipfile files. 298 299## tmuxp 1.5.0 (2018-10-02) 300 301- Support Click 7.0 302- Remove unused `__future__` imports 303- {issue}`471` Update libtmux 0.8.0 -> 0.8.1 304- {issue}`404` from @anddam, support XDG base directory 305- Sort imports 306- Add configuration and make command for isort. 307- Add sphinxcontrib-napoleon. 308- Assure _requirements/dev.txt_ dependencies are in _Pipfile_ 309- Update sphinx, releases to latest version 310- Sync _requirements/_.txt* dependencies with *Pipfile\*. 311- Update docstring style to use numpy-style documentation. 312 This enhances readability and plays nicely with sphinx documentation. 313- Documentation overhaul. 314 315 - Areas like {meth}`tmuxp.cli.load_workspace` are now documented verbosely. 316 This is so contributors helping on the project can more quickly gain 317 situational awareness in this tricky area of code. 318 319## tmuxp 1.4.2 (2018-09-30) 320 321- {issue}`431` Include tests in source distribution 322 323## tmuxp 1.4.1 (2018-09-26) 324 325- Loosen click restraint to <7 326 327## tmuxp 1.4.0 (2018-03-11) 328 329- Bump libtmux to 0.8.0 330- {issue}`264` Update license from BSD to MIT 331- {issue}`348` Continuous integration updates and fixes for Travis CI 332 333 - Update builds to use trusty 334 - Remove older python 3 versions (before 3.6) 335 - Update pypy versions 336 337- {issue}`349` flake8 via continuous integration 338- Improve reliability of time-sensitive tests by 339 using `while True` with a timeout. 340- Update sphinx to 1.7.1 341- Update alagitpull (sphinx theme) to 0.0.19. 342 External websites open in new window. 343- Update pytest to 3.4.1 344 345## tmuxp 1.3.5 (2017-11-10) 346 347- {issue}`312` Support for tmux 2.6 layout setting (via hooks) in the 348 following scenarios: 349 350 - loading outside tmux 351 - loading inside tmux, via switch-client 352 - loading inside tmux, with session in background (with -d), and 353 reattaching/switching to after 354 - loading session outside tmux in background with -d, and 355 reattaching/switching after 356 357- {issue}`308` Fix bug where layouts don't correctly set on tmux 2.6 358- Upgrade libtmux to 0.7.7 359 360## tmuxp 1.3.4 (2017-10-12) 361 362- {}`before_script` now respects {}`start_directory` 363 in the session root. This makes it easier to run things like {}`pipenv install` as a {}`before_script`. 364 365## tmuxp 1.3.3 (2017-10-07) 366 367- Update libtmux to 0.7.5 for tmux 2.6 hotfix 368 369## tmuxp 1.3.2 (2017-08-20) 370 371- {issue}`184` - update libtmux to fix environmental variables in the 372 session scope 373- Update libtmux to 0.7.4 374- Updates to pytest and pytest-rerunfailures 375 376## tmuxp 1.3.1 (2017-05-29) 377 378- {issue}`252` Fix bug where loading a session with a name matching a subset 379 of current session causes undesired behavior. 380- Update libtmux to 0.7.3 381- Switch theme to alagitpull (alabaster subtheme) 382- Remove unneeded doc dependency packages 383 384## tmuxp 1.3.0 (2017-04-27) 385 386- {issue}`239` Improve support for formatted options when freezing and 387 using configs with them. 388- {issue}`236` Support for symlinked directories, thanks @rafi. 389- {issue}`235` Support for `options_after`, for setting options like 390 `synchronize-panes`. Thanks @sebastianst. 391- {issue}`248` Drop python 2.6 support 392- {issue}`248` Upgrade libtmux to 0.7.1 393- Upgrade colorama from 0.3.7 to 0.3.9 394 395## tmuxp 1.2.8 (2017-04-02) 396 397- {issue}`229` More helpful error message on systems missing 398 tmux. 399- Update libtmux from 0.6.4 to 0.6.5. 400 401## tmuxp 1.2.7 (2017-03-25) 402 403- Support for OpenBSD. 404 405## tmuxp 1.2.6 (2017-02-24) 406 407- {issue}`218` Fix pane ordering by running `select-layout` before 408 splits. 409 410## tmuxp 1.2.5 (2017-02-08) 411 412- {issue}`207` add custom tmuxp config directory via 413 `TMUXP_CONFIGDIR` variable. 414- {issue}`199` support for running tmuxp on tmux `master`. 415- update libtmux from 0.6.2 to 0.6.3. 416 417## tmuxp 1.2.4 (2017-01-13) 418 419- {issue}`198` bump click from 6.6 to 6.7 420- {issue}`195` pin packages for colorama and doc requirements 421 422## tmuxp 1.2.3 (2016-12-21) 423 424- bump libtmux 0.6.0 to 0.6.1 425- {issue}`193` improve suppress history test, courtesy of @abeyer. 426- {issue}`191` documentation typo from @modille 427- {issue}`186` documentation typo from @joelwallis 428 429## tmuxp 1.2.2 (2016-09-16) 430 431- {issue}`181` Support tmux 2.3 432 433## tmuxp 1.2.1 (2016-09-16) 434 435- {issue}`132` Handle cases with invalid session names 436- update libtmux from 0.5.0 to 0.6.0 437 438## tmuxp 1.2.0 (2016-06-16) 439 440- {issue}`65` Ability to specify `options` and `global_options` via 441 configuration. Also you can specify environment variables via that. 442 443 Include tests and add example. 444 445## tmuxp 1.1.1 (2016-06-02) 446 447- {issue}`167` fix attaching multiple sessions 448- {issue}`165` fix typo in error output, thanks @fpietka 449- {issue}`166` add new docs on zsh/bash completion 450- Add back `tmuxp -V` for version info 451 452## tmuxp 1.1.0 (2016-06-01) 453 454- {issue}`160` load tmuxp configs by name 455- {issue}`134` Use `click` for command-line completion, Rewrite command 456 line functionality for importing, config finding, conversion and prompts. 457- Remove `-l` from `tmuxp import tmuxinator|teamocil` 458- {issue}`158` argparse bug overcome by switch to click 459 460## tmuxp 1.0.2 (2016-05-25) 461 462- {issue}`163` fix issue re-attaching sessions that are already loaded 463- {issue}`159` improved support for tmuxinator imports, from @fpietka. 464- {issue}`161` readme link fixes from @Omeryl. 465 466## tmuxp 1.0.1 (2016-05-25) 467 468- switch to readthedocs.io for docs 469- {issue}`157` bump libtmux to 0.4.1 470 471## tmuxp 1.0.0-rc1 (2016-05-25) 472 473- version jump 0.11.1 to 1.0 474- tests moved to py.test framework 475- [libtmux][libtmux] core split into its own project 476- {issue}`145` Add new-window command functionality, @ikirudennis 477- {issue}`146` Optionally disable shell history suppression, @kmactavish 478- {issue}`147` Patching unittest timing for shell history suppression 479- move doc building, tests and watcher to Makefile 480- update .tmuxp.yaml and .tmuxp.json for Makefile change 481- overhaul README 482 483## tmuxp 0.11.0 (2016-02-29) 484 485- {issue}`137` Support for environment settings in configs, thanks 486 {}`@tasdomas` 487- Spelling correction, thanks [@sehe][@sehe]. 488 489## tmuxp 0.10.0 (2016-01-30) 490 491- {issue}`135` Load multiple tmux sessions at once, thanks [@madprog][@madprog]. 492- {issue}`131` {issue}`133` README and Documentation fixes 493 494## tmuxp 0.9.3 (2016-01-06) 495 496- switch to `.venv` for virtualenv directory to not conflict 497 with `.env` (used by [autoenv][autoenv]). 498- {issue}`130` move to [entr(1)][entr(1)] for file watching in tests. update docs. 499- [compatibility] Support [Anaconda Python][anaconda python] 2 and 3 500 501## tmuxp 0.9.2 (2015-10-21) 502 503- {issue}`122` Update to support tmux 2.1, thank you [@estin][@estin]. 504- use travis container infrastructure for faster tests 505- change test in workspace builder test to use `top(1)` instead of 506 `man(1)`. `man(1)` caused errors on some systems where `PAGER` is set. 507 508## tmuxp 0.9.1 (2015-08-23) 509 510- {issue}`119` Add fix python 3 for [sysutils/pytmuxp][sysutils/pytmuxp] on FreeBSD ports. 511 See GH issue 119 and [#201564][#201564] @ FreeBSD Bugzilla. Thanks Ruslan 512 Makhmatkhanov. 513 514## tmuxp 0.9.0 (2015-07-08) 515 516- Renamed `config.expandpath` to `config.expandshell`. 517- compat 2.7/3.3 wrapper for `EnvironmentVarGuard` for 518 testing. 519- You can now use environment variables inside of 520 `start_directory`, `before_script`, `shell_command_before`, 521 `session_name` and `window_name`. 522- [examples]: add example for environmental variables, 523 `examples/env-variables.json` and `examples/env-variables.yaml`. 524- {issue}`110` de-vendorize [colorama][colorama]. Thanks [@marbu][@marbu]. 525- {issue}`109` fix failure of test_pane_order on fedora machines from 526 [@marbu][@marbu] 527- {issue}`105` append `.txt` extension to manuals (repo ony) 528 from [@yegortimoshenko][@yegortimoshenko]. 529- {issue}`107` Fix Server.attached_sessions return type by 530 [@thomasballinger][@thomasballinger]. 531- update travis to use new tmux git repository. 532 533## tmuxp 0.8.1 (2015-05-09) 534 535- [testing]: fix sniffer test runner in python 3 536- new animated image demo for RTD and README 537 538## tmuxp 0.8.0 (2015-05-07) 539 540- version bump 0.1.13 -> 0.8.0 541- tmux 2.0 support 542- Fix documentation for :meth:`Session.switch_client()`. 543- Add `--log-level` argument. 544- Refactor `{Server,Session,Window,Pane}.tmux` into: 545 546 - {meth}`Server.cmd()` 547 - {meth}`Session.cmd()` 548 - {meth}`Window.cmd()` 549 - {meth}`Pane.cmd()` 550 551 (See conversation at <https://github.com/bitprophet/dotfiles/issues/5>) 552 553- Refactor `util.tmux` into {meth}`util.tmux_cmd`. 554 555## tmuxp 0.1.13 (2015-03-25) 556 557- Remove `package_metadata.py` in favor of `__about__.py`. 558- `scent.py` for building docs 559- docutils from 0.11 to 0.12 560- `bootstrap_env.py` will check for linux, darwin (OS X) and 561 windows and install the correct [sniffer][sniffer] file watcher plugin. 562- testsuite for cli uses {py:func}`tempfile.mkdtemp()` instead 563 `TMP_DIR` (which resolved to `.tmuxp` in the testsuite directory. 564- replace [watchingtestrunner][watchingtestrunner] with [sniffer][sniffer] in examples. 565 `.tmuxp.conf` and `.tmux.json` updated 566- updates to doc links 567- `make checkbuild` for verifying internal / intersphinx doc 568 references. 569- Add Warning tmux versions less than 1.4 from [@techtonik][@techtonik]. 570- Add documentation on leading space in `send_keys` 571 from [@thomasballinger][@thomasballinger]. 572- Update about page from teamocil and erb support from [@raine][@raine]. 573 574## tmuxp 0.1.12 (2014-08-06) 575 576- [config] {meth}`config.expand` now resolves directories in configuration 577 via {py:func}`os.path.expanduser` and {py:func}`os.path.expandvars`. 578- [config] {meth}`config.expandpath` for helping resolve paths. 579- improved support for loading tmuxp project files from 580 outside current working directory. e.g. 581 582 ``` 583 $ tmuxp load /path/to/my/project/.tmuxp.yaml 584 ``` 585 586 Will behave better with relative directories. 587 588## tmuxp 0.1.11 (2014-04-06) 589 590- `before_script` now loads relative to project directory with 591 `./`. 592- Use `bootstrap_env.py` in tmuxp's `.tmuxp.yaml` and 593 `.tmuxp.json` project files. 594- Improvements to {meth}`util.run_before_script()`, 595 {class}`exc.BeforeLoadScriptFailed` behavior to print `stdout` and 596 return `stderr` is a non-zero exit is returned. 597- `run_script_before` has moved to `util`. 598- `BeforeLoadScriptFailed` and `BeforeLoadScriptNotExists` 599 has moved to the `exc` module. 600- Tests for `run_script_before` refactored. 601 602## tmuxp 0.1.10 (2014-04-02) 603 604- 2 bug fixes and allow panes with no shell commands to accept options, 605 thanks for these 3 patches, [@ThiefMaster][@thiefmaster]: 606- {issue}`73` Fix an error caused by spaces in 607 `start_directory`. 608- {issue}`77` Fix bug where having a `-` in a 609 `shell_command` would cauesd a build error. 610- {issue}`76` Don't require `shell_command` to 611 pass options to panes (like `focus: true`). 612 613## tmuxp 0.1.9 (2014-04-01) 614 615- The `--force` was not with us. 616 617## tmuxp 0.1.8 (2014-03-30) 618 619- {issue}`72` Create destination directory if it doesn't exist. Thanks 620 [@ThiefMaster][@thiefmaster]. 621- New context manager for tests, `temp_session`. 622- New testsuite, `testsuite.test_utils` for testing testsuite 623 tools. 624- New command, `before_script`, which is a file to 625 be executed with a return code. It can be a bash, perl, python etc. 626 script. 627- {issue}`56` {ref}`python_api_quickstart <libtmux:quickstart>` 628 629## tmuxp 0.1.7 (2014-02-25) 630 631- {issue}`55` where tmuxp would crash with letter numbers in version. 632 Write tests. 633 634## tmuxp 0.1.6 (2014-02-08) 635 636- {meth}`Window.split_window()` now allows `-c start_directory`. 637- {issue}`35` Builder will now use `-c start_directory` to 638 create new windows and panes. 639 640 This removes a hack where `default-path` would be set for new pane and 641 window creations. This would bleed into tmux user sessions after 642 creations. 643 644## tmuxp 0.1.5-1 (2014-02-05) 645 646- {issue}`49` bug where `package_manifest.py` missing 647 from `MANIFEST.in` would cause error installing. 648 649## tmuxp 0.1.5 (2014-02-05) 650 651- section heading normalization. 652- tao of tmux section now treated as a chatper. tao of tmux may be 653 split off into its own project. 654- use conventions from [tony/cookiecutter-pypackage][tony/cookiecutter-pypackage]. 655 656## tmuxp 0.1.4 (2014-02-02) 657 658- Fix `$ tmuxp freeze` CLI output. 659- Update `_compat` support module. 660- Fix extra space in [PEP 263][pep 263]. 661 662## tmuxp 0.1.3 (2014-01-29) 663 664- {issue}`48` Fix Python 3 CLI issue. 665- {issue}`48` `$ tmuxp` without option raises an error. 666- Add space before send-keys to not populate bash and zsh 667 history. 668 669## tmuxp 0.1.2 (2014-01-08) 670 671- now using werkzeug / flask style testsuites. 672- {issue}`43` Merge `tmuxp -d` for loading in detached mode. 673 Thanks [roxit][roxit]. 674 675## tmuxp 0.1.1 (2013-12-25) 676 677- {issue}`32` Fix bug where special characters caused unicode caused 678 unexpected outcomes loading and freezing sessions. 679 680## tmuxp 0.1.0 (2013-12-18) 681 682- fix duplicate print out of filename with using `tmuxp load .`. 683- version to 0.1. No `--pre` needed. Future versions will not use rc. 684 685## tmuxp 0.1-rc8 (2013-12-17) 686 687- `unicode_literals` 688- Move py2/py3 compliancy code to `_compat`. 689 690## tmuxp 0.1-rc7 (2013-12-07) 691 692- {issue}`33` Partial rewrite of {meth}`config.expand`. 693- tmuxp will exit silently with `Ctrl-c`. 694 695## tmuxp 0.1-rc6 (2013-12-06) 696 697- {issue}`31` [examples] from stratoukos add `window_index` option, 698 and example. 699 700## tmuxp 0.1-rc5 (2013-12-04) 701 702- {issue}`28` shell_command_before in session scope of config causing 703 duplication. New test. 704- {issue}`26` {issue}`29` for OS X tests. Thanks stratoukos. 705- {issue}`27` `$ tmuxp freeze` raises unhelpful message if session doesn't 706 exist. 707 708## tmuxp 0.1-rc4 (2013-12-03) 709 710- fix bug were `focus: true` would not launch sessions when using 711 `$ tmuxp load` in a tmux session. 712 713## tmuxp 0.1-rc3 (2013-12-03) 714 715- {issue}`25` `focus: true` not working in panes. Add 716 tests for focusing panes in config. 717- {meth}`Pane.select_pane()`. 718- add new example for `focus: true`. 719 720## tmuxp 0.1-rc2 (2013-11-23) 721 722- {issue}`23` fix bug where workspace would not build with pane-base-index 723 set to 1. Update tests to fix if `pane-base-index` is not 0. 724- removed `$ tmuxp load --list` functionality. Update 725 {ref}`quickstart` accordingly. 726 727## tmuxp 0.1-rc1 (2013-11-23) 728 729- [pep8][pep8] and [pep257][pep257] in unit tests. 730- Changelog will now be updated on a version basis, use [pep440][pep440] 731 versioning. 732 733## tmuxp 0.1-dev (2013-11-21) 734 735- {meth}`Session.show_options`, {meth}`Session.show_option` now 736 accept `g` to pass in `-g`. 737 738## tmuxp 0.1-dev (2013-11-20) 739 740- {meth}`Window.show_window_options`, 741 {meth}`Window.show_window_option` now accept `g` to pass in `-g`. 742- {issue}`15` Behavioral changes in the WorkspaceBuilder to fix pane 743 ordering. 744- {issue}`21` Error with unit testing python 2.6 python configuration tests. 745 Use {py:mod}`tempfile` instead. 746- WorkspaceBuilder tests have been improved to use async better. 747 748## tmuxp 0.1-dev (2013-11-17) 749 750- fix a bug where missing tmux didn't show correct warning. 751 752## tmuxp 0.1-dev (2013-11-15) 753 754- Travis now tests python 2.6 as requirement and not allowed to 755 fail. 756 757## tmuxp 0.1-dev (2013-11-13) 758 759- {issue}`19` accept `-y` argument to answer yes to questions. 760- {meth}`cli.SessionCompleter` no longer allows a duplicate session 761 after one is added. 762- ongoing work on {ref}`about_tmux`. 763 764## tmuxp 0.1-dev (2013-11-09) 765 766- [translation] [documentation in Chinese][documentation in chinese] from [wrongwaycn][wrongwaycn]. 767- More work done on the {ref}`about_tmux` page. 768- {meth}`Pane.split_window()` for splitting {class}`Window` at 769 `target-pane` location. 770 771## tmuxp 0.1-dev (2013-11-08) 772 773- [freeze] - `$ tmuxp freeze` will now freeze a window with a 774 `start_directory` when all panes in a window are inside the same 775 directory. 776- [config] {meth}`config.inline` will now turn panes with no 777 other attributes and 1 command into a single item value. 778 779 ``` 780 - panes: 781 - shell_command: top 782 783 # will now inline to: 784 785 - panes 786 - top 787 788 This will improve ``$ tmuxp freeze`` 789 ``` 790 791## tmuxp 0.1-dev (2013-11-07) 792 793- Remove old logger (based on [tornado's log.py][tornado's log.py]), replace 794 with new, simpler one. 795- fix [teamocil][teamocil] import. 796- support import teamocil `root` to 797 `start_directory`. 798 799## tmuxp 0.1-dev (2013-11-06) 800 801- tagged v0.0.37. Many fixes. Python 2.6 support. Will 802 switch to per-version changelog after 0.1 release. 803- support for blank panes (null, `pane`, `blank`) and panes 804 with empty strings. 805- tmuxp freeze supports exporting to blank panes. 806- tmuxp freeze will now return a blank pane for panes that would 807 previously return a duplicate shell command, or generic python, node 808 interpreter. 809 810## tmuxp 0.1-dev (2013-11-05) 811 812- Support for `[-L socket-name]` and `[-S socket-path]` in 813 autocompletion and when loading. Note, switching client into another 814 socket may cause an error. 815- Documentation tweaking to {ref}`API`, {ref}`about_tmux`. 816- [pep257][pep257], [pep8][pep8]. 817 818## tmuxp 0.1-dev (2013-11-04) 819 820- [pep257][pep257], [pep8][pep8]. 821- tagged version `v0.0.36`. 822 823## tmuxp 0.1-dev (2013-11-02) 824 825- Many documentation, [pep257][pep257], [pep8][pep8] fixes 826- move old {class}`Server` methods `__list_panes()`, 827 `__list_windows` and `__list_sessions` into the single underscore. 828- {issue}`12` fix for `$ tmuxp freeze` by @finder. 829- Support for spaces in `$ tmuxp attach-session` and 830 `$ tmuxp kill-session`, and `$ tmuxp freeze`. 831- [config] support for relative paths of `start_directory`. Add an 832 update config in _Start Directory_ on {ref}`examples`. 833 834## tmuxp 0.1-dev (2013-11-01) 835 836- New servers for {class}`Server` arguments `socket_name`, 837 `socket_path`, `config_file`. 838- {class}`Server` support for `-2` with `colors=256` and 839 `colors=8`. 840- `$ tmuxp -2` for forcing 256 colors and `tmuxp -8` for forcing 88. 841- [config] Concatenation with `start_directory` via 842 {meth}`config.trickle()` if window `start_directory` is alphanumeric / 843 relative (doesn't start with `/`). See {ref}`Examples` in _start directory_. 844- Fix bug with import teamocil and tmuxinator 845- Improve quality of tmuxinator imports. Especially `session_name` 846 and `start_directory`. 847- Allow saving with `~` in file destination. 848 849## tmuxp 0.1-dev (2013-10-31) 850 851- {meth}`util.is_version()` 852- correctly {meth}`config.trickle()` the `start_directory`. 853- get `start_directory` working for configs 854- fix :meth:`Window.kill_window()` target to 855 `session_id:window_index` for compatibility and pass tests. 856- [examples]: Example for `start_directory`. 857- fix bug where first and second window would load in mixed order 858- {class}`Window.move_window()` for moving window. 859- doc overhaul. front page, renamed orm_al.rst to internals.rst. 860 861## tmuxp 0.1-dev (2013-10-30) 862 863- fix bug where if inside tmux, loading a workspace via switch_client 864 wouldn't work. 865- fix bug where `tmuxp load .` would return an error instead of a 866 notice. 867- `tmuxp freeze <filename>` experimental 868- tmuxp now has experimental support for freezing live 869 sessions. 870- {meth}`Window.kill_window()` 871- support for `start_directory` (work in progress) 872 873## tmuxp 0.1-dev (2013-10-29) 874 875- {meth}`Window.select_pane` now accepts `-l`, `-U`, `-D`, 876 `-L`, `-R`. 877- support for `automatic-rename` option. 878- 3 new {ref}`examples`, 'main-pane-height', 'automatic-rename', and 879 'shorthands'. 880- enhancements to prompts 881- `tmuxp import` for teamocil and tmuxinator now has a wizard and offers 882 to save in JSON or YAML format. 883- [b6c2e84] Fix bug where tmuxp load w/ session already loaded would 884 switch/attach even if no was entered 885- when workspace loader crashes, give option to kill session, attach it or 886 detach it. 887- tmux 1.8 `set-option` / `set-window-options` command 888 `target-window` fix. 889- {class}`WorkspaceBuilder` now has `.session` attribute accessible 890 publicly. 891- tmux will now use {meth}`Session.switch_client` and 892 {meth}`Session.attach_session` to open new sessions instead of `os.exec`. 893- [config] tmuxp now allows a new shorter form for panes. Panes can just be a 894 string. See the shorthand form in the {ref}`examples` section. 895- [config] support loading `.yml`. 896 897## tmuxp 0.1-dev (2013-10-28) 898 899- fix `tmuxp load .` fixed 900- fix `tmuxp convert <file>` fixed. 901- [pep257][pep257] fixes. 902- {class}`Pane` now has {meth}`Pane.set_width` and 903 {meth}`Pane.set_height`. 904- `./run_tests.py --tests` now automatically prepends 905 `tmuxp.testsuite` to names. 906- {meth}`Window.tmux` and {meth}`Pane.tmux` will automatically add 907 their `{window/pane}_id` if one isn't specific. 908 909## tmuxp 0.1-dev (2013-10-27) 910 911- [argcomplete][argcomplete] overhaul for CLI bash completion. 912- `tmuxp load`, `tmuxp convert` and `tmuxp import` now support 913 relative and full filenames in addition to searching the config 914 directory. 915 916## tmuxp 0.1-dev (2013-10-26) 917 918- initial version of [tmuxinator][tmuxinator] and [teamocil][teamocil] 919 config importer. it does not support all options and it not guaranteed 920 to fully convert window/pane size and state. 921- {meth}`config.in_dir` supports a list of `extensions` for 922 filetypes to search, i.e. `['.yaml', '.json']`. 923- {meth}`config.is_config_file` now supports `extensions` 924 argument as a string also. 925- fix `$ tmuxp load -l` to work correctly alongside 926 `$ tmuxp load filename`. 927 928## tmuxp 0.1-dev (2013-10-25) 929 930- fix bug where `-v` and `--version` wouldn't print version. 931- property handle case where no tmux server exists when 932 `attach-session` or `kill-session` is used. 933- test fixtures and inital work for importing 934 [tmuxinator][tmuxinator] and [teamocil][teamocil] configs 935 936## tmuxp 0.1-dev (2013-10-24) 937 938- clean out old code for `automatic-rename` option. it will 939 be reimplemented fresh. 940- check for `oh-my-zsh` when using `$SHELL` `zsh`. Prompt if 941 `DISABLE_AUTO_TITLE` is unset or set to `true`. 942- tmuxp can now `$ tmuxp convert <file>` from JSON <=> YAML, back 943 and forth. 944- New examples in JSON. Update the {ref}`examples` page in the 945 docs. 946- [dev] `.tmuxp.json` now exists as a config for tmuxp development and 947 as an example. 948- Fix bug where `tmuxp kill-session` would give bad output 949- Fix bug in tab completion for listing sessions with no tmux server 950 is active. 951 952## tmuxp 0.1-dev (2013-10-23) 953 954- zsh/bash/tcsh completion improvements for tab-completion options 955- tmuxp `kill-session` with tab-completion. 956- tmuxp `attach-session` with tab-completion. Attach session will 957 `switch-client` for you if you are inside of of a tmux client. 958- tmuxp `load` for loading configs. 959- unit test fixes. 960 961## tmuxp 0.1-dev (2013-10-21) 962 963- Make 1.8 the official minimym version, give warning notice to 964 upgrade tmux if out of date 965- Fix regression causing unexpected build behavior due to unremoved code 966 supporting old tmux versions. 967- Added 2 new examples to the {ref}`examples` page. 968- Examples now have graphics 969- `$ tmuxp -v` will print the version info. 970 971## tmuxp 0.1-dev (2013-10-19) 972 973- tmuxp will now give warning and sys.exit() with a message if 974 `tmux` not found in system PATH 975- internal overhaul of {class}`Server`, {class}`Session` 976 , {class}`Window`, and {class}`Pane` continues. 977 978 - {class}`Server` has @property {meth}`Server.sessions`, which is forward 979 to {meth}`Server.list_sessions()` (kept to keep tmux commands in 980 serendipty with api), {meth}`Server._list_sessions()` returns dict 981 object from {meth}`Server.__list_sessions()` tmux command. 982 {meth}`Server.__list_sessions()` exists to keep the command layered so 983 it can be tested against in a matrix with travis and compatibility 984 methods can be made. 985 - {class}`Session` now has @proprety {meth}`Session.windows` returning a 986 list of {class}`Window` objects via {meth}`Session.list_windows()`. 987 @property {meth}`Session._windows` to {meth}`Session._list_windows()` 988 to return a list of dicts without making objects. 989 - {class}`Window` now has @proprety {meth}`Window.panes` returning a 990 list of {class}`Pane` objects via {meth}`Window.list_panes()`. 991 @property {meth}`Window._panes` to {meth}`Window._list_panes()` 992 to return a list of dicts without making objects. 993 994## tmuxp 0.1-dev (2013-10-18) 995 996- internal overhaul of {class}`Server`, {class}`Session`, 997 {class}`Window`, and {class}`Pane`. 998 999 - `Session`, `Window` and `Pane` now refer to a data object 1000 in {class}`Server` internally and always pull the freshest data. 1001 - A lot of code and complexity regarding setting new data for objects 1002 has been reduced since objects use their unique key identifier to 1003 filter their objects through the windows and panes in `Server` 1004 object. 1005 - `Server` object is what does the updating now. 1006 1007- [project] some research into supporting legacy tmux versions. tmux 1.6 1008 and 1.7 support seem likely eventually if there is enough demand. 1009- python 3 support 1010 1011## tmuxp 0.1-dev (2013-10-17) 1012 1013- updated README docs with new project details, screenshots 1014- new example `.tmuxp.yaml` file updated to include 1015 development workflow. Removed nodemon as the tool for checking files for 1016 now. 1017- Support for switching sessions from within tmux. In both cases 1018 after the the session is built and if session already exists. 1019 1020## tmuxp 0.1-dev (2013-10-16) 1021 1022- use {meth}`util.which()` from salt.util to find tmux binary. 1023- add MANIFEST.in, fix issue where package would not 1024 install because missing file 1025- bash / zsh completion. 1026- New page on {ref}`internals`. 1027- Updates to {ref}`about_tmux` page. 1028- add vim modeline for rst to bottom of this page 1029- Server is now a subclass of `util.TmuxObject`. 1030- subclasses of {class}`util.TmuxRelationalObject`, 1031 {class}`Server`, {class}`Session`, {class}`Window`, {class}`Pane` now 1032 have {meth}`util.TmuxRelationalObject.getById` (similar to [.get()][.get()] in 1033 [backbone.js][backbone.js] collection), {meth}`util.TmuxRelationalObject.where` and 1034 {meth}`util.TmuxRelationalObject.findWhere` ([.where()][.where()] and 1035 [.findWhere()][.findwhere()] in [underscore.js][underscore.js]), to easily find child objects. 1036- tmux object mapping has been split into 1037 {class}`util.TmuxMappingObject`. The mapping and the relational has been 1038 decoupled to allow {class}`Server` to have children while not being a 1039 dict-like object. 1040- {class}`Server`, {class}`Session`, {class}`Window`, 1041 {class}`Pane` now explicitly mixin subclasses. 1042 1043## tmuxp 0.1-dev (2013-10-15) 1044 1045- new theme 1046- initial examples, misc. updates, front page update. 1047- support for `$ tmux .` to load `.tmuxp.{yaml/json/py}` in current 1048 working directory. 1049- support for `socket-name` (`-L`) and `socket-path` 1050 (`socket-path`) 1051- [config] Support for 1-command pane items. 1052 1053 ``` 1054 session_name: my session 1055 windows: 1056 - window_name: hi 1057 panes: 1058 - bash 1059 - htop 1060 ``` 1061 1062- If session name is already exists, prompt to attach. 1063 1064## tmuxp 0.1-dev (2013-10-14) 1065 1066- can now -l to list configs in current directory and $HOME/.tmuxp 1067- tmuxp can now launch configs and build sessions 1068- new exceptions 1069- {meth}`config.check_consistency()` to verify and diagnose 1070 issues with config files. 1071- {meth}`cli.startup()` 1072- {meth}`config.is_config_file()` 1073- {meth}`config.in_dir()` 1074- {meth}`config.in_cwd()` 1075 1076## tmuxp 0.1-dev (2013-10-13) 1077 1078- {meth}`config.inline()` to produce far far better looking 1079 config exports and tests. 1080- {meth}`Pane.resize_pane()` and tests 1081- documentation fixes and updates 1082- {meth}`Session.refresh()`, {meth}`Window.refresh()`, 1083 {meth}`Pane.refresh()`. 1084- {meth}`Server.find()`, {meth}`Session.find()`, 1085 {meth}`Window.find()`. 1086 1087## tmuxp 0.1-dev (2013-10-12) 1088 1089- Test documentation updates 1090- Builder is now {class}`WorkspaceBuilder` + tests. 1091 - WorkspaceBuilder can build panes 1092 - WorkspaceBuilder can build windows and set options 1093- {meth}`Window.show_window_options()`, 1094 {meth}`Window.show_window_option()`, {meth}`Window.set_window_option()` 1095- {meth}`Session.show_options()`, 1096 {meth}`Session.show_option()`, {meth}`Session.set_option()` 1097 1098## tmuxp 0.1-dev (2013-10-11) 1099 1100- More preparation for builder / session maker utility. 1101- test runner and test suite overhaul. 1102- Documentation for development environment and test runner updated. 1103- Travis now tests against tmux 1.8 and latest source. Door open for 1104 future testing against python 3 and earlier tmux versions in the future. 1105- Quiet logger down in some areas 1106- **future** imports for future python 3 compatibility 1107- setup.py import **version** via regex from tmuxp package 1108- move beginnings of cli to `tmuxp.cli` 1109 1110## tmuxp 0.1-dev (2013-10-09) 1111 1112- New logging module 1113- Removed dependency logutils 1114- Removed dependency sh 1115 1116## tmuxp 0.1-dev (2013-10-08) 1117 1118- switch to semver 1119 1120[tmuxinator]: https://github.com/aziz/tmuxinator 1121[teamocil]: https://github.com/remiprev/teamocil 1122[argcomplete]: https://github.com/kislyuk/argcomplete 1123[pep257]: http://www.python.org/dev/peps/pep-0257/ 1124[pep8]: http://www.python.org/dev/peps/pep-0008/ 1125[pep440]: http://www.python.org/dev/peps/pep-0440/ 1126[tony/cookiecutter-pypackage]: https://github.com/tony/cookiecutter-pypackage 1127[@tasdomas]: https://github.com/tasdomas 1128[@sehe]: https://github.com/sehe 1129[@madprog]: https://github.com/madprog 1130[autoenv]: https://github.com/kennethreitz/autoenv 1131[entr(1)]: http://entrproject.org/ 1132[anaconda python]: http://docs.continuum.io/anaconda/index 1133[@estin]: https://github.com/estin 1134[sysutils/pytmuxp]: http://www.freshports.org/sysutils/py-tmuxp/ 1135[#201564]: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=201564 1136[colorama]: https://pypi.python.org/pypi/colorama 1137[@marbu]: https://github.com/marbu 1138[@yegortimoshenko]: https://github.com/yegortimoshenko 1139[@thomasballinger]: https://github.com/thomasballinger 1140[sniffer]: https://github.com/jeffh/sniffer 1141[watchingtestrunner]: https://pypi.python.org/pypi/watching_testrunner/1.0 1142[@raine]: https://github.com/raine 1143[@techtonik]: https://github.com/techtonik 1144[@thiefmaster]: https://github.com/ThiefMaster 1145[pep 263]: http://www.python.org/dev/peps/pep-0263/ 1146[roxit]: https://github.com/roxit 1147[documentation in chinese]: http://tmuxp-zh.readthedocs.io 1148[wrongwaycn]: https://github.com/wrongwaycn 1149[tornado's log.py]: https://github.com/facebook/tornado/blob/master/tornado/log.py 1150[underscore.js]: http://underscorejs.org/ 1151[backbone.js]: http://backbonejs.org/ 1152[.get()]: http://backbonejs.org/#Collection-get 1153[.where()]: http://underscorejs.org/#where 1154[.findwhere()]: http://underscorejs.org/#findWhere 1155[libtmux]: https://github.com/tmux-python/libtmux 1156 1157<!--- 1158# vim: set filetype=markdown: 1159--> 1160