Added:
-
history
command now supportsflush
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 runhistory 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;
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 definedgetouterframes
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]. -
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 forpipx
-
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