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

Changelog History
Page 1

  • v0.10.1 Changes

    πŸ›  Fixed:

    • πŸ‘ execx and xonsh -c previously exposed xonsh-internal code in global scope. They also did not support defining variables and then referring to them in comprehensions, generators, functions, or lambdas. - https://github.com/xonsh/xonsh/issues/4363
    • Short color token names can be used in register_custom_style() (#4339)

    Authors:

    • Gyuri Horak
    • Jeremy Schlatter
  • v0.10.0 Changes

    βž• Added:

    • Added ability to set XONSH_HISTORY_FILE before loading the history backend.
    • βž• Added ability to get the arguments list in ExecAlias using $args and $arg<n> environment variables.
    • βž• Added instruction how to run xonsh AppImage on Alpine
    • πŸ‘ Xonsh now supports generators as completer functions.
    • πŸ“œ Completion Context - Allow completers to access a parsed representation of the current commandline context.
    • βž• Added casting CommandPipeline to int, hash and str.
    • Ability to call the tool by the name from callable alias with the same name without the infinite loop error.
    • 🐧 on wsl field when running xonfig (when linux is detected)
    • Help and superhelp (obj? and obj??) now use the __name__ if available.
    • added $XONSH_GITSTATUS_FIELDS_TO_HIDE to hide unwanted fields from {gitstatus} prompt field.
    • βž• Added number of lines added and removed to gitstatus
    • Saving current working directory (cwd) to the history.
    • Added XONSH_HISTORY_SAVE_CWD environment variable.
    • βž• Added environment variable $COMPLETE_DOTS to specify how current and previous directories should be tab completed in cd ('./', '../'):
      • always Always complete paths with ./ and ../
      • never Never complete paths with ./ and ../
      • matching Complete if path starts with . or ..
    • Complete import keyword in from ... import statements.
    • Enabled case-insensitive completions for the jedi xontrib.
    • Non-exclusive completers that enable aggregating multiple completer results.
    • New $XONSH_CAPTURE_ALWAYS variable for opt-in interactive capturing. Since this capturing breaks background jobs and some interactive programs (like git invoking an editor), This behavior is now opt-in using this variable. See https://github.com/xonsh/xonsh/pull/4283 and linked issues.
    • Wrap selection with quote/parens when $XONSH_AUTOPAIR=True.
    • πŸ‘ Now xonsh will work with Python 3.10. (Match statement is not supported).
    • In addition to reading single rc files at startup (/etc/xonshrc, ~/.config/xonsh/rc.xsh), xonsh now also supports rc.d-style config directories, from which all files are sourced. This is designed to support drop-in style configuration where you could, for example, have a common config file shared across multiple machines and a separate machine specific file.

    This is controlled by the environment variable XONSHRC_DIR, which defaults to ["/etc/xonsh/rc.d", "~/.config/xonsh/rc.d"]. If those directories exist, then any xsh files contained within are sorted and then sourced.

    • βž• Added xontrib-prompt-starship - Starship prompt in xonsh shell.
    • Added XONSH_SUBPROC_CAPTURED_PRINT_STDERR (default False) environment variable to hide unwanted printing the stderr when using captured object.
    • A $XONSH_TRACE_COMPLETIONS variable for completions debugging.
    • βž• Added warning about prompt-toolkit in the welcome message.
    • βž• Added history backend name to the xonfig.
    • 🐧 xontrib-linuxbrew <https://github.com/eugenesvk/xontrib-linuxbrew>_ to add Homebrew's shell environment to xonsh shell on Linux
    • βž• Added xontrib-macro-lib - the library of the useful macros for the xonsh shell: https://github.com/anki-code/xontrib-macro-lib

    πŸ”„ Changed:

    • ⚑️ update imphooks encoding regex to match the newer version at PEP 263
    • Enabled bracketed paste mode for readline to protect against paste jacking
    • 🚚 The group of environment variables around history moved to the "Interactive Prompt History" section.
    • Disabled completing subpaths for commands in jedi.
    • πŸ‘Œ Improved which output for non-simple aliases
    • New json history will be in XONSH_DATA_DIR/history_json directory.
    • Completers for and/or, &&/||/| and environment variables are now non-exclusive.
    • Disabled ptk copying words/lines to clipboard on deletion (can be re-enabled with $XONSH_COPY_ON_DELETE).
    • Separated between XONSH_DEBUG and XONSH_NO_AMALGAMATE. Setting XONSH_DEBUG=1 now acts like XONSH_DEBUG=2 before (basic information like input transformation, command replacement) and XONSH_DEBUG=2 like XONSH_DEBUG=1 before (more debugging information presented, like PLY parsing messages).
    • Cleaned up available aliases for shell_type
    • Speedup commands-cache by saving results between runs and use the last run's result
    • The completer add command after the non-exclusive completers. This means it will not block them from adding their completions.
    • ⚑️ Updated the tab-completion tutorial.

    πŸ›  Fixed:

    • πŸ– handle importing/decoding user modules with a 'UTF-8 with BOM' encoding (#4160)
    • Fixed XONSH_HISTORY_FILE that has the actual path from the history backend now
    • Annotated assignments (x: int = 42, x: int).
    • πŸ›  Fixed xpip sudo behavior in xonsh AppImage.
    • Prevent cancelled future errors for async prompt ($ENABLE_ASYNC_PROMPT) fields from bubbling up (and destroying the prompt's formatting)
    • $() no longer silently captures stderr
    • βž• Added catching callable argument and raising appropriate exception
    • 🐧 Crashing command-not-found output for bad file names on linux.
    • πŸ›  Fixed error message when an empty command is run
    • πŸ›  Fixed @$ crash when no output is sent out by the command
    • πŸ›  Fixed xonsh crash when launched using xonsh -c '$("")'
    • πŸ‘€ now abbrevs callback will not remove word from buffer.text. See https://github.com/xonsh/xonsh/issues/3642#issuecomment-793789741
    • πŸ›  Fixed the incorrect SyntaxError that was thrown when a subprocess command was preceded by a comment ending with a colon
    • πŸ›  Fixed the missing auto-indentation in readline and prompt_toolkit when a statement ending with a colon was followed by a comment
    • πŸ›  Fixed the incorrect auto-indentation in prompt_toolkit when a comment ended with a colon
    • Fixed JSON history garbage collection for XONSH_HISTORY_SIZE in seconds.
    • πŸ›  Fixed skip completer (completes sudo, which and other commands).
    • In a subprocess command, having whitespace in between the left bracket and the command no longer raises a SyntaxError.
    • ⬇️ Reduced history reading when run script or command. Potential speed increasing.
    • Fixed crash on statup if XONSH_COLOR_STYLE is set to something invalid.
    • πŸ›  Fixed the colorize and/or keywords.
    • Functions can be used for $TITLE, the same way as for $PROMPT. (#4148)
    • 🐧 wsl detection works on archlinux wsl2 now (and hopefully everywhere)
    • πŸ›  Fixed an exception when run xonfig wizard in no RC mode.
    • πŸ‘ Bash completions now handle quoted and space-containing arguments better.
    • import completions always work.
    • βœ… Test consistent RC loading behaviour in a variety of startup scenarios
    • Absolute paths to executables don't break bash completions anymore
    • πŸ›  Fix colors and text in the welcome message.

    Authors:

    • Gil Forsyth
    • anki-code
    • Noortheen Raja
    • Gyuri Horak
    • Daniel Shimon
    • Matthias Bussonnier
    • Gordon Ball
    • cryzed
    • Peter Ye
    • Evgeny
    • Jeremy Schlatter
    • jmoranos
    • Walter A. Boring IV
    • bhawkins
    • JackofSpades707
    • Luiz Antonio Lazoti
    • francium
  • v0.9.27 Changes

    βž• Added:

    • βž• Add new internal command "disown" to remove background jobs from the shell's job list
    • πŸ›  Python3.9 issues with subscriptor forms fixed.
    • βž• added xontrib-cd <https://github.com/eugenesvk/xontrib-cd>_
    • Added xontrib-history-encrypt - new history backend that encrypt the xonsh shell commands history to prevent leaking sensitive data. If you like the idea give a star to the repository https://github.com/anki-code/xontrib-history-encrypt

    πŸ”„ Changed:

    • πŸ†• New awesome landing on https://xon.sh - feel free to share and tweet!
    • 0️⃣ History files (json, sqlite) now have 600 (rw only for user) permission by default.
    • PTK(python-prompt-toolkit) is no longer vendored with xonsh.

    πŸ›  Fixed:

    • πŸ›  Fixed a bug where "cd" and "rmdir" would return non-directory completions
    • SQLite History Backend: show message instead of exiting when disk is full.

    Authors:

    • Gil Forsyth
    • anki-code
    • Noortheen Raja
    • Tejasvi S Tomar
    • Evgeny
    • Adam Schwalm
    • Nate Simon
  • v0.9.26 Changes

    βž• Added:

    • πŸ‘ abbrevs now support callbacks
    • βž• Added a new xontrib tcg

    πŸ›  Fixed:

    • now xonsh stdout delegates isatty to wrapped io stream.

    Authors:

    • Gil Forsyth
    • anki-code
    • Noortheen Raja
    • Gao, Xiang
  • v0.9.25 Changes

    βž• Added:

    • VC_GIT_INCLUDE_UNTRACKED environment variable if untracked file changes are desired to show a dirty working directory
    • βž• added xontrib-powerline2 <https://github.com/vaaaaanquish/xontrib-powerline2>_
    • βž• Add '|' and '|=' operators to the Aliases class.
    • βž• Add tests to the merging functionality.
    • βž• Add "back2dir" xontrib (https://github.com/anki-code/xontrib-back2dir) - back to the latest used directory when starting xonsh shell.
    • πŸ‘‰ show code-coverage for PRs
    • Added CommandPipeline.raw_out and CommandPipeline.raw_err to get stdout/err as raw bytes.
    • πŸ‘ The @() operator now supports bytes objects.
    • index for history's sqlite-DB
    • πŸ‘Œ support passing style from RichCompleter to PTK's Completer
    • xonsh.cli_utils to create cli from functions easily.
    • Python API for completer command with xonsh.completer module functions.
    • Added new environment variable $PROMPT_TOKENS_FORMATTER. That can be used to set a callable that receives all tokens in the prompt template. It gives option to format the prompt with different prefix based on other tokens values. Enables users to implement something like powerline without resorting to separate $PROMPT_FIELDS. Works with ASYNC_PROMPT as well. Check the PR <https://github.com/xonsh/xonsh/pull/3922>_ for a snippet implementing powerline
    • πŸ’… PTK style rules can be defined in custom styles using the Token.PTK token prefix. For example custom_style["Token.PTK.CompletionMenu.Completion.Current"] = "bg:#ff0000 #fff" sets the completion-menu.completion.current PTK style to white on red.
    • πŸ’… Added new environment variable XONSH_STYLE_OVERRIDES. It's a dictionary containing pygments/ptk style definitions that overrides the styles defined by XONSH_COLOR_STYLE. For example::

      $XONSH_STYLE_OVERRIDES["Token.Literal.String.Single"] = "#00ff00" # green 'strings' (pygments) $XONSH_STYLE_OVERRIDES["completion-menu"] = "bg:#ffff00 #000" # black on yellow completion (ptk) $XONSH_STYLE_OVERRIDES["Token.PTK.CompletionMenu.Completion.Current"] = "bg:#ff0000 #fff" # current completion is white on red (ptk via pygments)

    • πŸ‘Œ support PTK's clipboard integration if pyperclip is installed. So that some common emacs like cut/copy <https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/examples/prompts/system-clipboard-integration.py>_ will work out of the box.

    • βž• Added Python 3.9 to continuous integration.

    • open in google cloud shell button 🀩

    • Respect ignorespace present in $HISTCONTROL

    • _get_normalized_pstring_quote returns a consistent set of prefixes, and the quote, for all path-string variants e.g. inputs pr' and rp' both produce the tuple ("pr", "'"). This function is used by xonsh.completers.complete_path and xonsh.completers._path_from_partial_string.

    • βž• Added warning about huge amount of commands in CommandsCache that could affect on start speed.

    • πŸ†• New xonsh.procs subpackage for handling subprocess mode.

    • Environment variable $COMPLETION_MODE controls kind of TAB completion used with prompt-toolkit shell. default, the default, retains prior Xonsh behavior: first TAB displays the common prefix of matching completions, next TAB selects the first or next available completion. menu-complete enables TAB behavior like readline command menu-complete. First TAB selects the first matching completion, subsequent TABs cycle through available completions till the last one. Next TAB after that displays the common prefix, then the cycle repeats.

    • βž• Added timing probes for prompt tokens, lexer and before prompt.

    • πŸ‘Œ improve github actions by adding cache

    • πŸ–¨ xog xontrib - a simple command to establish and print temporary traceback log file.

    • βž• Added xontribs section to the xonfig.

    • βž• added xontrib-avox-poetry(http://github.com/jnoortheen/xontrib-avox-poetry)

    • βž• added xontrib-broot(http://github.com/jnoortheen/xontrib-broot)

    • βž• added xontrib-long-cmd-durations <https://github.com/jnoortheen/xontrib-cmd-durations>_

    • βž• added xontrib-commands <https://github.com/jnoortheen/xontrib-commands>_

    • βž• added xontrib-powerline3(http://github.com/jnoortheen/xontrib-powerline3)

    • βž• Added xontrib-zoxide to the list of xontribs.

    • βž• Added xontrib-gitinfo to the list of xontribs.

    πŸ”„ Changed:

    • CommandPipeline.__repr__ now returns formatted output wherein its printed attributes are also repr strings. This improves the output of !().
    • ⚑️ prompt-toolkit required version updated to >=3.0
    • group environment variables into categories.
    • The SQLite history backend now has the same logic of storing stdout to the memory like json history backend.
    • Using ujson (if installed) in LazyJSON to loading json history 15% faster.
    • πŸ‘‰ use requirements.txt env in both CI/local/pre-commit checks
    • βž• add caching to CI jobs to improve speed
    • πŸ— The change that allows Nuitka build the xonsh binary.
    • Remove p, rp and pr prefix from partial p-string used in xonsh.completers._path_from_partial_string, such that ast.literal_eval does not raise SyntaxError. pr and rp strings are now treated internally as raw strings, but the p-string quote is correctly returned.
    • Increment the prefix length when the prefix input to xonsh.completers.complete_path is a p-string. This preserves the length of the prefix for path-string variants.
    • Pygments debug messages about cache will be shoen only in debug mode.
    • 0️⃣ ulimit builtin now operates on "soft" limits by default.
    • βœ… tests for vc-branch should accept both master and main
    • ⬆️ upgrade black formatter to version 20.8b1
    • πŸ‘‰ Use xontribs_meta.py instead of xontribs.json
    • πŸ’„ Welcome message cosmetic changes.
    • rewrite xontribs/jedi.xsh -> xontribs/jedi.py to take advantage of python tooling

    πŸ—„ Deprecated:

    • πŸ’… PTK_STYLE_OVERRIDES has been deprecated, its function replaced by XONSH_STYLE_OVERRIDES
    • πŸ—„ The xonsh.proc module has been deprecated. Please use the new xonsh.procs subpackage instead. Deprecation warnings related to this have been added.

    βœ‚ Removed:

    • 🚚 The deprecated foreground decorator has been removed. Please use unthreadable instead.
    • xonsh.proc.unthreadable and xonsh.proc.uncapturable have been moved to xonsh.tools. Please import from this module instead.

    πŸ›  Fixed:

    • 🐧 Now the directory and the symlink to this directory will be read from PATH once. Increasing the startup speed on Linux.
    • 0️⃣ Environment variable registration no longer fails to validate when the default is a callable.
    • 0️⃣ Default values created from callables are stored on in the evironment.
    • βœ… Completers also recognize : as a valid split point for insertion for, e.g. pytest completions

    .. code pytest test_worker::

    • Colorize and/or operators correctly like &&/||
    • ⚑️ Speed of CommandsCache increased when aliases have multiple updates (i.e. init conda).
    • Now when loading RC files, xonsh will not fail to import modules located on the same folder.
    • Setting an alias with IO redirections (e.g ls | wc) now works correctly.
    • PTK shell: window has no childres error while completion is triggered - https://github.com/xonsh/xonsh/issues/3963
    • πŸ‘‰ make_xontrib - typerror - https://github.com/xonsh/xonsh/issues/3971
    • πŸ›  Fix libc detection on FreeBSD
    • πŸ›  Fix uptime functionality on FreeBSD
    • ⚑️ Updated History Backend tutorial.
    • ⚠ enabled flake8 warning on ambiguous names. it is fun naming variables in coded words until oneday it looks like encrypted.
    • βž• Added ANSI fallback for xonsh.tools.print_color if shell is not yet initialized. Fixes #3840.
    • βœ… ./run-tests.xsh without arguments previously gave an esoteric error. It now prints help on how to run the tests.
    • πŸ“„ The git customisation example in the .xonshrc docs uses the right module name

    Authors:

    • Anthony Scopatz
    • Jamie Bliss
    • a
    • David Strobach
    • Bob Hyman
    • anki-code
    • Gyuri Horak
    • Noortheen Raja
    • Carmen Bianca Bakker
    • Danny Sepler
    • vaaaaanquish
    • Daniel Shimon
    • Jerzy Drozdz
    • Faris A Chugthai
    • Asaf Fisher
    • Dominic Ward
    • omjadas
    • Leandro Emmanuel Reina Kiperman
    • HenrΓ© Botha
    • Aneesh Durg
    • colons
    • yggdr
  • v0.9.24 Changes

    October 16, 2020

    Added:

    • Ability to register custom styles via xonsh.pyghooks.register_custom_style
    • βž• Add method of escaping an environment variable from expansion to the Bash to Xonsh Translation Guide.
    • βž• added mypy to the project. many of the errors are ignored. but it is a start.
    • βž• Added example of subproc calling to the tutorial.
    • πŸ†• New xontrib-sh (https://github.com/anki-code/xontrib-sh) to paste and run snippets from bash, zsh, fish.

    πŸ”„ Changed:

    • 0️⃣ Now COMPLETIONS_CONFIRM is True by default.
    • πŸ“Œ xonsh.AppImage python version pinned to 3.8.
    • Cookiecutter template to creating new xontribs has many improvements (https://github.com/xonsh/xontrib-cookiecutter).
    • πŸ“„ Docs sections improvement.

    βœ‚ Removed:

    • βœ‚ Removed import random.

    πŸ›  Fixed:

    • #1207 - custom color themes
    • Webconfig updarted for the NO_COLOR to RESET change.
    • async prompt field's returns from earlier data
    • πŸ‘ Async prompt will now support nested-format strings in prompts
    • handle None value for ASYNC_PROMPT_THREAD_WORKERS
    • πŸ›  Fixed f-strings parsing in Python 3.9
    • πŸ›  Fixed reset color in xontrib list.
    • Fixed NO_COLOR to RESET in prompt_ret_code and mplhooks.

    Authors:

    • Anthony Scopatz
    • David Strobach
    • a
    • anki-code
    • Gyuri Horak
    • Noortheen Raja
    • Will Shanks
  • v0.9.23 Changes

    October 08, 2020

    Added:

    • βž• add API docs for ptk_shell.updator module
    • βž• add flake8-docstrings to the project. it integrates pydocstyle to flake8.
    • πŸ‘Œ Support for ANSI OSC escape sequences in $PROMPT, setting $TITLE for example. (#374, #1403)
    • πŸ‘ Now ptk_shell supports loading its sections in thread, speeding up the prompt. Enable it by setting $ENABLE_ASYNC_PROMPT=True.
    • βž• Added unset, export, set -e, set -x, shopt, complete to xontrib bashisms.
    • πŸ‘‰ Use command_cache when finding available commands, to speedup command-not-found suggestions
    • βž• Added Visual Studio Code (VSCode) extension and Vim syntax file to the Editors page.
    • βž• Added exit(exit_code) function by default in not interactive mode. Now importing exit from sys is not needed.
    • βž• Added Python syntax highlighting of xsh files on Github repo xonsh/xonsh
    • history clear, history off and history on actions, for managing whether history in the current session is saved.
    • ValueErrors from environ.register now report the name of the bad env var
    • βž• Add a new color DEFAULT that is used to designate the terminal's default color.
    • βž• Add a new special color token RESET used to reset all attributes.
    • βž• Add a new xonsh tool 'print_warning' that prints a traceback with a warning message.
    • βž• Added xontrib-onepath <https://github.com/anki-code/xontrib-onepath>_ to associate files with apps in xonsh shell like in graphical OS.
    • πŸ–¨ Added print_color and printx functions to builtins as reference to xonsh.tools.print_color.
    • Added to xontrib whole_word_jumping: Shift+Delete hotkey to delete whole word.
    • βž• Added "Advanced String Literals" to the "Tutorial".
    • xonfig jupyter-kernel new subcommand to generate xonsh kernel spec for jupyter.
      🚚 Installing a new xonsh kernel for jupyter automatically removes any other one registered with jupyter,
      otherwise the new one might not be used.
    • βž• Added xontrib powerline-binding (https://github.com/dyuri/xontrib-powerline-binding) - uses powerline to render the prompt.

    πŸ”„ Changed:

    • πŸ‘Œ Improved printing of xonsh --shell-type argument in help message.
    • 🌐 "Bash to Xonsh Translation Guide" improvements.
    • πŸ‘» More stable exception handling in the tab completer.
    • πŸ”„ Changed sections order in docs
    • The path type in ${...}.register was renamed to env_path as it should be and added
      πŸ†• new path type instead that represent pathlib.Path. Now you can register typed environment
      variables that will be converted to Path.
    • 0️⃣ xonsh/environ.py: new rule: for "registered" environment variables (in DEFAULT_VARS or via env.register()),
      0️⃣ if default is set to DefaultNotGiven, then variable has no default and raises KeyError if it is not
      actually defined in environment. Likewise, "var" in __xonsh__.env will return False.
    • πŸ”„ Changed defaults for ANSICON, TERM and VIRTUAL_ENV to DefaultNotGiven, so code can rationally test whether
      the expected external program has defined these variables. No need to do this for variables that xonsh
      itself defines.
    • 🚚 Moved internal uses of NO_COLOR to RESET.
    • πŸ— When retrieving the git status or other fields for building the prompt xonsh will run
      the git commands with $GIT_OPTIONAL_LOCKS=0. For details on what this entails see
      πŸ“š the git documentation for
      GIT_OPTIONAL_LOCKS <https://git-scm.com/docs/git#Documentation/git.txt-codeGITOPTIONALLOCKScode/>_.
    • Minor improvements to the get prompt speed. (Mostly in git.)
    • ptk key binding for TAB -- hitting TAB to start completion now automatically selects the first displayed completion (if any).
      hitting TAB when in insert mode inserts TAB, as heretofore. This more exactly follows behavior of readline menu-complete.
      πŸ”§ There is no configuration option for tailoring this behavior.
    • xonfig info displays whether jupyter detected in environment and
      also path of xonsh jupyter kernel spec, if any.
    • xontrib-argcomplete and xontrib-pipeliner description improvement.

    πŸ—„ Deprecated:

    • πŸ—„ Deprecated the NO_COLOR color reset token in favor of RESET.

    βœ‚ Removed:

    • πŸ—„ Deprecated --config-path argument suppressed from help.
    • setup no longer (tries to) install jupyter kernel automatically,
      πŸ‘‰ user must run xonfig jupyter-kernel manually.

    πŸ›  Fixed:

    • 0️⃣ cygwin needs full path to find exe; disable thread_subprocs as default for cygwin
    • πŸ›  Fixed logic in git dirty working directory
    • πŸ›  Fixed type registration for *DIRS environment variables.
    • πŸ›  Fixed getting typed registered environment variable when it was initialized before registration.
    • πŸ›  Fixed #3703 and #3739, recent code change made it impossible to tell whether a (registered) environment variable
      βœ… was missing from environment or present and set to its registered default value. The test for ANSICON was
      failing due to this.
    • πŸ›  Fixed environment variables substitution: unknown variables stay unreplaced now (#3818).
    • πŸ›  Fixed xpg xontrib link
    • πŸ›  Fix crash when xonsh tries to run windows app execution aliases.
    • Setup wasn't consistently detecting jupyter in environment; python setup.py install worked, but
      pip install . wouldn't (because pip mucks with sys.path),
      nor would install from wheel (because it doesn't run setup.py).
    • xonfig info now displays actual value of ON_MSYS and ON_CYGWIN instead of lazy bool type.
      🏁 (maybe was happening only on Windows?)

    Authors:

    • Anthony Scopatz
    • Gil Forsyth
    • Morten Enemark Lund
    • Bob Hyman
    • a
    • anki-code
    • christopher
    • Eadaen1
    • Danny Sepler
    • Gyuri Horak
    • cafehaine
    • Wendell Turner
    • Noortheen Raja
    • Marius van Niekerk
    • Wendell CTR Turner
  • v0.9.22 Changes

    September 16, 2020

    βž• Added:

    • βž• Added xontrib-argcomplete to support kislyuk/argcomplete - tab completion for argparse.
    • New tools.debian_command_not_found() function for finding commands in debian/ubuntu packages.
    • New tools.conda_suggest_command_not_found() function for finding commands in conda packages.
    • πŸ‘ Borrow shift-selection from prompt-toolkit. Shift-arrow (selects a letter) and control-shift-arrow (selects a word) should now be supported.
    • πŸ“š Documentation for keyboard shortcuts
    • πŸ’… Xonsh now supports bash-style variable assignments preceding subprocess commands (e.g. $FOO="bar" bash -c r"echo $FOO").

    πŸ”„ Changed:

    • βž• Added the fastest way to run xonsh AppImage to the docs.
    • command_not_found() is now a wrapper function that finds packages for missing commands in a variety of locations. This function now also takes an env argument for looking up values in the enviornment.
    • The variable cwd_dir, used for prompts, now always has a slash at the end, so users can use the construct "{cwd_dir}{cwd_base}" in their custom prompt definitions.

    πŸ›  Fixed:

    • crash when starting wizard by xonfig wizard xonsh.environ: ensure get_docs(name).doc_default is str when name is not registered.
    • πŸ›  Fixed issue where xontribs were failing from AttributeError: '_MergedKeyBindings' object has no attribute 'add'

    Authors:

    • Anthony Scopatz
    • David Strobach
    • Bob Hyman
    • anki-code
    • Danny Sepler
    • Eadaen1
  • v0.9.21 Changes

    September 02, 2020

    βž• Added:

    • 🐳 xonsh-in-docker.py script now has --pytest parameter, that automates pytest installation into the Docker container.
    • Setup extras tag '[full]' to install prompt-toolkit and pygments in one fell swoop. Full feature install can be pip install xonsh[full].
    • πŸ‘Œ Support for PEP 570 positional-only parameters.
    • πŸ‘Œ Support for starred expressions within return statement (return x, *my_list).
    • Xonsh now runs in Python 3.9
    • 🚚 vox xontrib now supports new --activate and deactivate --remove to create + activate and deactivate + remove virtual environments in a single command.

    πŸ”„ Changed:

    • πŸ”§ Rewrote Installation and Configuration sections of Getting Started doc to clarify install from packages, and generally improve flow.

    πŸ›  Fixed:

    • Fixed incorrect reference to XONSH_HIST_SIZE instead of XONSH_HISTORY_SIZE
    • RST code-block:: xonshcon now works.
    • 0️⃣ Non-default parameters can not follow defaults anymore.
    • πŸ›  Fixed parser not emmiting errors in some cases.

    Authors:

    • Anthony Scopatz
    • Jamie Bliss
    • David Strobach
    • Bob Hyman
    • Will S
    • Danny Sepler
    • Marius van Niekerk
  • v0.9.20 Changes

    August 26, 2020

    Added:

    abbrevs expansion now allows for setting cursor to a specific
    position within the expanded abbrev. For instance
    ::

    abbrevs["eswap"] = "with ${...}.swap():\n "

    expands eswap as you type to environment context manager
    swap() syntax and places the cursor at the position of the
    <edit> mark removing the mark itself in the process.

    Support for ANSI escape codes in $PROMPT/$RIGHT_PROMPT. In this way 3rd party prompt generators like powerline or starship can be used to set the prompt. ANSI escape codes might be mixed with the normal formatting (like {BOLD_GREEN}) and prompt variables (like {user}) should work as well.
    For example:
    ::

    $PROMPT=lambda: $(starship prompt)
    $RIGHT_PROMPT="\x1b[33m{hostname} {GREEN}> "

    βž• Added $HOSTNAME and $HOSTTYPE environment variables.

    πŸ†• New Env.rawkeys() iterator for iterating over all keys in an environment,
    not just the string keys like with __iter__ ().

    πŸ†• New landing page for https://xon.sh

    βž• Added xonsh AppImage to the GitHub release assets

    xonsh now comes with a bulitin version of prompt-toolkit (3.0.5) which will be used as fall back if prompt_toolkit is not installed.

    πŸ‘Œ Support for Python 3.8 PEP 572 assignment expressions (walrus operator).

    πŸ”„ Changed:

    • custom startup scripts replaced by setup.py -generated (console) entrypoint scripts for both xonsh and xonsh-cat.
      🏁 This means xonsh.bat and xonsh-cat.bat are replaced on Windows by xonsh.exe and xonsh-cat.exe, respectively.

    πŸ›  Fixed:

    Iterating over ${...} or __xonsh__.env yields only string
    values again.

    List comprehensions do not ignore the second and subsequent if clauses
    in multi-if comprehension expressions any more.

    Xonsh can now fully handle special Xonsh syntax within f-strings, including
    environmnent variables within ${} operator and captured subprocess
    expansion within f-string expressions.

    🏁 Avoid startup error on Windows when py.exe chooses wrong python interpreter to run xonsh.
    When multiple interpreters are in PATH, 'py' will choose the first one (usually in the virtual environment),
    but 'py -3' finds the system-wide one, apparently by design.

    πŸ“œ For xonsh-cat, avoid parsing and processing first (0'th) argument when invoked directly from OS shell.

    βš™ Run control files are now read in with $THREAD_SUBPROCS off.
    This prevents a weird error when starting xonsh from Bash (and
    possibly other shells) where the top-level xonsh process would
    be stopped and placed into the background during startup. It
    may be necessary to set $THREAD_SUBPROCS=False in downstream
    xonsh scripts and modules.

    πŸ›  Fixed installation issues where generated files (like the parser table and
    amalgamated modules) were not installed.

    βœ… The xonsh test suite has been cleaned up. So no more failing test. Hopefully.

    βž• Addressed robustness issue with "locked" history key not
    being present at startup.

    0️⃣ vox xontrib works again with the new environment defaults.

    Authors:

    • Anthony Scopatz
    • Morten Enemark Lund
    • David Strobach
    • Bob Hyman
    • anki-code
    • Raphael Das Gupta
    • Gyuri Horak