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

Always use the Rust version in package names #77336

Merged
merged 1 commit into from
Oct 10, 2020

Conversation

pietroalbini
Copy link
Member

@pietroalbini pietroalbini commented Sep 29, 2020

The format of the tarballs produced by CI is roughly the following:

{component}-{release}-{target}.{ext}

While on the beta and nightly channels {release} is just the channel name, on the stable channel is either the Rust version or the version of the component we're shipping:

cargo-0.47.0-x86_64-unknown-linux-gnu.tar.xz
clippy-0.0.212-x86_64-unknown-linux-gnu.tar.xz
llvm-tools-1.46.0-x86_64-unknown-linux-gnu.tar.xz
miri-0.1.0-x86_64-unknown-linux-gnu.tar.xz
rls-1.41.0-x86_64-unknown-linux-gnu.tar.xz
rust-1.46.0-x86_64-unknown-linux-gnu.tar.xz
...

This makes it really hard to get the package URL without having access to the manifest (and there is no manifest on ci-artifacts.rlo), as there is no consistent version number to use.

This PR addresses the problem by always using the Rust version number as {release} for the stable channel, regardless of the version number of the component we're shipping. I chose that instead of "stable" to avoid breaking the URL scheme that much.

Rustup should not be affected by this change, as it fetches the URLs from the manifest. Unfortunately we don't have a way to test other clients before making a stable release, as this change only affects the stable channel.

r? @Mark-Simulacrum

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 29, 2020
@pietroalbini
Copy link
Member Author

@bors try

@bors
Copy link
Contributor

bors commented Sep 29, 2020

⌛ Trying commit 8f17b89fdc7206a1b421bd889dbc3370abaeea81 with merge ff0415b8887ea91a3be6029a39525c0faa4f8530...

@pickfire
Copy link
Contributor

pickfire commented Sep 29, 2020

Nice but wouldn't rust release indicate that all of the other packages released? So now the other packages need to get into the same train as rust?

If so, does the other packages have the same version as rust? If not, how does not know how to track with version is it, by using a tag in all the other packages?

@bors
Copy link
Contributor

bors commented Sep 29, 2020

💔 Test failed - checks-actions

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 29, 2020
@rust-log-analyzer

This comment has been minimized.

@jyn514 jyn514 added the T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. label Sep 29, 2020
@pietroalbini
Copy link
Member Author

@bors try

@bors
Copy link
Contributor

bors commented Sep 29, 2020

⌛ Trying commit 5eadcc1 with merge d5be822d7cb09690610b1a66962b413dc375eb5b...

@pietroalbini
Copy link
Member Author

@pickfire this is just changing the name of the tarballs shipped along with the trains. The proper version number will still be available inside the tarball, and nothing will change for the projects.

@pietroalbini pietroalbini added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Sep 29, 2020
@bors
Copy link
Contributor

bors commented Sep 29, 2020

💔 Test failed - checks-actions

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 29, 2020
@rust-log-analyzer

This comment has been minimized.

@pietroalbini
Copy link
Member Author

@bors try

@bors
Copy link
Contributor

bors commented Oct 9, 2020

⌛ Trying commit 5eadcc1 with merge b68ffe8...

bors added a commit to rust-lang-ci/rust that referenced this pull request Oct 9, 2020
Always use the Rust version in package names

The format of the tarballs produced by CI is roughly the following:

    {component}-{release}-{target}.{ext}

While on the beta and nightly channels `{release}` is just the channel name, on the stable channel is either the Rust version or the version of the component we're shipping:

    cargo-0.47.0-x86_64-unknown-linux-gnu.tar.xz
    clippy-0.0.212-x86_64-unknown-linux-gnu.tar.xz
    llvm-tools-1.46.0-x86_64-unknown-linux-gnu.tar.xz
    miri-0.1.0-x86_64-unknown-linux-gnu.tar.xz
    rls-1.41.0-x86_64-unknown-linux-gnu.tar.xz
    rust-1.46.0-x86_64-unknown-linux-gnu.tar.xz
    ...

