rustversion icon indicating copy to clipboard operation
rustversion copied to clipboard

Matching wrong nightly versions by 1 day

Open wmmc88 opened this issue 2 years ago • 1 comments

version: rustversion = "1.0.14"

#[rustversion::nightly(2023-09-13)]
fn main() {
    println!("Hello, world!");
}

With nightly-2023-09-13:

cargo +nightly-2023-09-13 b
   Compiling rustversion v1.0.14
   Compiling rust-version-test v0.1.0 (D:\git-repos\github\rust-version-test)
error[E0601]: `main` function not found in crate `rust_version_test`
 --> src\main.rs:4:2
  |
4 | }
  |  ^ consider adding a `main` function to `src\main.rs`

For more information about this error, try `rustc --explain E0601`.
error: could not compile `rust-version-test` (bin "rust-version-test") due to previous error

With nightly-2023-09-14:

 cargo +nightly-2023-09-14 b
   Compiling rustversion v1.0.14
   Compiling rust-version-test v0.1.0 (D:\git-repos\github\rust-version-test)
    Finished dev [unoptimized + debuginfo] target(s) in 1.86s

As you can see, it fails to compile on nightly-2023-09-13, but succeeds on nightly-2023-09-14. I would expect the opposite behaviour to be true. It seems like the nightly version name is off by 1 compared to what rustversion thinks it is. I'm not sure if this is a bug in rustversion or in how the rust releases tag their names.

wmmc88 avatar Dec 22 '23 21:12 wmmc88

I think the date used in the rustversion macro corresponds with the date of the latest commit in that particular nightly build, and not the name of the nightly which matches the archive date. I think this should probably be called out in the documentation for this crate.

wmmc88 avatar Jan 19 '24 00:01 wmmc88