rust-lang / rust-forge

Information useful to people contributing to Rust
https://forge.rust-lang.org/
Apache License 2.0
454 stars 169 forks source link

infra/channel-layout: Explain `channel-rust-stable` and `channel-rust-nightly` #760

Open cher-nov opened 1 month ago

cher-nov commented 1 month ago

https://forge.rust-lang.org/infra/channel-layout.html I can understand what the channel-rust-stable.toml and channel-rust-nightly.toml are, but what are their counterparts without the .toml extension?

https://static.rust-lang.org/dist/channel-rust-stable https://static.rust-lang.org/dist/channel-rust-nightly

From these links, Mozilla Firefox 115.13.0esr respectively downloads the files channel-rust-stable.gz and channel-rust-nightly.gz, which, however, are not compressed data, but plain text files containing the following (as of today):

channel-rust-stable.gz ``` rust-1.16.0-aarch64-unknown-linux-gnu.tar.gz rust-1.16.0-arm-unknown-linux-gnueabihf.tar.gz rust-1.16.0-arm-unknown-linux-gnueabi.tar.gz rust-1.16.0-armv7-unknown-linux-gnueabihf.tar.gz rust-1.16.0-i686-apple-darwin.pkg rust-1.16.0-i686-apple-darwin.tar.gz rust-1.16.0-i686-pc-windows-gnu.exe rust-1.16.0-i686-pc-windows-gnu.msi rust-1.16.0-i686-pc-windows-gnu.tar.gz rust-1.16.0-i686-pc-windows-msvc.exe rust-1.16.0-i686-pc-windows-msvc.msi rust-1.16.0-i686-pc-windows-msvc.tar.gz rust-1.16.0-i686-unknown-linux-gnu.tar.gz rust-1.16.0-mips64el-unknown-linux-gnuabi64.tar.gz rust-1.16.0-mips64-unknown-linux-gnuabi64.tar.gz rust-1.16.0-mipsel-unknown-linux-gnu.tar.gz rust-1.16.0-mips-unknown-linux-gnu.tar.gz rust-1.16.0-powerpc64le-unknown-linux-gnu.tar.gz rust-1.16.0-powerpc64-unknown-linux-gnu.tar.gz rust-1.16.0-powerpc-unknown-linux-gnu.tar.gz rust-1.16.0-s390x-unknown-linux-gnu.tar.gz rust-1.16.0-x86_64-apple-darwin.pkg rust-1.16.0-x86_64-apple-darwin.tar.gz rust-1.16.0-x86_64-pc-windows-gnu.exe rust-1.16.0-x86_64-pc-windows-gnu.msi rust-1.16.0-x86_64-pc-windows-gnu.tar.gz rust-1.16.0-x86_64-pc-windows-msvc.exe rust-1.16.0-x86_64-pc-windows-msvc.msi rust-1.16.0-x86_64-pc-windows-msvc.tar.gz rust-1.16.0-x86_64-unknown-freebsd.tar.gz rust-1.16.0-x86_64-unknown-linux-gnu.tar.gz rust-1.16.0-x86_64-unknown-netbsd.tar.gz ```
channel-rust-nightly.gz ``` rust-nightly-aarch64-unknown-linux-gnu.tar.gz rust-nightly-arm-unknown-linux-gnueabihf.tar.gz rust-nightly-arm-unknown-linux-gnueabi.tar.gz rust-nightly-armv7-unknown-linux-gnueabihf.tar.gz rust-nightly-i686-apple-darwin.pkg rust-nightly-i686-apple-darwin.tar.gz rust-nightly-i686-pc-windows-gnu.exe rust-nightly-i686-pc-windows-gnu.msi rust-nightly-i686-pc-windows-gnu.tar.gz rust-nightly-i686-pc-windows-msvc.exe rust-nightly-i686-pc-windows-msvc.msi rust-nightly-i686-pc-windows-msvc.tar.gz rust-nightly-i686-unknown-linux-gnu.tar.gz rust-nightly-mips64el-unknown-linux-gnuabi64.tar.gz rust-nightly-mips64-unknown-linux-gnuabi64.tar.gz rust-nightly-mipsel-unknown-linux-gnu.tar.gz rust-nightly-mips-unknown-linux-gnu.tar.gz rust-nightly-powerpc64le-unknown-linux-gnu.tar.gz rust-nightly-powerpc64-unknown-linux-gnu.tar.gz rust-nightly-powerpc-unknown-linux-gnu.tar.gz rust-nightly-s390x-unknown-linux-gnu.tar.gz rust-nightly-x86_64-apple-darwin.pkg rust-nightly-x86_64-apple-darwin.tar.gz rust-nightly-x86_64-pc-windows-gnu.exe rust-nightly-x86_64-pc-windows-gnu.msi rust-nightly-x86_64-pc-windows-gnu.tar.gz rust-nightly-x86_64-pc-windows-msvc.exe rust-nightly-x86_64-pc-windows-msvc.msi rust-nightly-x86_64-pc-windows-msvc.tar.gz rust-nightly-x86_64-unknown-freebsd.tar.gz rust-nightly-x86_64-unknown-linux-gnu.tar.gz rust-nightly-x86_64-unknown-netbsd.tar.gz ```

