axodotdev / axodotdev/cargo-dist
Uninstalling `rustup` deletes `cargo-dist` installed packages
- Dominant language
- Rust
- Stars
- 2.1k
- Forks
- 149
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 32
Description
Steps
```console
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ apt-get update && apt-get install -y curl
$ curl -LsSf https://astral.sh/uv/install.sh | sh
$ source $HOME/.cargo/env
$ uvx posting # works
$ rustup self uninstall
$ uvx posting # fails
```
*note:* I've not run this but am basing it off of cargo-dist's generated `install.sh` and from rustup's source code: https://github.com/rust-lang/rustup/blob/c91692a1bdbd91663dbc5fbb1f1bdd684e711f1c/src/cli/self_update.rs#L908-L925
This is a fully reasonable set of steps. A user could experiment with rust and decide to stop but want to keep using their Python tooling that happens to be implemented in Rust.
Also, if I were making a product, I wouldn't want the implementation's language to be a part of our compatibility story
As a Cargo team member, I'm concerned about people mucking with Cargo's internals
Contributor guide
Research direction
Start by reviewing cargo-dist’s generated install.sh alongside rustup’s self_update.rs at lines 908-925, then reproduce the listed installation and uninstall commands if possible. Done means removing rustup no longer breaks the cargo-dist-installed posting package, so `uvx posting` still works afterward.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- release, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100