rust-lang / rust-lang/rustup

Add support for `install --profile empty`

Open
#2,970 3 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

E-mentor enhancement help wanted
Dominant language
Rust
Stars
7k
Forks
1.1k
Avg merge
22h 40m
Merged PRs (30d)
46

Description

Problem you are trying to solve

Bootstrap in rust-lang/rust wants to have a version of rustfmt that's different than the bootstrap compiler toolchain. Right now, to manage it using rustup, we'd have to install a full duplicate toolchain with rustup install --profile minimal. It would be nice to only install the rustfmt component and nothing else.

Solution you'd like

@kinnison and @rbtcollins on Discord agreed to rustup toolchain install --profile empty, which would mean "register this toolchain with rustup" (and I guess download the manifest?), "but don't install any components". That would allow running rustup toolchain install nightly-2022-02-23 --profile empty --component rustfmt in bootstrap.

Notes

cc https://github.com/rust-lang/rust/issues/95136

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the rustup toolchain install entry point and how the existing minimal profile is handled. Implement the requested --profile empty behavior so a toolchain is registered without default components, while an explicitly requested rustfmt component is installed. Done means the example nightly installation command works with only rustfmt installed.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.