This makes it really hard to get the package URL without having access to the manifest (and there is no manifest on ci-artifacts.rlo), as there is no consistent version number to use.

This PR addresses the problem by always using the Rust version number as `{release}` for the stable channel, regardless of the version number of the component we're shipping. I chose that instead of "stable" to avoid breaking the URL scheme *that* much.

Rustup should not be affected by this change, as it fetches the URLs from the manifest. Unfortunately we don't have a way to test other clients before making a stable release, as this change only affects the stable channel.

r? `@Mark-Simulacrum`
@bors
Copy link
Contributor

bors commented Oct 9, 2020

☀️ Try build successful - checks-actions, checks-azure
Build commit: b68ffe8 (b68ffe8285b13d8a316f0eca3d795d2a3d757f64)

@pietroalbini pietroalbini added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Oct 9, 2020
The format of the tarballs produced by CI is roughly the following:

    {component}-{release}-{target}.{ext}

While on the beta and nightly channels `{release}` is just the channel
name, on the stable channel is either the Rust version or the version of
the component we're shipping:

    cargo-0.47.0-x86_64-unknown-linux-gnu.tar.xz
    clippy-0.0.212-x86_64-unknown-linux-gnu.tar.xz
    llvm-tools-1.46.0-x86_64-unknown-linux-gnu.tar.xz
    miri-0.1.0-x86_64-unknown-linux-gnu.tar.xz
    rls-1.41.0-x86_64-unknown-linux-gnu.tar.xz
    rust-1.46.0-x86_64-unknown-linux-gnu.tar.xz
    ...

This makes it really hard to get the package URL without having access
to the manifest (and there is no manifest on ci-artifacts.rlo), as there
is no consistent version number to use.

This commit addresses the problem by always using the Rust version
number as `{release}` for the stable channel, regardless of the version
number of the component we're shipping. I chose that instead of "stable"
to avoid breaking the URL scheme *that* much.

Rustup should not be affected by this change, as it fetches the URLs
from the manifest. Unfortunately we don't have a way to test other
clients before making a stable release, as this change only affects the
stable channel.
@pietroalbini
Copy link
Member Author

@Mark-Simulacrum my worry is that it would prevent to have multiple stable releases a day, as one stable release in /dist/1970-01-01/ would override the other one. That could happen, for example, if we needed to fix a security vulnerability in multiple releases through point releases. I know that's not something we'd today, but in the future we might have LTSs or similar.

@Mark-Simulacrum
Copy link
Member

Makes sense. @bors r+

@bors
Copy link
Contributor

bors commented Oct 9, 2020

📌 Commit 8d2b159 has been approved by Mark-Simulacrum

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 9, 2020
@pietroalbini
Copy link
Member Author

@rustbot modify labels: beta-nominated T-infra

Nominating for backport in the beta channel, as this is needed for the improved release process.

@rustbot rustbot added the beta-nominated Nominated for backporting to the compiler in the beta channel. label Oct 9, 2020
@bors
Copy link
Contributor

bors commented Oct 10, 2020

⌛ Testing commit 8d2b159 with merge 1661f77...

@bors
Copy link
Contributor

bors commented Oct 10, 2020

☀️ Test successful - checks-actions, checks-azure
Approved by: Mark-Simulacrum
Pushing 1661f77 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 10, 2020
@bors bors merged commit 1661f77 into rust-lang:master Oct 10, 2020
@rustbot rustbot added this to the 1.49.0 milestone Oct 10, 2020
@pietroalbini pietroalbini deleted the pkgname branch October 10, 2020 09:08
@pietroalbini
Copy link
Member Author

If the backport for this is accepted, #77854 also needs to be backported.

@pietroalbini pietroalbini added the beta-accepted Accepted for backporting to the compiler in the beta channel. label Oct 14, 2020
@pietroalbini pietroalbini modified the milestones: 1.49.0, 1.48.0 Oct 20, 2020
@pietroalbini pietroalbini removed the beta-nominated Nominated for backporting to the compiler in the beta channel. label Oct 20, 2020
bors added a commit to rust-lang-ci/rust that referenced this pull request Oct 20, 2020
[beta] Rollup backports

