xonsh v0.9.19 Release Notes

Release Date: 2020-08-09 // over 3 years ago
  • Added:

    πŸ‘ history command now supports flush action

    βž• Added new items on "Bash to xsh" page

    ⚠ JsonHistory: added history gc --force switch to allow user to override above warning.

    ⚠ JsonHistoryGC: display following warning when garbage collection would delete "too" much data and don't delete anything.

    "Warning: History garbage collection would discard more history ({size_over} {units}) than it would keep ({limit_size}).\n"
    "Not removing any history for now. Either increase your limit ($XONSH_HIST_SIZE), or run history gc --force.",

    It is displayed when the amount of history on disk is more than double the limit configured (or defaulted) for $XONSH_HIST_SIZE.

    $LS_COLORS code 'mh' now recognized for (multi) hard-linked files.

    πŸ”’ $LS_COLORS code 'ca' now recognized for files with security capabilities (linux only).

    βœ… CI step to run flake8 after pytest.

    RichCompletion for completions with different display value, description and prefix_len.

    Allow completer access to multiline document when available via xonsh.completers.tools.get_ptk_completer().current_document.

    βͺ abbrevs word expasion can now be reverted by pressing
    the space bar second time immediately after the previous
    word got expanded.

    ulimit command.

    🚦 pdb xontrib, that runs pdb debugger on reception of SIGUSR1 signal.

    xontrib-xpg is a xontrib for running or explaining sql queries for posgresql database.

    πŸ”„ Changed:

    • Xonsh now launches subprocesses with their argv[0] argument containing
      the command exactly as inserted by the user instead of setting it to the
      resolved path of the executable. This is for consistency with bash and other
      shells.
    • βž• Added ability to register, deregister environment variables;
      0️⃣ centralized environment default variables
    • βž• Added exit to the "Bash to xsh" article.
    • xonsh.main _failback_to_other_shells now tries user's login shell (in $SHELL) before trying system wide shells from /etc/shells.
    • πŸ“œ The current working directory is now correctly obtained in line 501 of xonsh/parsers/base.py
    • ⚠ Garbage collection avoids deleting history and issues a warning instead if existing history is more than double the comfigured limit.
      ⚠ This protects active users who might have accumulated a lot of history while a bug was preventing garbage collection. The warning
      will be displayed each time Xonsh is started until user takes action to reconcile the situation.
    • tests\test_integrations.py no longer runs with XONSH_DEBUG=1 (because new, debug-only progress messages from history were breaking it).
    • ⚑️ Updated pytest_plugin for pytest 5.4 API, pip requirements for pytest>= 5.4
    • Major improvements to Jedi xontrib completer:
      • Use new Jedi API
      • Replace the existing python completer
      • Create rich completions with extra info
      • Use entire multiline document if available
      • Complete xonsh special tokens
      • Be aware of _ (last result)
      • Only show dunder attrs when prefix ends with '_'
    • ⚑️ Many files are starting to be formatted using pyupgrade --py36-plus, in order to automatically update to newer
      Python constructs.
    • xontrib load does not stop loading modules on error any more.

    πŸ—„ Deprecated:

    • βœ… pytest --flake8 now exits with error message to use flake8 instead.
      πŸ‘ Allows single list of lint exceptions to apply in CI and your IDE.

    βœ‚ Removed:

    • βœ‚ Removed history replay
    • πŸ“¦ pytest-flake8 package from requirements*.txt
    • Xonsh now relies exclusively on Setuptools for install.
    • 🚚 Compatibility with Python 3.5 has been removed as well as all related code. In
      particular xonsh.inspector does not defined getouterframes anymore, use
      inspect.getouterframe directly.

    πŸ›  Fixed:

    πŸ‘» Unhandled exception triggered by unexpected return from callable alias.

    πŸ›  Fix path completer throwing exception sometimes

    πŸ›  Fixed help operator not displaying definition for callables.

    JsonHistory.files(): Now once again enumerates history files from the directory. This has been broken for about 2 years.

    JsonHistory.run_gc(): Don't busy loop while waiting for history garbage collection to complete, sleep a bit instead.
    πŸ“± This does much to keep Xonsh ptk_shell responsive when dealing with very large history on disk.

    πŸ›  Fixed JSON history indexing error.

    πŸ›  Fixed syntax error in scripts containing line continuation syntax.

    $LS_COLORS code 'fi' now used for "regular files", as it should have been all along. (was 'rs')
    πŸ‘€ See (#3608)[https://github.com/[/issues/3608](https://github.com/xonsh/xonsh/issues/3608)].

    pyghooks.color_files now follows implememntation of ls --color closely. Thanks @qwenger!
    However, a few documented differences remain due to use in Xonsh.

    πŸ›  $LS_COLORS['ln'] = 'target' now works. Also fixes #3578.

    πŸ›  Fixed exit code for commands executed via -c (#3402)

    Logical subprocess operators now work after long arguments (e.g. --version).

    pip completer no longer erroneously fires for pipx

    ⚑️ Updated development guide to reference flake8 instead of pylint

    Corrected flake8 config for allowed exceptions.

    βœ… various pytest warnings in a "clean" test run.

    The current Mercurial topic is shown.

    πŸ›  Fixed import problems due to modules using deprecated pkg_resources methods by proxying calls to the underlying loader.

    Typo in 'source' alias.

    Crash in 'completer' completer.

    Don't complete unnecessarily in 'base' completer

    🀑 Viewing mock objects in the shell

    πŸ›  Fixed formatting error in vox rm command.

    Authors:

    • Anthony Scopatz
    • Gil Forsyth
    • Morten Enemark Lund
    • Bob Hyman
    • David Strobach
    • Burak Yiğit Kaya
    • Matthias Bussonnier
    • anki-code
    • David Dotson
    • con-f-use
    • Daniel Shimon
    • Jason R. Coombs
    • Gyuri Horak
    • Achim Herwig
    • Marduk BolaΓ±os
    • Stefane Fermigier
    • swedneck
    • Feng Tian
    • cafehaine
    • paugier