opt-dist: propagate channel info to bootstrap#134528
Merged
bors merged 2 commits intorust-lang:masterfrom Dec 23, 2024
Merged
Conversation
- Fixed test name, it should've been `rustc_bootstrap.rs`, oops. - Slightly reworded test comment to make it more clear.
Collaborator
|
Some changes occurred in src/tools/opt-dist cc @Kobzol |
jieyouxu
commented
Dec 19, 2024
Comment on lines
+126
to
+128
| /// Roughly convert a version string (`nightly`, `beta`, or `1.XY.Z`) to channel string (`nightly`, | ||
| /// `beta` or `stable`). | ||
| fn version_to_channel(version_str: &str) -> &'static str { |
Member
Author
There was a problem hiding this comment.
The dist version extraction above this is slightly hacky, and so is this, but oh well.
Kobzol
approved these changes
Dec 23, 2024
| let host_triple = env.host_tuple(); | ||
| let version = find_dist_version(&dist_dir)?; | ||
|
|
||
| let channel = version_to_channel(&version); |
Member
There was a problem hiding this comment.
I guess that we could also read the src/ci/channel file? But this seems good enough.
Member
Author
There was a problem hiding this comment.
AFAIK we could (that's the initial approach considered), but the logic above doesn't read that file either, and instead derives it from the archive name of the dist artifact, which is why I wrote this hack instead...
FTR, this is what I meant by #134528 (comment), should've clarified.
Member
Author
|
@Kobzol you fell into the classic trap of r+ in the top-level review comment (bors doesn't pick that up) 😆 |
Member
Author
Collaborator
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Dec 23, 2024
…iaskrgr Rollup of 5 pull requests Successful merges: - rust-lang#134363 (Use `#[derive(Default)]` instead of manual `impl` when possible) - rust-lang#134517 (Add tests for coverage attribute on trait functions) - rust-lang#134528 (opt-dist: propagate channel info to bootstrap) - rust-lang#134669 (Document the `--dev` flag for `src/ci/docker/run.sh`) - rust-lang#134680 (Clean up a few rmake tests ) r? `@ghost` `@rustbot` modify labels: rollup
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Dec 23, 2024
…iaskrgr Rollup of 5 pull requests Successful merges: - rust-lang#134363 (Use `#[derive(Default)]` instead of manual `impl` when possible) - rust-lang#134517 (Add tests for coverage attribute on trait functions) - rust-lang#134528 (opt-dist: propagate channel info to bootstrap) - rust-lang#134669 (Document the `--dev` flag for `src/ci/docker/run.sh`) - rust-lang#134680 (Clean up a few rmake tests ) r? `@ghost` `@rustbot` modify labels: rollup
rust-timer
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Dec 23, 2024
Rollup merge of rust-lang#134528 - jieyouxu:fix-rustc-bootstrap-test, r=Kobzol opt-dist: propagate channel info to bootstrap Fixes rust-lang#133503. Previously, `tests/ui/bootstrap/rustc_bootstap.rs` [sic] failed during [beta bump](rust-lang#133447 (comment)) in opt-dist tests. This is because: - `opt-dist` tried to run `./x test` against beta-channel dist `rustc` through `bootstrap`. - The dist build produced during the beta bump produces a `rustc` which correctly thinks that it is a beta compiler based on `src/ci/channel` info. - `opt-dist` tries to run `./x test` on the beta `rustc` from the dist build, but without specifying channel through a synthetic `config.toml`, so `bootstrap` tells `compiletest` that we're on the `nightly` channel (by default). - Now there's a channel mismatch: `compiletest` believes the `rustc` under test is a *nightly* rustc, but the `rustc` under test actually considers itself a *beta* rustc. This means that `//@ only-nightly` will be satisfied yet the test will fail as the *beta* rustc is not a *nightly* rustc. This PR: - Fixes the test failure during beta bump (i.e. rust-lang#133503) by having `opt-dist` faithfully report the channel of the dist `rustc` being tested (i.e. "beta" in a beta bump PR). This will properly make the test be ignored during beta bump as the `rustc` under test is not a *nightly* rustc. - Fixes the test name `rustc_bootstap.rs` -> `rustc_bootstrap.rs`. No more stapping. - Slightly adjusts the doc comment in the test to make it more clear. I ran a try-job against the beta branch (explicitly running the opt-dist tests by modifying the job definition) with these changes in rust-lang#134131, and it appears that the try-job was [successful](rust-lang#134131 (comment)). The two commits in this PR are cherry-picked from rust-lang#134131, with the test commit slightly modified (to also adjust the test comments). r? `@Kobzol` (or compiler or bootstrap or infra I guess?)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #133503.
Previously,
tests/ui/bootstrap/rustc_bootstap.rs[sic] failed during beta bump in opt-dist tests. This is because:opt-disttried to run./x testagainst beta-channel distrustcthroughbootstrap.rustcwhich correctly thinks that it is a beta compiler based onsrc/ci/channelinfo.opt-disttries to run./x teston the betarustcfrom the dist build, but without specifying channel through a syntheticconfig.toml, sobootstraptellscompiletestthat we're on thenightlychannel (by default).compiletestbelieves therustcunder test is a nightly rustc, but therustcunder test actually considers itself a beta rustc. This means that//@ only-nightlywill be satisfied yet the test will fail as the beta rustc is not a nightly rustc.This PR:
tests/ui/bootstrap/rustc_bootstap.rsfails in post-PGO/opt-dist tests #133503) by havingopt-distfaithfully report the channel of the distrustcbeing tested (i.e. "beta" in a beta bump PR). This will properly make the test be ignored during beta bump as therustcunder test is not a nightly rustc.rustc_bootstap.rs->rustc_bootstrap.rs. No more stapping.I ran a try-job against the beta branch (explicitly running the opt-dist tests by modifying the job definition) with these changes in #134131, and it appears that the try-job was successful. The two commits in this PR are cherry-picked from #134131, with the test commit slightly modified (to also adjust the test comments).
r? @Kobzol (or compiler or bootstrap or infra I guess?)