All Versions
109
Latest Version
Avg Release Cycle
23 days
Latest Release
-

Changelog History
Page 9

  • v0.5.9 Changes

    Added:

    • ➕ Add Alt . keybinding to bashisms-xontrib to insert last argument of previous command into current buffer

    🛠 Fixed:

    • 🛠 Fix crash when openSSH version of bash is on PATH on Windows.
    • ➕ Added missing ensurers to make sure that bool env_vars are bools and int env_vars are integers:

      • DIRSTACK_SIZE
      • EXPAND_ENV_VARS
      • PUSHD_MINUS
      • PUSHD_SILENT
      • SUGGEST_COMMANDS
      • SUGGEST_MAX_NUM
      • SUGGEST_THRESHOLD
  • v0.5.8 Changes

    🔄 Changed:

    • The xonsh.platform.os_environ wrapper is now case-insensitive and case-preserving on Windows.
    • The private _TeeStd class will no longer attempt to write to a standard buffer after the tee has been 'closed' and the standard buffer returned to the system.

    🛠 Fixed:

    • 🛠 Fixed a bug on py34 where os.scandir was used by accident.
    • Line continuations (\\) is subproc mode will no longer consume the surrounding whitespace.
    • 🛠 Fixed a bug if foreign_shell name was not written in lower case in the static configuration file config.json
    • 🛠 Fixed a regression on Windows where caused which reported that the PATH environment variable could not be found.
    • 🛠 Fixed issue with foregrounding jobs that were started in the background.
    • 🛠 Fixed that Ctrl-C crashes xonsh after running an invalid command.
    • 🛠 Fixed an potential ProcessLookupError issue, see #2288.
  • v0.5.7 Changes

    Added:

    • 🆕 New color_tools module provides basic color tools for converting to and from various formats as well as creating palettes from color strings.
    • Redirections may now be used in string and list-of-strings aliases.
    • Subprocess redirection may now forego the whitespace between the redirection and a file name. For example, echo hello world >/dev/null.
    • ➕ Add a -P flag to the cd function in order to change directory and following symlinks.
    • xonfig tutorial command to launch the http://xon.sh/tutorial in the browser.
    • 👍 @(...) syntax now supports generators and tuples without parentheses.
    • Sourcing foreign shells now have the --show option, which lets you see when script will be run, and the --dryrun option which prevents the source from actually taking place. Xonsh's foreign shell API also added these keyword arguments.
    • 👍 Subprocess mode now supports subshells. Place any xonsh code between two parentheses, e.g. (cmd), to run this command in a separate xonsh subprocess.
    • Foreign shell aliases now have the ability to take extra arguments, if needed.
    • ⚠ Xonsh will issue a warning message when the current working directory has been remove out from under it and not replaced prior to running the next command.
    • 🏁 Line continuation backslashes are respected on Windows in the PTK shell if the backspace is is preceded by a space.
    • ➕ Added ponysay as a command which will usually not run in a threaded mode in the commands cache.
    • 🆕 New jsonutils module available for serializing special xonsh objects to JSON.

    🔄 Changed:

    • The literal tokens and and or must be surrounded by whitespace to delimit subprocess mode. If they do not have whitespace on both sides in subproc mode, they are considered to be part of a command argument.
    • The xontrib command is now flagged as unthreadable and will be run on the main Python thread. This allows xontribs to set signal handlers and other operations that require the main thread.
    • nvim (Neovim) has been flagged as unthreadable
    • The interactive prompt will now catch SystemExit and, instead of exiting the session, will refresh the prompt. This is the same process as for keyboard interrupts.
    • Xonsh no longer launches the wizard for new users. Instead a welcome screen is shown which says how to launch the wizard.
    • ➕ Added Windows expanduser()-like function which prevents the expansion of ~ that are not followed by a path separator.
    • Collecting xonsh history files was reported to have random runtime OSError failures. This exception is now handled, just in case. The The exception will still be printed in debug mode.
    • Shell.stype has been renamed to Shell.shell_type.
    • 🔧 The configuration wizard now displays the proper control sequence to leave the wizard at the to start of the wizard itself. Note that this is Ctrl+D for readline and Ctrl+C for prompt-toolkit.
    • Callable alias proxy functions are now more friendly to functools.partial().
    • prompt.vc.get_hg_branch now uses os.scandir to walk up the filetree looking for a .hg directory. This results in (generally) faster branch resolution compared to the subprocess call to hg root.
    • Xonsh's script and code caches will are now invalidated whenever the xonsh version changes for a given Python version.
    • Autowrapping of subprocess globs has been improved to cover more cases that are ambiguous with Python syntax.
    • 👷 Job control info when foregrounding or backgrounding jobs will now only be displayed when xonsh is in interactive mode.
    • 🏁 Enabled virtual terminal processing in the prompt-toolkit shell for Windows.

    🛠 Fixed:

    • 💅 3rd party pygments styles (like solorized or monokailight) are now able to be used in xonsh. These styles are dynamically created upon first use, rather than being lazily loaded by xonsh.
    • 🏁 On Windows, os.environ is case insensitive. This would potentially change the case of environment variables set into the environment. Xonsh now uses nt.environ, the case sensitive counterpart, to avoid these issues on Windows.
    • 🛠 Fix how $PWD is managed in order to work with symlinks gracefully
    • 💅 history replay no longer barfs on style_name when setting up the environment
    • Shell.shell_type is now properly set to the same value as $SHELL_TYPE.
    • 🛠 Fixed source-zsh to work with zsh v5.2.
    • 🛠 Fixed issue where del (x, y) would raise a syntax error.
    • Certain vim commands issue commands involving subshells, and this is now supported.
    • Null bytes handed to Popen are now automatically escaped prior to running a subprocess. This prevents Popen from issuing embedded null byte exceptions.
    • Xonsh will no longer crash is the current working directory is removed out from under it.
    • Multiline strings can now be written in subprocess mode.
    • PTK completions will now correctly deduplicate autosuggest completions and display completions values based on the cursor position.
    • 🛠 Fixed bug where trailing backspaces on Windows paths could be interpreted as line continuations characters. Now line continuation characters must be preceded by a space on Windows. This only applies to xonsh in interactive mode to ensure scripts are portable.
    • Importing *.xsh files will now respect the encoding listed in that file and properly fallback to UTF-8. This behaviour follows the rules described in PEP 263.
    • Wizard is now able to properly serialize environment paths.
  • v0.5.6 Changes

    Added:

    • 🆕 New core utility function aliases (written in pure Python) are now available in xonsh.xoreutils. These include: cat, echo, pwd, tee, tty, and yes. These are not enabled by default. Use the new coreutils xontrib to load them.
    • ✅ CircleCI test post codecov run
    • 🖨 The trace will automatically disable color printing when stdout is not a TTY or stdout is captured.
    • 🆕 New jedi xontrib enables jedi-based tab completions when it is loaded. This supersedes xonsh's default Python-mode completer.
    • The lexer has a new split() method which splits strings according to xonsh's rules for whitespace and quotes.
    • 🆕 New events for hooking into the Python import process are now available. You can now provide a handler for:

      • on_import_pre_find_spec
      • on_import_post_find_spec
      • on_import_pre_create_module
      • on_import_post_create_module
      • on_import_pre_exec_module
      • on_import_post_exec_module

    🔄 Changed:

    • The prompt toolkit shell's first completion will now be the current token from the auto-suggestion, if available.
    • Sourcing foreign shells will now safely skip applying aliases with the same name as existing xonsh aliases by default. This prevents accidentally overwriting important xonsh standard aliases, such as cd.

    🛠 Fixed:

    • Threadable prediction for subprocesses will now consult both the command as it was typed in and any resolved aliases.
    • 🖨 The first prompt will no longer print in the middle of the line if the user has already started typing.
    • 🏁 Windows consoles will now automatically enable virtual terminal processing with the readline shell, if available. This allows the full use of ANSI escape sequences.
    • 🏁 On the Windows readline shell, the tab-completion suppression prompt will no longer error out depending on what you press.
    • 🛠 Fixed issue with subprocess mode wrapping not respecting line continuation backslashes.
    • Handle a bug where Bash On Windows causes platform.windows_bash_command() to raise CalledProcessError.
    • 🛠 Fixed issues pertaining to completing from raw string paths. This is particularly relevant to Windows, where raw strings are inserted in path completion.
    • 🗄 Replace deprecated calls to time.clock() by calls to time.perf_counter().
    • 🏁 Use clock() to set the start time of _timings in non-windows instead of manually setting it to 0.0.
    • The trace utility will now correctly color output and not print extraneous newlines when called in a script.
    • The @$(cmd) operator now correctly splits strings according to xonsh semantics, rather than just on whitespace using str.split().
    • ⚡️ The mpl xontrib has been updated to improve matplotlib handling. If xontrib load mpl is run before matplotlib is imported and xonsh is in interactive mode, matplotlib will automatically enter interactive mode as well. Additionally, pyplot.show() is patched in interactive mode to be non-blocking. If a non-blocking show fails to draw the figure for some reason, a regular blocking version is called.
    • 🛠 Fixed issues like timeit ls causing OSError - "Inappropriate ioctl for device".
    • 🛠 Fixed a potential "OSError: [Errno 22] Invalid argument" to increase job control stability.
  • v0.5.5 Changes

    Added:

    • 🆕 New --rc command line option allows users to specify paths to run control files from the command line. This includes both xonsh-based and JSON-based configuration.
    • New $UPDATE_COMPLETIONS_ON_KEYPRESS controls whether or not completions will automatically display and update while typing. This feature is only available in the prompt-toolkit shell.

    🔄 Changed:

    • Xonsh scripts now report __file__ and __name__ when run as scripts or sourced. These variables have the same meaning as they do in Python scripts.
    • 🔧 $XONSHRC and related configuration variables now accept JSON-based static configuration file names as elements. This unifies the two methods of run control to a single entry point and loading system.
    • The xonsh.shell.Shell() class now requires that an Execer instance be explicitly provided to its init method. This class is no longer responsible for creating an execer an its dependencies.
    • 🚚 Moved decorators unthreadable, uncapturable from xonsh.proc to xonsh.tools.
    • 🔨 Some refactorings on jobs control.

    🗄 Deprecated:

    • 🗄 The --config-path command line option is now deprecated in favor of --rc.

    Removed:

    • 🚚 xonsh.environ.DEFAULT_XONSHRC has been removed due to deprecation. For this value, please check the environment instead, or call xonsh.environ.default_xonshrc(env).

    🛠 Fixed:

    • Command pipelines that end in a callable alias are now interruptable with ^C and the processes that are piped into the alias have their file handles closed. This should ensure that the entire pipeline is closed.
    • 🛠 Fixed issue where unthreadable subprocs were not allowed to be captured with the $(cmd) operator.
    • The ProcProxy class (unthreadable aliases) was not being executed and would hang if the alias was capturable. This has been fixed.
    • 🛠 Fixed a tcsetattr: Interrupted system call issue when run xonsh scripts.
    • 🛠 Fixed issue with ValueError being thrown from inspect.signature() when called on C-extension callables in tab completer.
    • 🛠 Fixed issue that ls | less crashes on Mac.
    • Threadable prediction was incorrectly based on the user input command, rather than the version where aliases have been resolved. This has been corrected.
  • v0.5.4 Changes

    Added:

    • ➕ Add alias xip ("kip") so that xonsh's Python environment (whatever that is) can be modified.
    • HistoryEntry, a SimpleNamespace object that represents a command in history.
    • xonsh.completers.bash_completion module
    • ➕ Added option to report timing information of xonsh startup times. Start xonsh with the --timings flag to use the feature.
    • The Python tab completer will now complete the argument names of functions and other callables.
    • Uptime module added to xonsh.xoreutils. This can report the system boot time and up time.
    • The environment variable XONSH_HISTORY_BACKEND now also supports a value of class type or a History Backend instance.
    • on_envvar_new event that fires after a new envvar is created.
    • on_envvar_change event that fires after an envvar is changed.

    🔄 Changed:

    • history indexing api to be more simple, now returns HistoryEntry.
    • Decoupled bash_completion from xonsh project and added shim back to xonsh.
    • The JSON history backend will now unlock history files that were created prior to the last reboot.

    🛠 Fixed:

    • 🛠 Fixed broken bash completions on Windows if 'Windows Subsystem for Linux' is installed.
    • Readline history would try to read the first element of history prior to actually loading any history. This caused an exception to be raised on Windows at xonsh startup when using pyreadline.
    • 🛠 Fixed issue with readline tab completer overwriting initial prefix in some instances.
    • 🛠 Fixed issue wherein if git or (presumably) hg are aliased, then branch information no longer appears in the $PROMPT
    • 🛠 Fixed an issue with commands that background themselves (such as gpg-connect-agent) not being able to be run from within xonshrc.
  • v0.5.3 Changes

    Added:

    • Tab completion xontrib for python applications based on click framework.
    • Added on_transform_command event for pre-processing that macros can't handle.
    • Autodetection of backgroundability by binary analysis on POSIX.
    • 👉 New argument expand_user=True to tools.expand_path.
    • New $COMPLETION_QUERY_LIMIT environment variable for setting the number of completions above which the user will be asked if they wish to see the potential completions.
    • 👉 Users may now redirect stdout to stderr in subprocess mode.

    🔄 Changed:

    • The Block and Functor context managers from xonsh.contexts have been rewritten to use xonsh's macro capabilities. You must now enter these via the with! statement, e.g. with! Block(): pass.
    • The distributed xontrib now needs to use the with! statement, since it relies on Functor.
    • telnet has been flagged as unthreadable.
    • When $DYNAMIC_CWD_ELISION_CHAR is non empty and the last dir of cwd is too long and shortened, the elision char is added at the end.
    • pygments is no longer a strict dependency of the prompt_toolkit backend. If pygments is not installed, the PTK backend will use the default ansi color settings from the terminal. Syntax highlighting requires that pygments is installed.
    • Events are now keyword arguments only
    • ⏪ Restored on_precommand to its original signature.
    • Move built_ins.expand_path to tools.expand_path.
    • 📇 Rename tools.expandpath to tools._expandpath.
    • ➕ Added gvim command to unthreadable predictors.
    • The source alias now passes $ARGS down to file it is sourcing.

    Removed:

    • 🚚 XonshBlockError has been removed, since it no longer serves a purpose.

    🛠 Fixed:

    • PopenThread will now re-issue SIGINT to the main thread when it is received.
    • 🛠 Fixed an issue that using sqlite history backend does not kill unfinished jobs when quitting xonsh with a second "exit".
    • 🛠 Fixed an issue that xonsh would fail over to external shells when running .xsh script which raises exceptions.
    • 🛠 Fixed an issue with openpty() returning non-unix line endings in its buffer. This was causing git and ssh to fail when xonsh was used as the login shell on the server. See https://mail.python.org/pipermail/python-list/2013-June/650460.html for more details.
    • ⏪ Restored the ability to Z and fg processes on posix platforms.
    • CommandPipelines were not guaranteed to have been ended when the return code was requested. This has been fixed.
    • Introduce path expansion in is_writable_file to fix $XONSH_TRACEBACK_LOGFILE=~/xonsh.log.
    • ⏪ Backgrounding a running process (Z) now restores ECHO mode to the terminal in cases where the subprocess doesn't properly restore itself. A major instance of this behaviour is Python's interactive interpreter.
    • 🖨 Readline backend would not ask the user to confirm the printing of completion options if they numbered above a certain value. Instead they would be dumped to the screen. This has been fixed.
    • Jupyter kernel was no longer properly running subprocess commands. This has been fixed.
    • 👍 The filename is applied to the target of the source alias, providing better tracebacks.
  • v0.5.2 Changes

    Added:

    • ➕ Added weechat to default predictors
    • $DYNAMIC_CWD_ELISION_CHAR environment variable to control how a shortened path is displayed.

    🔄 Changed:

    • _ret_code function of prompt_ret_code xontrib return now None when return code is 0 instead of empty string allowing more customization of prompt format.

    🛠 Fixed:

    • Minor Python completer token counting bug fix.
    • multiline syntax error in PTK shell due to buffer not being reset
    • 🚦 Segfaults and other early exit signals are now reported correctly, again.
    • tests/bin/{cat,pwd,wc} shebang changed to python3
  • v0.5.1 Changes

    🛠 Fixed:

    • 🛠 Fixed xonfig raising error when xonsh is not installed from source.
  • v0.5.0 Changes

    Added:

    • $XONTRIB_MPL_MINIMAL environment variable can be set to change if plots are minimalist or as-seen
    • 📦 xontrib-mpl now supports iTerm2 inline image display if iterm2_tools python package is installed
    • Xonsh now will fallback to other shells if encountered errors when starting up.
    • ➕ Added entry to customization faq re: dirs alias (#1452)
    • ➕ Added entry to customization faq re: tab completion selection (#1725)
    • ➕ Added entry to customization faq re: libgcc core dump (#1160)
    • Section about quoting in the tutorial.
    • The $VC_HG_SHOW_BRANCH environment variable to control whether to hide the hg branch in the prompt.
    • ✅ xonfig now contains the latest git commit date if xonsh installed from source.
    • Alt+Enter will execute a multiline code block irrespective of cursor position
    • 🏁 Windows now has the ability to read output asynchronously from the console.
    • 🚀 Use doctr <https://drdoctr.github.io/doctr/>_ to deploy dev docs to github pages
    • 🆕 New xonsh.proc.uncapturable() decorator for declaring that function aliases should not be run in a captured subprocess.
    • 🆕 New history backend sqlite.
    • 📦 Prompt user to install xontrib package if they try to load an uninstalled xontrib
    • Callable aliases may now take a final spec argument, which is the corresponding SubprocSpec instance.
    • 🆕 New bashisms xontrib provides additional Bash-like syntax, such as !!. This xontrib only affects the command line, and not xonsh scripts.
    • ✅ Tests that create testing repos (git, hg)
    • 🆕 New subprocess specification class SubprocSpec is used for specifying and manipulating subprocess classes prior to execution.
    • 🆕 New PopenThread class runs subprocesses on a a separate thread.
    • 🆕 New CommandPipeline and HiddenCommandPipeline classes manage the execution of a pipeline of commands via the execution of the last command in the pipeline. Instances may be iterated and stream lines from the stdout buffer. These pipelines read from the stdout & stderr streams in a non-blocking manner.
    • $XONSH_STORE_STDOUT is now available on all platforms!
    • The CommandsCache now has the ability to predict whether or not a command must be run in the foreground using Popen or may use a background thread and can use PopenThread.
    • Callable aliases may now use the full gamut of functions signatures: f(), f(args), f(args, stdin=None), f(args, stdin=None, stdout=None), and f(args, stdin=None, stdout=None, stderr=None)`.
    • Uncaptured subprocesses now receive a PTY file handle for stdout and stderr.
    • New $XONSH_PROC_FREQUENCY environment variable that specifies how long loops in the subprocess framework should sleep. This may be adjusted from its default value to improved performance and mitigate "leaky" pipes on slower machines.
    • 🚚 Shift+Tab moves backwards in completion dropdown in prompt_toolkit
    • PromptFormatter class that holds all the related prompt methods
    • 🏗 PromptFormatter caching when building the prompt
    • p-strings: p'/foo/bar' is short for pathlib.Path('/foo/bar')
    • 🛠 byte strings: prefixes other than b'foo' (eg, RB'foo') now work
    • 👍 Backticks for regex or glob searches now support an additional modifier p, which causes them to return Path objects instead of strings.
    • 🆕 New BOTTOM_TOOLBAR environment variable to control a bottom toolbar as specified in prompt-toolkit
    • New $XONSH_STDERR_PREFIX and $XONSH_STDERR_POSTFIX environment variables allow the user to print a prompt-like string before and after all stderr that is seen. For example, say that you would like stderr to appear on a red background, you might set $XONSH_STDERR_PREFIX = "{BACKGROUND_RED}" and $XONSH_STDERR_PREFIX = "{NO_COLOR}".
    • 🆕 New xonsh.pyghooks.XonshTerminal256Formatter class patches the pygments formatter to understand xonsh color token semantics.
    • Load events are now available
    • New events added: on_post_init, on_pre_cmdloop, on_pre_rc, on_post_rc, on_ptk_create
    • Completion for xonsh builtin functions xontrib and xonfig
    • ➕ Added a general customization FAQ page to the docs to collect various tips/tricks/fixes for common issues/requests
    • test_single_command and test_redirect_out_to_file tests in test_integrations
    • ➕ Add note that the target of redirection should be separated by a space.

    🔄 Changed:

    • CircleCI now handles flake8 checks
    • Travis doesn't allow failures on nightly
    • get_hg_branch runs hg root to find root dir and check if we're in repo
    • 💅 The default style will now use the color keywords (#ansired, #ansidarkred) to set colors that follow the terminal color schemes. Currently, this requires prompt_toolkit master (>1.0.8) and pygments master (2.2) to work correctly.
    • vox activate now accepts relative directories.
    • ⚡️ Updated the effectivity of $XONSH_DEBUG on debug messages.
    • 👍 Better documentation on how to get nice colors in Windows' default console
    • All custom prompt_toolkit key binding filters now declared with the @Condition decorator
    • 💅 The style for the prompt toolkit completion menu is now lightgray/darkgray instead of turquoise/teal
    • 👕 landscape.io linting now ignores ply directory
    • history help messages to reflect subcommand usage
    • Quote all paths when completion if any of the paths needs be quoted, so that bash can automatically complete to the max prefix of the paths.
    • Tee'd reads now occur in 1kb chunks, rather than character-by-character.
    • The which alias no longer has a trailing newline if it is captured. This means that $(which cmd) will simply be the path to the command.
    • 0️⃣ The following commands are, by default, predicted to be not threadable in some circumstances:

      • bash
      • csh
      • clear
      • clear.exe
      • cls
      • cmd
      • ex
      • fish
      • htop
      • ksh
      • less
      • man
      • more
      • mutt
      • nano
      • psql
      • ranger
      • rview
      • rvim
      • scp
      • sh
      • ssh
      • startx
      • sudo
      • tcsh
      • top
      • vi
      • view
      • vim
      • vimpager
      • xo
      • xonsh
      • zsh
    • The run_subproc() function has been replaced with a new implementation.

    • Piping between processes now uses OS pipes.

    • $XONSH_STORE_STDIN now uses os.pread() rather than tee and a new file.

    • 🚚 The implementation of the foreground() decorator has been moved to unthreadable().

    • 👍 voxapi.Vox now supports pathlib.Path and PathLike objects as virtual environment identifiers

    • Renamed FORMATTER_DICT to PROMPT_FIELDS

    • BaseShell instantiates PromptFormatter

    • readline/ptk shells use PromptFormatter

    • ⚡️ Updated the bundled version of ply to current master available

    • ⚡️ vended ply is now a git subtree to help with any future updates

    • WHITE color keyword now means lightgray and INTENSE_WHITE completely white

    • Removed add_to_shell doc section from *nix install pages and instead relocated it to the general customization page

    • 🐧 Moved a few *nix customization tips from the linux install page to the general customization page

    Removed:

    • coverage checks
    • 🚚 CompletedCommand and HiddenCompletedCommand classes have been removed in favor of CommandPipeline and HiddenCommandPipeline.
    • 🚚 SimpleProcProxy and SimpleForegroundProcProxy have been removed in favor of a more general mechanism for dispatching callable aliases implemented in the ProcProxyThread and ProcProxy classes.
    • test_run_subproc.py in favor of test_integrations.py
    • ✅ Unused imports in many tests
    • ✅ Many duplicated tests (copypasta)

    🛠 Fixed:

    • xontrib-mpl now preserves the figure and does not permanently alter it for viewing
    • 🛠 Fix up small pep8 violations
    • 🛠 Fixed a bug where some files are not showing using bash completer
    • 🛠 Fixed some issues with subprocess capturing aliases that it probably shouldn't.
    • safe_readable() now checks for ValueError as well.
    • The scroll bars in the PTK completions menus are back.
    • Jupyter kernel installation now respects the setuptools root parameter.
    • Fix __repr__ and __str__ methods of SubprocSpec so they report correctly
    • 🛠 Fixed the message printed when which is unable to find the command.
    • 🛠 Fixed a handful of sphinx errors and warnings in the docs
    • 🛠 Fixed many PEP8 violations that had gone unnoticed
    • 🛠 Fix failure to detect an Anaconda python distribution if the python was install from the conda-forge channel.
    • current_branch will try and locate the vc binary once
    • May now Crtl-C out of an infinite loop with a subprocess, such as `while True: sleep 1.
    • 🛠 Fix for stdin redirects.
    • Backgrounding works with $XONSH_STORE_STDOUT
    • PopenThread blocks its thread from finishing until command has completed or process is suspended.
    • ➕ Added a minimum time buffer time for command pipelines to check for if previous commands have executed successfully. This is helpful for pipelines where the last command takes a long time to start up, such as GNU Parallel. This also checks to make sure that output has occurred. This includes piping 2+ commands together and pipelines that end in unthreadable commands.
    • curr_branch reports correctly when git config status.short true is used
    • pip completion now filters results by prefix
    • 🛠 Fixed streaming !(alias) repr evaluation where bytes where not streamed.
    • Aliases that begin with a comma now complete correctly (no spurious comma)
    • 0️⃣ Use python3 in shebang lines for compatibility with distros that still use Python 2 as the default Python
    • STDOUT is only stored when $XONSH_STORE_STDOUT=True
    • 🛠 Fixed issue with alias redirections to files throwing an OSError because the function ProcProxies were not being waited upon.
    • 🛠 Fixed issue with callable aliases that happen to call sys.exit() or raise SystemExit taking out the whole xonsh process.
    • Safely flushes file handles on threaded buffers.
    • 📚 Proper default value and documentation for $BASH_COMPLETIONS
    • 🛠 Fixed readline completer issues on paths with spaces
    • 🛠 Fix bug in argvquote() functions used when sourcing batch files on Windows. The bug meant an extra backslash was added to UNC paths. Thanks to @bytesemantics for spotting it, and @janschulz for fixing the issue.
    • pep8, lint and refactor in pytest style of test_ptk_multiline.py, test_replay.py
    • 🏁 Tab completion of aliases returned a upper cased alias on Windows.
    • History show all action now also include current session items.
    • proc.stream_stderr now handles stderr that doesn't have buffer attribute
    • Made history show result sorted.
    • 🛠 Fixed issue that history gc does not delete empty history files.
    • 🛠 Standard stream tees have been fixed to accept the possibility that they may not be backed by a binary buffer. This includes the pipeline stdout tee as well as the shell tees.
    • 🛠 Fixed a bug when the pygments plugin was used by third party editors etc.
    • CPU usage of PopenThread and CommandPipeline has been brought down significantly.