Skip to content

Commit

Permalink
set rust.channel properly in source tarballs
Browse files Browse the repository at this point in the history
This change sets the appropriate channel by default when using nightly,
beta or stable source tarballs.

Signed-off-by: onur-ozkan <[email protected]>
  • Loading branch information
onur-ozkan committed May 16, 2024
1 parent ade234d commit f55ef48
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions src/bootstrap/src/core/config/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1307,6 +1307,9 @@ impl Config {
toml_path = config.src.join(toml_path);
}

let file_content = t!(fs::read_to_string(config.src.join("src/ci/channel")));
let ci_channel = file_content.trim_end();

// Give a hard error if `--config` or `RUST_BOOTSTRAP_CONFIG` are set to a missing path,
// but not if `config.toml` hasn't been created.
let mut toml = if !using_default_path || toml_path.exists() {
Expand Down Expand Up @@ -1533,6 +1536,7 @@ impl Config {
let mut optimize = None;
let mut omit_git_hash = None;

let mut is_user_configured_rust_channel = false;
if let Some(rust) = toml.rust {
let Rust {
optimize: optimize_toml,
Expand Down Expand Up @@ -1590,15 +1594,14 @@ impl Config {
lld_mode,
} = rust;

is_user_configured_rust_channel = channel.is_some();
set(&mut config.channel, channel);

config.download_rustc_commit = config.download_ci_rustc_commit(download_rustc);
// This list is incomplete, please help by expanding it!
if config.download_rustc_commit.is_some() {
// We need the channel used by the downloaded compiler to match the one we set for rustdoc;
// otherwise rustdoc-ui tests break.
let ci_channel = t!(fs::read_to_string(config.src.join("src/ci/channel")));
let ci_channel = ci_channel.trim_end();
if config.channel != ci_channel
&& !(config.channel == "dev" && ci_channel == "nightly")
{
Expand Down Expand Up @@ -1725,6 +1728,10 @@ impl Config {
config.omit_git_hash = omit_git_hash.unwrap_or(default);
config.rust_info = GitInfo::new(config.omit_git_hash, &config.src);

if config.rust_info.is_from_tarball() && !is_user_configured_rust_channel {
config.channel = ci_channel.clone_into();
}

if let Some(llvm) = toml.llvm {
let Llvm {
optimize: optimize_toml,
Expand Down

0 comments on commit f55ef48

Please sign in to comment.