From b6df2a70f0ef9013bbbbfca342c29d165ea467fa Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Thu, 30 Jun 2022 09:54:51 +0200 Subject: [PATCH] remove the need to update bump-stage0 with new stage0 config fields --- src/tools/bump-stage0/Cargo.toml | 2 +- src/tools/bump-stage0/src/main.rs | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/tools/bump-stage0/Cargo.toml b/src/tools/bump-stage0/Cargo.toml index cf8840ff6ee89..352a855561417 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 1c839fdc00a08..aa346daf7e5f3 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)]