cross-rs/cross

Overrides with dated nightly in file override and simple stable commandline override lead to unholy hybrid toolchain that doesn't exist

9SMTM6 opened this issue · 1 comments

Checklist

Describe your issue

I've got a project with

# rust-toolchain.toml
[toolchain]
channel = "nightly-2024-08-02"
components = ["rust-src", "rustfmt", "clippy"]

and I invoke cross with cross +stable build. That same thing works with cargo. With cross I end up with:

+ rustup toolchain add stable-2024-08-02-x86_64-unknown-linux-gnu --profile minimal --force-non-host
info: syncing channel updates for 'stable-2024-08-02-x86_64-unknown-linux-gnu'
error: no release found for 'stable-2024-08-02'
Error: 
   0: couldn't install toolchain `stable-2024-08-02-x86_64-unknown-linux-gnu`
   1: `rustup toolchain add stable-2024-08-02-x86_64-unknown-linux-gnu --profile minimal --force-non-host` failed with exit status: 1

cross version

cross v0.2.5 (https://github.com/cross-rs/cross?rev=1b8cf50d20180c1a394099e608141480f934b7f7#1b8cf50d)

Example

No response

Additional information / notes

No response

We need to remove date here

cross/src/rustc.rs

Lines 215 to 230 in 1901fd7

/// Merge a "picked" toolchain, overriding set fields.
pub fn with_picked(self, picked: Toolchain) -> Result<Self> {
let date = picked.date.or(self.date);
let host = picked
.host
.map_or(Ok(self.host), ImagePlatform::from_target)?;
let channel = picked.channel;
Ok(QualifiedToolchain::new(
&channel,
&date,
&host,
&self.sysroot,
false,
))
}
if channel is not nightly