-
Notifications
You must be signed in to change notification settings - Fork 987
Description
Apologies if this has already been requested, but I couldn't seem to find any issues describing something like it, nor any feature already built-in to rustup to do this. If there is, please feel free to close this issue.
Describe the problem you are trying to solve
Frequently, when I create a new binary project, I want to pin a specific toolchain immediately after initializing the project, e.g.
cargo new --bin some-project
cat >some-project/rust-toolchain.toml <<EOF
[toolchain]
channel = "stable"
EOFHowever, I frequently forget the precise format of the toolchain file, and I have to search in rustup documentation to find an example and copy-paste that into my project. It would be nice if there was a simple way to generate a file with reasonable defaults that I could then customize, similar to the generated Cargo.toml created by cargo new or cargo init.
Describe the solution you'd like
Add one more more new rustup commands to create a rust-toolchain.toml in the current directory. I think this could work similarly to rustup override set (take a toolchain argument), or just use the default / currently-set toolchain. The generated file could also include comments that briefly describe some of the fields and link to the documentation.
Notes
Example of one possible workflow:
cargo new --bin some-project
cd some-project
rustup init nightly . # or whatever the syntax of the command looks likeAfter which the contents of some-project/rust-toolchain.toml would look like this:
# See more keys and their definitions at https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file
[toolchain]
channel = "nightly"
components = []
targets = []
profile = "default"Some possible command names:
rustup new(for parity withcargo new)rustup init(possibly confusing withrustup-init)rustup generate-toolchain-fileor similar (very wordy)rustup pin- A subcommand or flag to pass to
rustup override set?