Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
cher-nov opened this issue Jul 20, 2024 · 2 comments
Open

Comments

@cher-nov
Copy link

cher-nov commented Jul 20, 2024

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

@cher-nov cher-nov changed the title infra/channel-layout: Explain what is channel-rust-stable and channel-rust-nightly infra/channel-layout: Explain channel-rust-stable and channel-rust-nightly Jul 20, 2024
@Mark-Simulacrum
Copy link
Member

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

@cher-nov
Copy link
Author

cher-nov commented Jul 21, 2024

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:

### Content of channel manifests
Channel manifests are `toml` files. These are known as _v2_ manifests. The _v1_
manifests are simply lists of the files associated with a release and are not
generated for every channel all of the time. Currently it is recommended to work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants