jdx/mise

When using uv as the pipx backend, cannot install additional packages

Closed this issue · 3 comments

Describe the bug
When installing xonsh, a user will typically need to additionally install xontribs in the virtual environment. There is a parser error when doing this with mise

To Reproduce
Steps to reproduce the behavior.

mise use -g 'pipx:xonsh[full,uvx_args="--with xontrib-clp,xontrib-dotdot,xontrib-zoxide,xontrib-chatgpt,xontrib-gitinfo,xontrib-sh,xontrib-prompt_starship,xontrib-term-integrations,xontrib-readable-traceback"]'

This errors with the following:

mise use -g 'pipx:xonsh[full,uvx_args="--with xontrib-clp,xontrib-dotdot,xontrib-zoxide,xontrib-chatgpt,xontrib-gitinfo,xontrib-sh,xontrib-prompt_starship"]' -f --verbose
DEBUG ARGS: mise use -g pipx:xonsh[full,uvx_args="--with xontrib-clp,xontrib-dotdot,xontrib-zoxide,xontrib-chatgpt,xontrib-gitinfo,xontrib-sh,xontrib-prompt_starship"] -f --verbose
DEBUG EnvResults
DEBUG config: ~/.config/mise/config.toml
DEBUG install_some_versions: pipx:xonsh@latest
INFO  pipx:xonsh@0.19.0 install
INFO  pipx:xonsh@0.19.0 uv tool install xonsh==0.19.0
DEBUG EnvResults
DEBUG EnvResults
Error: 
   0: failed to install pipx:xonsh@0.19.0
   1: missing closing quote

Location:
   src/backend/pipx.rs:102

Version:
   2024.12.14 linux-x64 (33ed8c1 2024-12-19)

NOTE: This works if you manually edit mise/config.toml with the line below and do a mise up pipx:xonsh

Expected behavior
The above should install the following line in the mise/config.toml:

[tools]
"pipx:xonsh" = { version = "latest", full = "", uvx_args="--with xontrib-clp,xontrib-dotdot,xontrib-zoxide,xontrib-chatgpt,xontrib-gitinfo,xontrib-sh,xontrib-prompt_starship,xontrib-term-integrations,xontrib-readable-traceback" }
uv = "latest"

mise doctor output

version: 2024.12.14 linux-x64 (33ed8c1 2024-12-19)
activated: yes
shims_on_path: no

build_info:
  Target: x86_64-unknown-linux-gnu
  Features: DEFAULT, NATIVE_TLS
  Built: Thu, 19 Dec 2024 09:01:44 +0000
  Rust Version: rustc 1.83.0 (90b35a623 2024-11-26) (Arch Linux rust 1:1.83.0-1)
  Profile: release

shell:
  /usr/bin/zsh
  zsh 5.9 (x86_64-pc-linux-gnu)

dirs:
  cache: ~/.cache/mise
  config: ~/.config/mise
  data: ~/.local/share/mise
  shims: ~/.local/share/mise/shims
  state: ~/.local/state/mise

config_files:
  ~/.config/mise/config.toml

backends:
  aqua
  asdf
  cargo
  core
  gem
  go
  npm
  pipx
  spm
  ubi
  vfox

plugins:
  poetry  https://github.com/mise-plugins/mise-poetry.git#daaaab6

toolset:
  aqua:astral-sh/uv@0.5.10
  core:node@20.18.1
  pipx:xonsh@0.19.0

path:
  ~/.local/share/mise/installs/node/20.18.1/bin
  ~/.local/share/mise/installs/pipx-xonsh/0.19.0/bin
  ~/.local/share/mise/installs/uv/0.5.10/uv-x86_64-unknown-linux-musl
  ~/.local/bin
  ~/bin
  ~/go/bin
  ~/.shell.d/aliases
  ~/.local/bin
  /usr/local/sbin
  /usr/local/bin
  /usr/bin
  /opt/cuda/bin
  /opt/cuda/nsight_compute
  /opt/cuda/nsight_systems/bin
  /var/lib/flatpak/exports/bin
  /usr/lib/jvm/default/bin
  /usr/bin/site_perl
  /usr/bin/vendor_perl
  /usr/bin/core_perl
  /var/lib/snapd/snap/bin

env_vars:
  MISE_SHELL=zsh

settings:
  experimental  true ~/.config/mise/config.toml
  pipx.uvx      true ~/.config/mise/config.toml

No problems found

jdx commented

you can't use quotes there, you need to manually edit your config file

I can accept that, this is pretty unusual.

The issue I ran into is when I install it and activate the environment, there's no pip installed in the environment. Is there a way to ensure that it is present in that uv created environment?

jdx commented

I don't know