diff options
| author | bors <bors@rust-lang.org> | 2022-07-13 05:24:18 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-07-13 05:24:18 +0000 |
| commit | 95e8b86c8c0aba65b2b0065265ce6d82d5a2c285 (patch) | |
| tree | 9ac870bba91f79f5e4f3b34e2d7f3c59bb452080 | |
| parent | 7b5715289f813460ac95189fb7d3479e8edd23eb (diff) | |
| parent | 6bc97d0adcc7e9bd828de1ccf9c9ffc9b30165ee (diff) | |
| download | rust-95e8b86c8c0aba65b2b0065265ce6d82d5a2c285.tar.gz rust-95e8b86c8c0aba65b2b0065265ce6d82d5a2c285.zip | |
Auto merge of #99149 - ferrocene:pa-nightly-branch, r=Mark-Simulacrum
Configure nightly branch name in `stage0.json` The beta version number detection code relies on git to know how many merge commits were made since we branched off, and in doing so hardcodes `master` as the default branch name. This works for rust-lang/rust, but is problematic for forks that use a different default branch name (in Ferrocene we use `main` instead). This PR changes the code to instead load the default branch name from `src/stage0.json`. `bump-stage0` has also been updated to remove the need to update it every time a new field is added to `stage0.json`.
| -rw-r--r-- | src/bootstrap/config.rs | 1 | ||||
| -rw-r--r-- | src/bootstrap/lib.rs | 13 | ||||
| -rw-r--r-- | src/stage0.json | 3 | ||||
| -rw-r--r-- | src/tools/bump-stage0/Cargo.toml | 2 | ||||
| -rw-r--r-- | src/tools/bump-stage0/src/main.rs | 9 |
5 files changed, 15 insertions, 13 deletions
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 39d86ccbdbf..62dd9a6b365 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -226,6 +226,7 @@ pub struct Stage0Config { pub artifacts_server: String, pub artifacts_with_llvm_assertions_server: String, pub git_merge_commit_email: String, + pub nightly_branch: String, } #[derive(Default, Deserialize)] #[cfg_attr(test, derive(Clone))] diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index c1190c9192d..cd421c249d8 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -1280,14 +1280,11 @@ impl Build { // Figure out how many merge commits happened since we branched off master. // That's our beta number! // (Note that we use a `..` range, not the `...` symmetric difference.) - let count = output( - self.config - .git() - .arg("rev-list") - .arg("--count") - .arg("--merges") - .arg("refs/remotes/origin/master..HEAD"), - ); + let count = + output(self.config.git().arg("rev-list").arg("--count").arg("--merges").arg(format!( + "refs/remotes/origin/{}..HEAD", + self.config.stage0_metadata.config.nightly_branch + ))); let n = count.trim().parse().unwrap(); self.prerelease_version.set(Some(n)); n diff --git a/src/stage0.json b/src/stage0.json index 64b8aca3960..ab8a79e2af5 100644 --- a/src/stage0.json +++ b/src/stage0.json @@ -3,7 +3,8 @@ "dist_server": "https://static.rust-lang.org", "artifacts_server": "https://ci-artifacts.rust-lang.org/rustc-builds", "artifacts_with_llvm_assertions_server": "https://ci-artifacts.rust-lang.org/rustc-builds-alt", - "git_merge_commit_email": "bors@rust-lang.org" + "git_merge_commit_email": "bors@rust-lang.org", + "nightly_branch": "master" }, "__comments": [ "The configuration above this comment is editable, and can be changed", diff --git a/src/tools/bump-stage0/Cargo.toml b/src/tools/bump-stage0/Cargo.toml index cf8840ff6ee..352a8555614 100644 --- a/src/tools/bump-stage0/Cargo.toml +++ b/src/tools/bump-stage0/Cargo.toml @@ -10,5 +10,5 @@ anyhow = "1.0.34" curl = "0.4.38" indexmap = { version = "1.7.0", features = ["serde"] } serde = { version = "1.0.125", features = ["derive"] } -serde_json = "1.0.59" +serde_json = { version = "1.0.59", features = ["preserve_order"] } toml = "0.5.7" diff --git a/src/tools/bump-stage0/src/main.rs b/src/tools/bump-stage0/src/main.rs index 1c839fdc00a..aa346daf7e5 100644 --- a/src/tools/bump-stage0/src/main.rs +++ b/src/tools/bump-stage0/src/main.rs @@ -198,9 +198,12 @@ struct Stage0 { #[derive(Debug, serde::Serialize, serde::Deserialize)] struct Config { dist_server: String, - artifacts_server: String, - artifacts_with_llvm_assertions_server: String, - git_merge_commit_email: String, + // There are other fields in the configuration, which will be read by src/bootstrap or other + // tools consuming stage0.json. To avoid the need to update bump-stage0 every time a new field + // is added, we collect all the fields in an untyped Value and serialize them back with the + // same order and structure they were deserialized in. + #[serde(flatten)] + other: serde_json::Value, } #[derive(Debug, serde::Serialize, serde::Deserialize)] |
