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