pypa/pipx

After interrupted reinstall-all, one package is gone

Open

#966 aperta il 9 apr 2023

Vedi su GitHub
 (2 commenti) (0 reazioni) (0 assegnatari)Python (363 fork)batch import
bughelp wanted

Metriche repository

Star
 (7844 star)
Metriche merge PR
 (Merge medio 5g 2h) (16 PR mergiate in 30 g)

Descrizione

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).

Guida contributor