pypa/pipx

After interrupted reinstall-all, one package is gone

Open

#966 aberto em 9 de abr. de 2023

Ver no GitHub
 (2 comments) (0 reactions) (0 assignees)Python (363 forks)batch import
bughelp wanted

Métricas do repositório

Stars
 (7.844 stars)
Métricas de merge de PR
 (Mesclagem média 5d 2h) (16 fundiu PRs em 30d)

Description

Describe the bug

While troubleshooting #965, I ran reinstall-all several times, first without --verbose, then with --verbose, then a few times more until I was able to get a clean output of the behavior. During at least one of those runs, I interrupted the operation. I didn't take note of the operation that was in progress and assumed it was safe to terminate a pipx operation. I've since closed my terminal, so I no longer have a meaningful record of what transpired, but I can confirm that the tox executable is missing as is the virtualenv in ~/.local/pipx/venvs.

It's possible I had tox installed with nothing else, so it's straightforward to reinstall with pipx install tox, but I don't recall if I had other state configured in that environment (injected packages, ...).

How to reproduce

I haven't yet attempted to reproduce it. I'd like to get feedback about the expected behavior first.

Expected behavior

pipx operations should be interrupt-safe (rolled back if cancelled) or should warn the user (maybe even prompt) if an irreversible operation has taken place but its replacement has been cancelled. Such a message should include state that is otherwise lost (what packages were injected in that pipx env).

Guia do colaborador