rust-lang / rust-lang/rustup

Reconsider recommending `--profile minimal` for CI (or add CI tools to the minimal profile)

Open
#3,078 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Problem you are trying to solve

The official Rust Docker images do not contain clippy and rustfmt. This has been the source of several issues.

As far as I can tell, they haven't been added because the Rust Docker images should only install what is provided by default by rustup (which seems fair). And since rustup recommends the minimal profile for CI, it seems fair that this is the one used by the Rust Docker images (since such Docker images are often used in CI).

However I think this is a bad recommendation. Linting (clippy) and code format verification (rustfmt) are very, very common tasks in CI. Recommending a profile for CI that doesn't have the capacity to lint code or verify its format is bound to eventually lead to problems when users try to do those things (which just happened to me, and probably why there are all those previously mentioned issues in the docker-rust repository).

Solution you'd like

Rustup ought to recommend a profile for CI that includes the capacity to lint and format code. This can be achieved in any number of ways:

  1. Add rustfmt and clippy to the minimal profile (probably not desirable)
  2. Recommend the default profile for use in CI.
  3. Create a new profile specifically tailored to CI that includes rustfmt and clippy.

I don't really care which solution is chosen - the point is that given such a recommendation, I think the clear choice for the Rust Docker images would be to use the image that includes rustfmt and clippy, which would solve the problem as stated above and solve the issues in the docker-rust repository.

Notes

No response

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 reviewing the linked rustup profile guidance and the minimal and default profile definitions, then compare them with the official Rust Docker image behavior described in the issue. Done means selecting and implementing a CI recommendation or profile change that provides clippy and rustfmt, with the Docker-image recommendation aligned.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, rust
Domain
ci-cd, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.