Closed
Description
Currently we distribute cargo fix
subcommand through cargo install cargo-fix
. I discussed locally on discord though with @aturon and @Mark-Simulacrum that I'd personally prefer to distribute cargo fix
by default to users. In any case, a decision should be made!
I believe we have one of three options here to us:
- Do nothing - continue to ship
cargo fix
throughcargo install
. This has the benefit of not needing any work to get it done. It has a downside, however, of requiring users to opt-in to acquiringcargo fix
. Additionally it introduces the possibility for version skew wherecargo fix
is either too old or too new by accident. - Ship a rustup component - here we'd enable something like
rustup component add cargo-fix
or automatically enable it by default for new installations. This allows us to control versioning and provide it by default, but it requires a relatively large amount of rustbuild/dist work. - Merge
cargo-fix
into Cargo - here we'd merge thecargo fix
subcommand inside therustfix
repository to Cargo itself upstream, depending on therustfix
crate from crates.io. This has the benefits of shipping a rustup component but it's a little easier to do in terms of distribution. The downside of this approach is that, like a component, it ties rustfix to the trains so getting out a hotfix is more fuss (needs a full Rust release)
I'm personally inclined to go the route of "merge cargo-fix
into Cargo". I don't believe rustfix
has had many major changes and/or big bugs reported, so merging it into Cargo should require little-to-no fuss and the need for a hotfix should be pretty low. I'm curious to hear what others think though!
cc @killercup