Cherry-picked:

*  Always use the Rust version in package names rust-lang#77336
*  rustc_parse: More precise spans for `tuple.0.0` rust-lang#77774
*  Update crossbeam-channel to avoid UB rust-lang#77819
*  build-manifest: stop generating numbered channel names except for stable rust-lang#77854
*  Dist build manifest rust-lang#77762
*  bootstrap: set correct path for the build-manifest binary rust-lang#77909

r? `@ghost`
Mark-Simulacrum pushed a commit to pietroalbini/rust that referenced this pull request Nov 17, 2020
Historically the stable tarballs were named after the version number of
the specific tool, instead of the version number of Rust. For example,
both of the following tarballs were part of the same release:

    rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz
    cargo-0.49.0-x86_64-unknown-linux-gnu.tar.xz

PR rust-lang#77336 changed the dist code to instead use Rust's version number for
all the tarballs, regardless of the tool they contain:

    rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz
    cargo-1.48.0-x86_64-unknown-linux-gnu.tar.xz

Because of that there is no need anymore to have a separate `cargo`
field in src/stage0.txt, as the Cargo version will always be the same as
the rustc version. This PR removes the field, simplifying the code and
the maintenance work required while producing releases.
m-ou-se added a commit to m-ou-se/rust that referenced this pull request Nov 18, 2020
…k-Simulacrum

bootstrap: use the same version number for rustc and cargo

Historically the stable tarballs were named after the version number ofthe specific tool, instead of the version number of Rust. For example, both of the following tarballs were part of the same release:

    rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz
    cargo-0.49.0-x86_64-unknown-linux-gnu.tar.xz

PR rust-lang#77336 changed the dist code to instead use Rust's version number for all the tarballs, regardless of the tool they contain:

    rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz
    cargo-1.48.0-x86_64-unknown-linux-gnu.tar.xz

Because of that there is no need anymore to have a separate `cargo` field in `src/stage0.txt`, as the Cargo version will always be the same as the rustc version. This PR removes the field, simplifying the code and the maintenance work required while producing releases.

r? `@Mark-Simulacrum`
m-ou-se added a commit to m-ou-se/rust that referenced this pull request Nov 18, 2020
…k-Simulacrum

bootstrap: use the same version number for rustc and cargo

Historically the stable tarballs were named after the version number ofthe specific tool, instead of the version number of Rust. For example, both of the following tarballs were part of the same release:

    rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz
    cargo-0.49.0-x86_64-unknown-linux-gnu.tar.xz

PR rust-lang#77336 changed the dist code to instead use Rust's version number for all the tarballs, regardless of the tool they contain:

    rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz
    cargo-1.48.0-x86_64-unknown-linux-gnu.tar.xz

Because of that there is no need anymore to have a separate `cargo` field in `src/stage0.txt`, as the Cargo version will always be the same as the rustc version. This PR removes the field, simplifying the code and the maintenance work required while producing releases.

r? ``@Mark-Simulacrum``
Mark-Simulacrum pushed a commit to Mark-Simulacrum/rust that referenced this pull request Dec 8, 2020
Historically the stable tarballs were named after the version number of
the specific tool, instead of the version number of Rust. For example,
both of the following tarballs were part of the same release:

    rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz
    cargo-0.49.0-x86_64-unknown-linux-gnu.tar.xz

PR rust-lang#77336 changed the dist code to instead use Rust's version number for
all the tarballs, regardless of the tool they contain:

    rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz
    cargo-1.48.0-x86_64-unknown-linux-gnu.tar.xz

Because of that there is no need anymore to have a separate `cargo`
field in src/stage0.txt, as the Cargo version will always be the same as
the rustc version. This PR removes the field, simplifying the code and
the maintenance work required while producing releases.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beta-accepted Accepted for backporting to the compiler in the beta channel. merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants