axodotdev / axodotdev/cargo-dist

Uninstalling `rustup` deletes `cargo-dist` installed packages

Open
#1,353 2 comments 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.