Skip to content

Commit b0a4ecb

Browse files
committed
bump-stage0: use IndexMap for determinism
When it used `HashMap`, `bump-stage0` would change `src/stage0` every time it ran, whereas `IndexMap` will keep insertion order -- matching the manifest file.
1 parent 7ac6c2f commit b0a4ecb

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

src/tools/bump-stage0/src/main.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use anyhow::{Context, Error};
44
use build_helper::stage0_parser::{parse_stage0_file, Stage0Config, VersionMetadata};
55
use curl::easy::Easy;
66
use indexmap::IndexMap;
7-
use std::collections::HashMap;
87

98
const PATH: &str = "src/stage0";
109
const COMPILER_COMPONENTS: &[&str] = &["rustc", "rust-std", "cargo", "clippy-preview"];
@@ -216,13 +215,13 @@ enum Channel {
216215
#[derive(Debug, serde::Serialize, serde::Deserialize)]
217216
struct Manifest {
218217
date: String,
219-
pkg: HashMap<String, ManifestPackage>,
218+
pkg: IndexMap<String, ManifestPackage>,
220219
}
221220

222221
#[derive(Debug, serde::Serialize, serde::Deserialize)]
223222
struct ManifestPackage {
224223
version: String,
225-
target: HashMap<String, ManifestTargetPackage>,
224+
target: IndexMap<String, ManifestTargetPackage>,
226225
}
227226

228227
#[derive(Debug, serde::Serialize, serde::Deserialize)]

0 commit comments

Comments
 (0)