* Bug Fixes
* ci update
* pypi wheel checking
* update publish
- Update to version 0.19.6:
* Bug Fixes
* upload releases to PyPI
- Update to version 0.19.5:
* Features
* #5745 - send Ctrl+C event on Windows instead of forceful terminate
* completion: Accept single completion in VI MODE using `Ctrl+]`
* New experimental Rust based parser for xonsh
* Bug Fixes
* don't skip history items when running full history pull after session-specific pull
* Performance Improvements
* Disable double check is_file on Windows systems to speedup IO
* Documentation
* Add missing bash conversion example
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=36
* Updated bash_completion.py from archived xonsh/py-bash-
completion repo
* Using trace on with .xsh scripts could previously lead to a
spurious ignored exception showing up on stderr. This is now
fixed.
* bash_completion: Fixed empty line in completion result
(https://github.com/xonsh/py-bash-completion/pull/21).
* pipelines: fixed 'NoneType' object has no attribute 'pid'
exception (#5794).
* The history delete action on the sqlite backend used to pass
matched history lines to a SQL statement without
sanitization. This could lead to unexpected SQL being run on
the history database. This is now fixed. Security risk: low.
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=34
- fix missing readline
* depend on python3 instead of python3-base
- update to 0.19.2:
* env: add $XONSH_PROMPT_CURSOR_SHAPE for configuring prompt
cursor shape.
* env: Added XONSH_CONFIG_DIR, XONSH_DATA_DIR and
XONSH_CACHE_DIR.
* SIGHUP will now be forwarded to child processes when received
by the main xonsh process. This matches the behavior of other
shells e.g. bash.
* Documented the fact that the on_postcommand event only fires in
interactive mode.
* history: Added and documented --session-id parameter for
history pull command.
* history-json: Implemented history pull for JSON history
backend.
* Running a subcommand in an event handler will no longer block
xonsh from exiting.
* history: Prevented history pull command from adding consecutive
duplicates to propmter history.
* prompt toolkit: Fixed autosuggest sometimes not updating when
up-arrow is pressed (#5787).
* Subprocess-based completions like xontrib-fish-completer
<https://github.com/xonsh/xontrib-fish-completer>_ no longer
append a space if the single available completion ends with a
directory separator. This is consistent with the behavior of
the default completer.
OBS-URL: https://build.opensuse.org/request/show/1246434
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=30
- update to 0.16.0:
* Square brackets can now be used in command arguments without
quotes (e.g. echo a[b])
* Add XONSH_BASH_PATH_OVERRIDE option (off-by-default) to
override what is returned by xonsh.platform.bash_command.
* Added PATH.prepend(path) to add path to the beginning.
* Xonsh AppImage now on Python 3.12 that works faster.
* Xonsh AppImage: pinned prompt-toolkit version until fix
upstream issue.
* Builtin aliases (xontrib, history) switched to threadable
mode.
* EnvPath methods (append, remove, add, insert) prepare the
path before action.
* Replaced black formatter with ruff-format
* source_foreign_fn now does not run subshells in interactive
mode, so associated RC files like zshrc and bashrc will not
be auto-loaded on sourcing.
* Removed usage of deprecated cgi module
* Removed ArgParserAlias.hook_pre_add_argument,
ArgParserAlias.hook_post_add_argument. Please use custom
action instead to modify the argument options.
* Removed deprecated module xonsh.proc
* Fixed an issue with completions when using absolute paths to
commands and having $UPDATE_COMPLETIONS_ON_KEYPRESS set to
True. https://github.com/xonsh/xonsh/issues/5127
* Jobs: fixed "index out of range" exception.
* Expressions like 2>1 are now parsed correctly as Python code
instead of being treated like special io-redirection
operators.
* Redirect tokens in quotes (e.g. ">", "2>", "2>1") are now
OBS-URL: https://build.opensuse.org/request/show/1170597
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=28
- update to 0.14.4:
* System clipboard can be fully disabled using
$XONSH_USE_SYSTEM_CLIPBOARD.
* xonsh now adds the user site packages directory to sys.path
where required for proper xontrib discovery
* history: fix json file permissions upon sudo
* Correctly parse multi line foreign aliases
* Upgrade Python version at the introduction
OBS-URL: https://build.opensuse.org/request/show/1142071
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=24
- update to 0.14.1:
* Added ``history delete`` command to both the JSON and SQLite
history backends allowing users to delete commands from
history that matches a pattern.
* Added preliminary support for Python v3.12
* Always load rc files except that --norc is passed.
* Unset the default line continuation environment variables
(``$MULTILINE_PROMPT_PRE`` and ``$MULTILINE_PROMPT_POS``) to
allow differentiating between user setting an empty value and
not setting anything
* Dropped support for Python v3.8
* This change fixes issue #4855, that is, rc files will be
loaded in non-interactive mode.
multiline prompts via two environment variables:
* Added ``chdir`` to ``xonsh.tools``. This allows to use
``menu-complete`` enables TAB behavior like ``readline`` command ``menu-complete``. First TAB selects the first matching
- ``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,
- xonsh/environ.py: new rule: for "registered" environment variables (in ``DEFAULT_VARS`` or via ``env.register()``),
if default is set to ``DefaultNotGiven``, then variable has no default and raises ``KeyError`` if it is not
- ``xonfig info`` displays whether jupyter detected in environment and
- setup no longer (tries to) install jupyter kernel automatically,
``pip install .`` wouldn't (because pip mucks with ``sys.path``),
- Rewrote Installation and Configuration sections of Getting Started doc
- Flake8/black fixes to the whole code tree, in 3 steps.
- Fixed bug on Windows if Path elements has trailing spaces. Windows in general and ``os.path.isdir()``
are still executed first to avoid a bug were other tests would prevent ``test_*.xsh``
- `[color] in .gitconfig (#3427) <https://github.com/xonsh/xonsh/issues/3427>`_ now stripped from {curr\_branch}
- Remove built in support for "win unicode console". Full unicode support on windows is now provided by
OBS-URL: https://build.opensuse.org/request/show/1119077
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=22
- update to 0.14.0:
* key_bindings: map `escape-f` as another word completer for macOS
* Added ``history pull`` command to SQLite history backend to pull
the history from parallel sessions and add to the current
session.
* Add support for `Semantic Prompt for line continuations in
multiline prompts via two environment variables:
``$MULTILINE_PROMPT_PRE`` and ``$MULTILINE_PROMPT_POS``
(e.g., ``\x01\x1b]133;B\x07\x02``) that are inserted
before/after each continuation line 'dots' block to mark input
* Wheels for Python 3.11 are part of the automated release action
* Added ``chdir`` to ``xonsh.tools``. This allows to use
``with chdir("dir"):`` to run commands block in the certain
directory without manually cd-ing.
* Display the current branch of Fossil VCS checkouts in the prompt,
similar to git and hg.
* Added link to xonsh on Mastodon - https://mastodon.online/@xonsh
* xontrib load: added option ``-s`` to skip warning about not
installed xontribs.
* Altered documentation for xonshrc to remove Python REPL prompts
so that you can copy the code without having to edit it.
* xonsh AppImage - bumped python to 3.11
* The prompt end character switched to ``@``.
* The `command not found` error will show the ``repr(cmd)``
to uncover the cases when the command name has ``\n``, ``\t``
or not visible color codes and raises the error.
OBS-URL: https://build.opensuse.org/request/show/1095482
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=20
- Added:
- tests for methods changed in tools.py (is_tok_color_dict)
- ``$XDG_CACHE_HOME``, ``$XONSH_CACHE_DIR`` are now available inside ``Xonsh``
- #2455 Add `on_command_not_found` event, fired when a command is not found.
- Changed:
- is_str_str_dict changed to check for Token:style dict
- Removed:
- ``$COMMANDS_CACHE_SIZE_WARNING`` is removed. When ``$COMMANDS_CACHE_SAVE_INTERMEDIATE`` is enabled,
the cache file size is optimized.
- Fixed:
- #4668 Fix ptk completion stacking when auto-suggest is on and no normal completions are generated.
- $XONSH_STYLE_OVERRIDES cannot be assigned dict of {Token: str} #4375
- commands_cache: add a configurable value to disable cache. useful for running scripts
- fixed stale results when ``$COMMANDS_CACHE_SAVE_INTERMEDIATE`` is enabled.
- #4951 Fix gitstatus prompt when rebasing
- fixed using aliases to override commands without the file extension on Windows
- #3279 Add `XONSH_HISTORY_IGNORE_REGEX` support. You can specify a regular
expression in the environment variable `XONSH_HISTORY_IGNORE_REGEX` and any
command that matches the expression will not be added to the history.
- Update to version 0.13.2:
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=18
- update to 0.13.3:
* ``pygments`` startup crash when incorrect prepending ``bg:`` to
``noinherit`` style directives
* When there is no git repository, the values of all ``gitstatus`` prompt
fields are now ``None``.
* With ``$THREAD_SUBPROCS=False``: When a callable alias is executed with
``![]``, its standard output and standard error are no longer captured.
This is because a separate thread is required in order to both capture
the output and stream it to the terminal while the alias is running.
* Fixed timeit syntax error
* When there is no git repository, ``$PROMPT`` format strings like
``{gitstatus: hello {}}`` now work as expected.
* With ``$THREAD_SUBPROCS=False``: When ``cd`` is used with an invalid
directory, the error message is now correctly displayed.
* Fixed case when xpip returns None instead of command.
OBS-URL: https://build.opensuse.org/request/show/1040647
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=17
- Added:
- The ujson (faster version of json) added to xonsh[full] package.
- Changed:
- Bumped Python version in `xonsh.AppImage` to 3.10
- The terminal's title is updated with the current command's name even if the command is a captured command or a callable alias
- Fixed:
- Warn and continue if a user without ``pygments`` tries to load an unknown style
- Fixed a bash completion bug when prefixing a file path with '<' or '>' (for redirecting stdin/stdout/stderr)
- Fixed a bash completion bug when completing a git branch name when deleting a remote branch (e.g. `git push origin :dev-branch`)
- A callable alias containing subprocess commands no longer freezes when piped to another command
- ``less`` no longer stops when a callable alias containing subprocess commands is piped into it
- ``gitstatus`` Prompt-field would be empty on paths without git setup.
- When using the sway window manager, ``swaymsg -t get_inputs`` no longer fails with the error "Unable to receive IPC response"
- The ``current_job`` variable now works as expected when used in ``$TITLE``
- Security:
- ``xpip`` will never add ``sudo`` under any circumstances and will instead append ``--user`` as needed
- update to version 0.13.0:
- Removed:
- The ``xonsh`` code-base is no longer amalgamated, so tracebacks should be
human-readable without intervention. This may have (minor) impacts on startup
speed.
- Fixed:
- Fix xontrib loading for `free_cwd`
- Fixed `whole_word_jumping` xontrib failing on Linux, conditional import of ``ptk_win32`` → Windows only
- Fixed error caused by unintialized Xonsh session env when using Xonsh as a library just for its Pygments lexer plugin.
- update to version 0.12.6:
- Fixed:
- String literal concatenation now works with f-strings and path literals
- A SyntaxError is raised when string literal concatenation is attempted with literals of different types (e.g. str and bytes)
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=15
- Fixed completions for command argument paths after equal signs
- A trailing space no longer gets appended when tab-completing command arguments that involve equals signs. For example `dd sta` gets completed to `dd status=`, without a space space after the equals sign.
- regression on `gitstatus <https://github.com/xonsh/xonsh/pull/4771>`_ prompt is fixed now. It will display the value now instead of the name.
- `fixed <https://github.com/xonsh/xonsh/pull/4763>`_ ``vox rm`` crashing when user input is required
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=11
- update to version 0.12.1:
- Fixed:
- fixed regression issue in loading `xontrib-abbrevs <https://github.com/xonsh/xonsh/pull/4757>`_
- Allow xonsh to start gracefully even if modal cursors aren't in the available
prompt_toolkit version
- update to version 0.12.0:
- Added:
- Added interface to complete any alias that has ``xonsh_complete`` attribute. It is a function with ``fn(**kwargs) -> Iterator[RichCompletion | str]`` signature.
- added ``$ALIAS_COMPLETIONS_OPTIONS_LONGEST`` to control showing options in completions
- added ``$CMD_COMPLETIONS_SHOW_DESC`` environment variable to control showing command completions with a description part.
- `completer complete` command is added to test current completions
- completions from man page will now show the description for the options if available.
- ``$XONSH_COMPLETER_DIRS`` to put command completers
- ``Aliases.register`` to register an alias function.
- Tracebacks are now printed in color if available (interactive session with shell that supports colors with pygments installed and $COLOR_RESULTS enabled)
- Added python's match statement for python >=3.10.
- Added support for the $SHLVL environment variable, typed as int, using bash's semantics.
- Python files with command completions can be put inside ``xompletions`` namespace package,
they will get loaded lazily.
- `xontrib.fish_completer` is available to complete using `fish` shell.
- Support for pythons sys.last_type, sys.last_value, sys.last_traceback.
- added ``xonsh-uname`` command to ``xoreutils``
- auto-completion support for commands : ``source-foreign``, ``source-bash``, ``source-zsh``, ``source-cmd``
- added ``history transfer`` command to transfer history entries between backends.
- now ``$PROMPT_FIELDS`` is a custom class with method ``pick(field_name)`` to get the field value efficiently.
The results are cached within the same prompt call.
- new class ``xonsh.prompt.base.PromptField`` to ease creating/extending prompt-fields
- **Sublime Text 4** extension to the Editors page.
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=10
- Added:
- added new utility classes ``xonsh.cli_utils.ArgParserAlias``, ``xonsh.cli_utils.ArgCompleter``.
These are helper classes, that add coloring and auto-completion support to the alias-commands.
- when ``$ENABLE_ASYNC_PROMPT=True`` lazy load ``prompt-toolkit``'s color-input support.
- Add ``CTRL-Right`` key binding to complete a single auto-suggestion word.
- Show environment variables' type and descriptions when completing them.
- Add ``CTRL-Backspace`` key binding to delete a single word via ``$XONSH_CTRL_BKSPC_DELETION``.
- Improved ``pip``/``xpip`` completer.
- Separator used by gitstatus can now be styled using ``XONSH_GITSTATUS_SEPARATOR``.
- Complete 'import' statements with modules that aren't loaded.
- Complete multiple modules/objects in 'import' statements.
- Multiple new metadata fields in ``setup.py``
- Pure Python control files are now supported when named ``*.py``.
Using python files may lower the startup time by a bit.
- new environment variable ``$XONSH_TRACE_SUBPROC_FUNC``
to handle ``$XONSH_TRACE_SUBPROC`` output
- Added `xontrib-pyrtn <https://github.com/dyuri/xontrib-pyrtn>` to xontrib list.
- Changed:
- Display error message when running `xonfig colors` in a non-interactive shell
- Using ``ArgparserAlias`` for ``dirs``, ``popd``, ``pushd``
- use ``ArgparserAlias`` for ``disown`` alias with completion support
- ``history`` alias now has colored help message and completion support when running interactively.
- using ``ArgparserAlias`` for ``trace`` alias with completion support
- improve ``vox`` CLI completions
- use ArgparserAlias for ``xexec``. Now it supports completions.
- ``xonfig`` now has colored help message when ran interactively.
- Using ``ArgparserAlias`` to improve ``xontrib`` completions
- Changed !() to also capture background subprocesses
- Suggested commands are cached for better performance.
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=6
- 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)
- update to version 0.10.0:
- 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.
OBS-URL: https://build.opensuse.org/package/show/shells/xonsh?expand=0&rev=4