These links also work and provide what is expected: https://static.rust-lang.org/dist/channel-rust-stable.sha256 https://static.rust-lang.org/dist/channel-rust-stable.asc https://static.rust-lang.org/dist/channel-rust-nightly.sha256 https://static.rust-lang.org/dist/channel-rust-nightly.asc

Mark-Simulacrum commented 1 month ago

I suspect the .gz suffixed files are a mistake somewhere in the automation, they probably shouldn't exist.

cher-nov commented 1 month ago

I suspect the .gz suffixed files are a mistake somewhere in the automation, they probably shouldn't exist.

I doubt. This looks like an old version of the manifest. Note the "manifest not found" line below:

C:\Users\chernov_dd\rust-lang>set RUSTUP_DIST_SERVER=http://localhost
C:\Users\chernov_dd\rust-lang>rustup -v update
verbose: read metadata version: '12'
verbose: updating existing install for 'nightly-i686-pc-windows-gnu'
verbose: toolchain directory: 'C:\Users\chernov_dd\rust-lang\.rustup\toolchains\nightly-i686-pc-windows-gnu'
info: syncing channel updates for 'nightly-i686-pc-windows-gnu'
verbose: creating temp file: C:\Users\chernov_dd\rust-lang\.rustup\tmp\uv1qkvy0pwxa51p6_file
verbose: downloading file from: 'http://localhost/dist/channel-rust-nightly.toml.sha256'
verbose: downloading with reqwest
verbose: manifest not found. trying legacy manifest
verbose: creating temp file: C:\Users\chernov_dd\rust-lang\.rustup\tmp\tptkf2p1gd60o2ss_file
verbose: downloading file from: 'http://localhost/dist/channel-rust-nightly.sha256'
verbose: downloading with reqwest
thread 'main' panicked at src\dist\dist.rs:870:40:
Malformed manifest date: ""
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

A quick glance at rustup code confirms this:

https://github.com/rust-lang/rustup/blob/edf5c22d/src/dist/mod.rs#L659-L671 https://github.com/rust-lang/rustup/blob/edf5c22d/src/dist/mod.rs#L1198-L1221 https://github.com/rust-lang/rustup/blob/edf5c22d/src/dist/mod.rs#L1098-L1139 https://github.com/rust-lang/rustup/blob/edf5c22d/src/dist/notifications.rs#L150

Moreover, they're already mentioned in the current documentation, just without explanation of which files are meant:

https://github.com/rust-lang/rust-forge/blob/c573bf0e250405d8bed91409533b07e34a0aa58e/src/infra/channel-layout.md?plain=1#L35-L39