Mechanism to switch `~/.cargo/config.toml`/`.cargo/config.toml` based on channel
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 1.1k
- Avg merge
- 22h 40m
- Merged PRs (30d)
- 46
Description
Problem you are trying to solve
There are some options I like to enable globally when using cargo (via cargo's config.toml):
rustflags = ["-C", "link-arg=-fuse-ld=/usr/sbin/mold"](for all channels)rustflags = ["-Z", "threads=<N>"](for nightly only)
I've tried:
- To set
RUSTFLAGSviarust-toolchain.toml(not an option) - To specify channel in cargo's
config.toml(not possible,cargodoesn't understand the idea of multiple toolchains) - To set a
.cargo/config.tomlin each individual crate (inefficient, and if I decide to try using+stablein a+nightly-configured crate, I get an error)
-Z threads=<N> will eventually land in stable, but I can envision similar feature incompatibilities between the channels in the future.
Solution you'd like
Much like the cargo binary is swapped out by rustup, I'd like an option to swap out config.toml files as if I really was using a fully isolated and separate toolchain.
It could be that rustup has an equivalent location to where cargo will look for config.toml for each toolchain, but it's not clear if this file will be preserved between installation/updates/removal.
Notes
I can see a few ways to approach this, but they all have pros/cons so I'm curious to hear from rustup devs what their thoughts are.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by reviewing how rustup selects toolchains and how Cargo discovers config.toml files, then discuss the proposed channel-specific configuration mechanism with maintainers; done means an agreed design and implementation scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100