about summary refs log tree commit diff
path: root/tvix/derivation/src/derivation.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tvix/derivation/src/derivation.rs')
-rw-r--r--tvix/derivation/src/derivation.rs7
1 files changed, 3 insertions, 4 deletions
diff --git a/tvix/derivation/src/derivation.rs b/tvix/derivation/src/derivation.rs
index d1f46de8c5ee..1e2605f5b931 100644
--- a/tvix/derivation/src/derivation.rs
+++ b/tvix/derivation/src/derivation.rs
@@ -22,7 +22,7 @@ pub struct Derivation {
     pub input_derivations: BTreeMap<String, BTreeSet<String>>,
 
     #[serde(rename = "inputSrcs")]
-    pub input_sources: Vec<String>,
+    pub input_sources: BTreeSet<String>,
 
     pub outputs: BTreeMap<String, Output>,
 
@@ -111,15 +111,14 @@ impl Derivation {
         let mut hasher = Sha256::new();
 
         // collect the list of paths from input_sources and input_derivations
-        // into a sorted list, and join them by :
+        // into a (sorted, guaranteed by BTreeSet) list, and join them by :
         hasher.update(write::TEXT_COLON);
 
-        let concat_inputs: Vec<String> = {
+        let concat_inputs: BTreeSet<String> = {
             let mut inputs = self.input_sources.clone();
             let input_derivation_keys: Vec<String> =
                 self.input_derivations.keys().cloned().collect();
             inputs.extend(input_derivation_keys);
-            inputs.sort();
             inputs
         };