xonsh/CHANGELOG.rst

388 lines
16 KiB
ReStructuredText
Raw Normal View History

2015-12-30 22:54:32 -08:00
================
Xonsh Change Log
================
Current Developments
====================
2016-06-02 17:12:46 -04:00
**Added:**
* Question mark literals, ``?``, are now allowed as part of
subprocess argument names.
2016-06-04 15:46:02 -04:00
* IPython style visual pointer to show where syntax error was detected
2016-06-05 19:03:26 -04:00
* Pretty printing of output and syntax highlighting of input and output can now
be controlled via new environment variables ``$COLOR_INPUT``,
``$COLOR_RESULTS``, and ``$PRETTY_PRINT_RESULTS``.
2016-05-28 19:14:45 -04:00
2016-06-02 17:12:46 -04:00
**Changed:**
2016-05-30 10:17:53 +02:00
2016-06-03 11:38:43 -04:00
* ``which`` now gives a better verbose report of where the executables are
found.
* Tab completion now uses a different interface, which allows new completers
to be implemented in Python.
* Most functions in the ``Execer`` now take an extra argument
``wrap_subprocs``, indicating whether the syntactially invalid expressions
should be wrapped in ``![]`` automatically
* ``prompt_toolkit`` is now loaded lazily, decreasing load times when using
the ``readline`` shell.
* RC files are now executed directly in the appropriate context.
2016-06-05 19:05:31 -04:00
* ``_`` is now updated by ``![]``, to contain the appropriate
``CompletedCommand`` object.
2016-05-28 19:14:45 -04:00
**Deprecated:** None
2016-06-02 17:12:46 -04:00
**Removed:**
2016-05-30 10:17:53 +02:00
2016-06-03 11:38:43 -04:00
* Fixed bug on Windows where ``which`` did not include current directory
2016-05-28 19:14:45 -04:00
2016-06-02 17:12:46 -04:00
**Fixed:**
2016-05-30 10:20:07 +02:00
2016-06-04 13:38:09 -04:00
* Fixed bug on Windows where tab-completion for executables would return all files.
* Fixed bug on Windows which caused the bash $PROMPT variable to be used when no
no $PROMPT variable was set in .xonshrc
2016-06-03 11:38:43 -04:00
* Improved start-up times by caching information about bash completion
functions
2016-06-04 23:07:22 -04:00
* The --shell-type CLI flag now takes precedence over $SHELL_TYPE specified in
.xonshrc
2016-06-06 12:28:19 +08:00
* Fixed an issue about ``os.killpg()`` on OS X which caused Xonsh crash with
2016-06-06 12:25:01 +08:00
occasionlity
2016-05-30 01:10:01 -04:00
**Security:** None
2016-05-30 03:24:22 -04:00
v0.3.2
2016-05-30 01:10:01 -04:00
====================
2016-05-29 18:53:29 -04:00
**Fixed:**
2016-06-02 08:41:32 -04:00
* Fixed PermissionError when tab completions tries to lookup executables in
2016-05-29 18:53:29 -04:00
directories without read permissions.
2016-06-02 08:41:32 -04:00
* Fixed incorrect parsing of command line flags
2016-05-28 19:14:45 -04:00
2016-05-30 01:10:01 -04:00
2016-05-28 19:14:45 -04:00
v0.3.1
====================
2016-03-23 18:12:59 -04:00
**Added:**
* When a subprocess exits with a signal (e.g. SIGSEGV), a message is printed,
similar to Bash.
2016-05-24 23:55:07 -04:00
* Added comma literals to subproc mode.
2016-05-21 10:27:16 -04:00
* ``@$(cmd)`` has been added as a subprocess-mode operator, which replaces in
the subprocess command itself with the result of running ``cmd``.
2016-05-25 21:38:58 -04:00
* New ``showcmd`` alias for displaying how xonsh interprets subprocess mode
commands and arguments.
2016-05-28 18:01:26 -04:00
* Added ``$DYNAMIC_CWD_WIDTH`` to allow the adjusting of the current working
directory width in the prompt.
2016-05-28 15:14:03 -04:00
* Added ``$XONSH_DEBUG`` environment variable to help with debuging.
2016-05-26 17:24:11 -04:00
* The ``${...}`` shortcut for ``__xonsh_env__`` now returns appropriate
2016-05-24 11:24:13 -04:00
completion options
2016-05-20 18:04:28 -04:00
2016-05-23 17:25:42 -04:00
**Changed:**
2016-05-23 12:45:38 +02:00
2016-05-23 17:25:42 -04:00
* On Windows the default bash completions files ``$BASH_COMPLETIONS`` now points
2016-05-23 12:45:38 +02:00
to the default location of the completions files used by 'Git for Windows'
* On Cygwin, some tweaks are applied to foreign shell subprocess calls and the
readline import, in order to avoid hangs on launch.
2016-05-20 18:04:28 -04:00
2016-05-28 19:14:45 -04:00
2016-05-23 00:01:27 -04:00
**Removed:**
2016-05-28 19:29:00 -04:00
* Special cased code for handling version of prompt_toolkit < v1.0.0
2016-05-20 18:04:28 -04:00
2016-05-28 19:29:00 -04:00
2016-05-21 13:39:00 -04:00
**Fixed:**
2016-05-23 11:50:30 +02:00
* Show sorted bash completions suggestions.
2016-05-23 17:25:42 -04:00
* Fix bash completions (e.g git etc.) on windows when completions files have
2016-05-22 20:12:39 +02:00
spaces in their path names
2016-05-23 17:25:42 -04:00
* Fixed a bug preventing ``source-bash`` from working on Windows
2016-05-28 16:08:48 -04:00
* Numerous improvements to job control via a nearly-complete rewrite.
* Addressed issue with finding the next break in subproc mode in context
sensitive parsing.
2016-05-25 00:17:41 -04:00
* Fixed issue with loading readline init files (inputrc) that seems to be
triggered by libedit.
2016-05-26 17:24:11 -04:00
* ``$MULTILINE_PROMPT`` now allows colors, as originally intended.
2016-05-23 00:01:27 -04:00
* Rectified install issue with Jupyter hook when installing with pyenv,
Jupyter install hook now repects ``--prefix`` argument.
2016-05-23 17:25:42 -04:00
* Fixed issue with the xonsh.ply subpackage not being installed.
2016-05-21 13:39:00 -04:00
* Fixed a parsing bug whereby a trailing ``&`` on a line was being ignored
(processes were unable to be started in the background)
2016-05-20 18:04:28 -04:00
2016-05-28 19:14:45 -04:00
2016-05-20 18:04:28 -04:00
v0.3.0
====================
2016-03-23 18:12:59 -04:00
**Added:**
2016-03-31 22:04:11 -04:00
* ``and``, ``or``, ``&&``, ``||`` have been added as subprocess logical operators,
2016-02-10 02:13:07 -05:00
by popular demand!
2016-04-10 23:38:12 -04:00
* Subprocesses may be negated with ``not`` and grouped together with parentheses.
2016-05-11 03:48:16 -04:00
* New framework for writing xonsh extentions, called ``xontribs``.
2016-03-23 18:12:59 -04:00
* Added a new shell type ``'none'``, used to avoid importing ``readline`` or
``prompt_toolkit`` when running scripts or running a single command.
* New: `sudo` functionality on Windows through an alias
* Automatically enhance colors for readability in the default terminal (cmd.exe)
on Windows. This functionality can be enabled/disabled with the
$INTENSIFY_COLORS_ON_WIN environment variable.
2016-03-31 16:56:39 -04:00
* Added ``Ellipsis`` lookup to ``__xonsh_env__`` to allow environment variable checks, e.g. ``'HOME' in ${...}``
* Added an option to update ``os.environ`` every time the xonsh environment changes.
2016-04-10 07:39:25 +02:00
This is disabled by default but can be enabled by setting ``$UPDATE_OS_ENVIRON`` to
True.
2016-05-07 17:52:20 -04:00
* Added Windows 'cmd.exe' as a foreign shell. This gives xonsh the ability to source
Windows Batch files (.bat and .cmd). Calling ``source-cmd script.bat`` or the
alias ``source-bat script.bat`` will call the bat file and changes to the
environment variables will be reflected in xonsh.
2016-05-07 17:52:20 -04:00
* Added an alias for the conda environment activate/deactivate batch scripts when
2016-04-10 07:39:25 +02:00
running the Anaconda python distribution on Windows.
* Added a menu entry to launch xonsh when installing xonsh from a conda package
2016-04-29 11:49:43 -04:00
* Added a new ``which`` alias that supports both regular ``which`` and also searches
through xonsh aliases. A pure python implementation of ``which`` is used. Thanks
to Trent Mick. https://github.com/trentm/which/
2016-05-07 17:13:18 -04:00
* Added support for prompt toolkit v1.0.0.
2016-03-27 06:39:24 -04:00
* Added ``$XONSH_CACHE_SCRIPTS`` and ``$XONSH_CACHE_EVERYTHING`` environment
variables to control caching of scripts and interactive commands. These can
also be controlled by command line options ``--no-script-cache`` and
``--cache-everything`` when starting xonsh.
2016-05-17 23:52:39 -04:00
* Added a workaround to allow ctrl-c to interrupt reverse incremental search in
the readline shell
2016-03-23 18:12:59 -04:00
**Changed:**
2016-03-20 13:52:40 -04:00
2016-03-23 18:12:59 -04:00
* Running scripts through xonsh (or running a single command with ``-c``) no
longer runs the user's rc file, unless the ``--login`` option is specified.
Also avoids loading aliases and environments from foreign shells, as well as
loading bash completions.
* rc files are now compiled and cached, to avoid re-parsing when they haven't
2016-03-27 06:39:24 -04:00
changed. Scripts are also compiled and cached, and there is the option to
cache interactive commands.
2016-04-01 16:27:45 -04:00
* Left and Right arrows in the ``prompt_toolkit`` shell now wrap in multiline
environments
* Regexpath matching with backticks, now returns an empty list in python mode.
* Pygments added as a dependency for the conda package
2016-05-07 17:13:18 -04:00
* Foreign shells now allow for setting exit-on-error commands before and after
all other commands via the ``seterrprevcmd`` and ``seterrpostcmd`` arguments.
Sensinble defaults are provided for existing shells.
2016-05-07 11:54:01 +02:00
* PLY is no longer a external dependency but is bundled in xonsh/ply. Xonsh can
2016-05-08 15:10:42 -04:00
therefore run without any external dependencies, although having prompt-toolkit
recommended.
2016-05-13 21:25:51 +01:00
* Provide better user feedback when running ``which`` in a platform that doesn't
provide it (e.g. Windows).
2016-05-19 19:07:27 -04:00
* The lexer now uses a custom tokenizer that handles regex globs in the proper
way.
2016-03-20 13:52:40 -04:00
2016-05-20 18:04:28 -04:00
2016-03-20 13:52:40 -04:00
2016-03-22 23:57:51 -04:00
**Fixed:**
* Fixed bug with loading prompt-toolkit shell < v0.57.
2016-04-10 12:13:36 -04:00
* Fixed bug with prompt-toolkit completion when the cursor is not at the end of
the line.
* Aliases will now evaluate enviornment variables and other expansions
at execution time rather than passing through a literal string.
2016-05-07 17:52:20 -04:00
* Fixed environment variables from os.environ not beeing loaded when a running
a script
2016-05-18 03:12:43 -04:00
* The readline shell will now load the inputrc files.
2016-05-07 17:52:20 -04:00
* Fixed bug that prevented `source-alias` from working.
* Now able to ``^C`` the xonfig wizard on start up.
* Fixed deadlock on Windows when runing subprocess that generates enough output
2016-05-07 17:13:18 -04:00
to fill the OS pipe buffer.
* Sourcing foreign shells will now return a non-zero exit code if the
source operation failed for some reason.
2016-05-11 23:14:47 +02:00
* Fixed PermissionError when running commands in directories without read permissions
2016-05-13 09:40:52 +01:00
* Prevent Windows fixups from overriding environment vars in static config
2016-05-13 14:31:00 -04:00
* Fixed Optional Github project status to reflect added/removed files via git_dirty_working_directory()
* Fixed xonsh.exe launcher on Windows, when Python install directory has a space in it
* Fixed `$CDPATH` to support `~` and environments variables in its items
2016-03-20 13:52:40 -04:00
2016-05-20 18:04:28 -04:00
2016-03-20 13:52:40 -04:00
2016-04-09 00:14:03 -04:00
2016-03-20 13:52:40 -04:00
v0.2.7
====================
2016-02-13 01:37:23 -05:00
**Added:**
* Added new valid ``$SHELL_TYPE`` called ``'best'``. This selects the best value
for the concrete shell type based on the availability on the user's machine.
2016-02-18 01:06:29 -05:00
* New environment variable ``$XONSH_COLOR_STYLE`` will set the color mapping
for all of xonsh.
* New ``XonshStyle`` pygments style will determine the approriate color
mapping based on ``$XONSH_COLOR_STYLE``. The associated ``xonsh_style_proxy()``
is intended for wrapping ``XonshStyle`` when actually being used by
pygments.
* The functions ``print_color()`` and ``format_color()`` found in ``xonsh.tools``
dispatch to the approriate shell color handling and may be used from
anywhere.
* ``xonsh.tools.HAVE_PYGMENTS`` flag now denotes if pygments is installed and
available on the users system.
* The ``ansi_colors`` module is now availble for handling ANSI color codes.
* ``?`` and ``??`` operator output now has colored titles, like in IPython.
* ``??`` will syntax highlight source code if pygments is available.
* Python mode output is now syntax highlighted if pygments is available.
2016-02-21 13:00:01 -05:00
* New ``$RIGHT_PROMPT`` environment variable for displaying right-aligned
text in prompt-toolkit shell.
2016-03-12 19:33:17 -05:00
* Added ``!(...)`` operator, which returns an object representing the result
2016-03-16 12:33:03 -04:00
of running a command. The truth value of this object is True if the
return code is equal to zero and False otherwise.
2016-03-06 21:52:54 +01:00
* Optional dependency on the win_unicode_console package to enable unicode
support in cmd.exe on Windows. This can be disabled/enabled with the
``$WIN_UNICODE_CONSOLE`` environment variable.
2016-02-07 18:00:22 -05:00
2016-02-13 01:37:23 -05:00
**Changed:**
* Updated ``$SHELL_TYPE`` default to ``'best'``.
2016-02-18 01:06:29 -05:00
* Shell classes are now responsible for implementing their own color
formatting and printing.
* Prompt coloring, history diffing, and tracing uses new color handling
capabilities.
* New ``Token.Color`` token for xonsh color names, e.g. we now use
``Token.Color.RED`` rather than ``Token.RED``.
2016-03-16 12:33:03 -04:00
* Untracked files in git are ignored when determining if a git workdir is
is dirty. This affects the coloring of the branch label.
2016-03-08 00:35:10 -05:00
* Regular expression globbing now uses ``re.fullmatch`` instead of
``re.match``, and the result of an empty regex glob does not cause the
argument to be deleted.
2016-02-07 18:00:22 -05:00
2016-03-20 13:52:40 -04:00
2016-02-18 01:06:29 -05:00
**Removed:**
* The ``xonsh.tools.TERM_COLORS`` mapping has been axed, along with all
2016-02-22 23:32:02 -05:00
references to it. This may cause a problem if you were using a raw color code
in your xonshrc file from ``$FORMATTER_DICT``. To fix, simply remove these
references.
2016-02-07 18:00:22 -05:00
2016-02-09 02:36:57 -05:00
**Fixed:**
2016-03-18 12:20:13 -04:00
* Multidimensional slicing, as in numpy, no longer throws SyntaxErrors.
2016-02-09 02:36:57 -05:00
* Some minor zsh fixes for more platforms and setups.
2016-03-06 23:38:55 -05:00
* The ``BaseShell.settitle`` method no longer has its commands captured by
``$(...)``
2016-02-07 18:00:22 -05:00
2016-03-20 13:52:40 -04:00
2016-02-07 18:00:22 -05:00
v0.2.6
====================
2016-02-13 01:37:23 -05:00
**Added:**
2016-01-24 12:08:50 -05:00
2016-02-13 01:37:23 -05:00
* ``trace`` alias added that enables users to turn on and off the printing
2016-02-04 21:48:59 -05:00
of source code lines prior to their execution. This is useful for debugging scripts.
* New ability to force callable alias functions to be run in the foreground, i.e.
2016-02-13 01:37:23 -05:00
the main thread from which the function was called. This is useful for debuggers
2016-02-04 21:48:59 -05:00
and profilers which may require such access. Use the ``xonsh.proc.foreground``
decorator on an alias function to flag it. ``ForegroundProcProxy`` and
``SimpleForegroundProcProxy`` classes have been added to support this feature.
Normally, forcing a foreground alias is not needed.
2016-01-24 12:08:50 -05:00
* Added boolean ``$RAISE_SUBPROC_ERROR`` environment variable. If true
2016-02-13 01:37:23 -05:00
and a subprocess command exits with a non-zero return code, a
2016-01-24 12:08:50 -05:00
CalledProcessError will be raised. This is useful in scripts that should
fail at the first error.
2016-01-27 18:47:17 -05:00
* If the ``setproctitle`` package is installed, the process title will be
set to ``'xonsh'`` rather than the path to the Python interpreter.
2016-02-05 23:50:46 -05:00
* zsh foreign shell interface now supported natively in xonsh, like with Bash.
New ``source-zsh`` alias allows easy access to zsh scripts and functions.
* Vox virtual environment manager added.
2016-01-21 21:11:00 -05:00
2016-02-05 23:50:46 -05:00
**Changed:**
* The ``foreign_shell_data()`` keyword arguments ``envcmd`` and ``aliascmd``
now default to ``None``.
2016-02-05 01:31:34 -05:00
* Updated alias docs to pull in usage from the commands automatically.
2016-01-21 21:11:00 -05:00
**Fixed:**
2016-02-04 21:48:59 -05:00
* Hundreds of bugs related to line and column numbers have been addressed.
* Fixed path completion not working for absolute paths or for expanded paths on Windows.
* Fixed issue with hg dirty branches and $PATH.
2016-02-05 23:50:46 -05:00
* Fixed issues related to foreign shell data in files with whitespace in the names.
2016-02-13 01:37:23 -05:00
* Worked around bug in ConEmu/cmder which prevented ``get_git_branch()``
2016-02-07 15:03:07 -05:00
from working in these terminal emulators on Windows.
2016-01-21 21:11:00 -05:00
v0.2.5
===========
2015-12-30 22:54:32 -08:00
**Added:**
2016-02-13 01:37:23 -05:00
* New configuration utility 'xonfig' which reports current system
2016-01-06 02:03:49 -08:00
setup information and creates config files through an interactive
wizard.
* Toolkit for creating wizards now available
2016-01-10 23:21:31 -05:00
* timeit and which aliases will now complete their arguments.
2016-02-13 01:37:23 -05:00
* $COMPLETIONS_MENU_ROWS environment variable controls the size of the
2015-12-30 23:00:05 -08:00
tab-completion menu in prompt-toolkit.
* Prompt-toolkit shell now supports true multiline input with the ability
to scroll up and down in the prompt.
2015-12-30 22:54:32 -08:00
**Changed:**
2016-01-06 02:03:49 -08:00
* The xonfig wizard will run on interactive startup if no configuration
file is found.
* BaseShell now has a singleline() method for prompting a single input.
* Environment variable docs are now auto-generated.
2016-02-13 01:37:23 -05:00
* Prompt-toolkit shell will now dynamically allocate space for the
2015-12-30 23:00:05 -08:00
tab-completion menu.
2016-01-10 19:43:57 -05:00
* Looking up nonexistent environment variables now generates an error
in Python mode, but produces a sane default value in subprocess mode.
* Environments are now considered to contain all manually-adjusted keys,
and also all keys with an associated default value.
2015-12-30 22:54:32 -08:00
**Removed:**
2016-02-13 01:37:23 -05:00
* Removed ``xonsh.ptk.shortcuts.Prompter.create_prompt_layout()`` and
2016-01-18 16:22:03 -05:00
``xonsh.ptk.shortcuts.Prompter.create_prompt_application()`` methods
to reduce portion of xonsh that forks prompt-toolkit. This may require
users to upgrade to prompt-toolkit v0.57+.
2015-12-30 22:54:32 -08:00
**Fixed:**
2015-12-30 23:02:28 -08:00
* First prompt in the prompt-toolkit shell now allows for up and down
arrows to search through history.
2016-01-05 11:32:38 -08:00
* Made obtaining the prompt-toolkit buffer thread-safe.
2016-02-13 01:37:23 -05:00
* Now always set non-detypable environment variables when sourcing
2016-01-10 23:21:31 -05:00
foreign shells.
2016-01-14 12:01:21 -05:00
* Fixed issue with job management if a TTY existed but was not controlled
by the process, posix only.
2016-01-14 14:24:32 -05:00
* Jupyter kernel no longer times out when using foreign shells on startup.
2016-01-15 17:35:12 -05:00
* Capturing redirections, e.g. ``$(echo hello > f.txt)``, no longer fails
with a decoding error.
2016-01-18 22:55:22 -05:00
* Evaluation in a Jupyter cell will return pformatted object.
* Jupyter with redirect uncaptured subprocs to notebook.
* Tab completion in Jupyter fixed.
2015-12-30 22:54:32 -08:00
v0.2.1 - v0.2.4
===============
You are reading the docs...but you still feel hungry.
v0.2.0
=============
**Added:**
* Rich history recording and replaying
v0.1.0
=============
**Added:**
* Naturally typed environment variables
* Inherits the environment from BASH
* Uses BASH completion for subprocess commands
* Regular expression filename globbing
* Its own PLY-based lexer and parser
* xonsh code parses into a Python AST
* You can do all the normal Python things, like arithmetic and importing
* Captured and uncaptured subprocesses
* Pipes, redirection, and non-blocking subprocess syntax support
* Help and superhelp with ? and ??
* Command aliasing
* Multiline input, unlike ed
* History matching like in IPython
* Color prompts
* Low system overhead
<v0.1.0
=============
The before times, like 65,000,000 BCE.