From 1ebda9e13e0a11d3040267134e0a23600f9faf65 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Fri, 6 Jan 2023 18:56:38 +0300 Subject: fix(tvix/derivation): fix build after StorePath rename This project was not previously covered by CI (fixed in this commit), so we didn't catch breakage due to a renamed module. This was noticed while rebasing a CL that has a dependency on this crate in its Nix build. Change-Id: Ic48570b9313e5f73e14daab50cf7ea70918c94d1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7778 Reviewed-by: flokli Autosubmit: tazjin Tested-by: BuildkiteCI --- tvix/derivation/Cargo.toml | 2 +- tvix/derivation/default.nix | 5 +++++ tvix/derivation/src/derivation.rs | 15 ++++++--------- tvix/derivation/src/output.rs | 4 ++-- tvix/derivation/src/tests/mod.rs | 7 +++---- tvix/derivation/src/validate.rs | 2 +- 6 files changed, 18 insertions(+), 17 deletions(-) create mode 100644 tvix/derivation/default.nix (limited to 'tvix/derivation') diff --git a/tvix/derivation/Cargo.toml b/tvix/derivation/Cargo.toml index b63b3ab9fd57..2d5ea74bdc79 100644 --- a/tvix/derivation/Cargo.toml +++ b/tvix/derivation/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "derivation" +name = "tvix-derivation" version = "0.1.0" edition = "2021" diff --git a/tvix/derivation/default.nix b/tvix/derivation/default.nix new file mode 100644 index 000000000000..40e2a647609f --- /dev/null +++ b/tvix/derivation/default.nix @@ -0,0 +1,5 @@ +{ depot, ... }: + +depot.tvix.crates.workspaceMembers.tvix-derivation.build.override { + runTests = true; +} diff --git a/tvix/derivation/src/derivation.rs b/tvix/derivation/src/derivation.rs index bf26e1baac69..550b386a7fce 100644 --- a/tvix/derivation/src/derivation.rs +++ b/tvix/derivation/src/derivation.rs @@ -5,7 +5,7 @@ use serde::{Deserialize, Serialize}; use sha2::{Digest, Sha256}; use std::{collections::BTreeMap, fmt, fmt::Write}; use tvix_store::nixbase32::NIXBASE32; -use tvix_store::nixpath::{ParseStorePathError, StorePath, STORE_DIR}; +use tvix_store::store_path::{ParseStorePathError, StorePath, STORE_DIR}; #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub struct Derivation { @@ -242,7 +242,7 @@ impl Derivation { hasher.update(":sha256:"); hasher.update(drv_replacement_str); hasher.update(":"); - hasher.update(tvix_store::nixpath::STORE_DIR); + hasher.update(STORE_DIR); hasher.update(":"); // calculate the output_name_path, which is the part of the NixPath after the digest. @@ -258,7 +258,7 @@ impl Derivation { let abs_store_path = format!( "{}/{}", - tvix_store::nixpath::STORE_DIR, + STORE_DIR, build_store_path(false, &digest, &output_path_name)? ); @@ -289,17 +289,14 @@ impl Derivation { hasher.update(drv_replacement_str); } hasher.update(":"); - hasher.update(tvix_store::nixpath::STORE_DIR); + hasher.update(STORE_DIR); hasher.update(":"); hasher.update(name); hasher.finalize() }; - let abs_store_path = format!( - "{}/{}", - tvix_store::nixpath::STORE_DIR, - build_store_path(false, &digest, name)? - ); + let abs_store_path = + format!("{}/{}", STORE_DIR, build_store_path(false, &digest, name)?); self.outputs.insert( "out".to_string(), diff --git a/tvix/derivation/src/output.rs b/tvix/derivation/src/output.rs index 02ba7e42e885..1236cd989f7f 100644 --- a/tvix/derivation/src/output.rs +++ b/tvix/derivation/src/output.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; -use tvix_store::nixpath::StorePath; +use tvix_store::store_path::StorePath; -#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] +#[derive(Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)] pub struct Output { pub path: String, diff --git a/tvix/derivation/src/tests/mod.rs b/tvix/derivation/src/tests/mod.rs index 8d1771f711f6..fb88e1beb2bf 100644 --- a/tvix/derivation/src/tests/mod.rs +++ b/tvix/derivation/src/tests/mod.rs @@ -6,7 +6,7 @@ use std::io::Read; use std::path::Path; use test_case::test_case; use test_generator::test_resources; -use tvix_store::nixpath::StorePath; +use tvix_store::store_path::StorePath; const RESOURCES_PATHS: &str = "src/tests/derivation_tests"; @@ -252,8 +252,7 @@ fn output_path_construction() { let bar_drv_path = bar_drv .calculate_derivation_path("bar") - .expect("must succeed") - .to_absolute_path(); + .expect("must succeed"); // assemble foo env let mut foo_env: BTreeMap = BTreeMap::new(); @@ -275,7 +274,7 @@ fn output_path_construction() { // assemble foo input_derivations let mut foo_input_derivations: BTreeMap> = BTreeMap::new(); - foo_input_derivations.insert(bar_drv_path.to_absolute_string(), vec!["out".to_string()]); + foo_input_derivations.insert(bar_drv_path.to_absolute_path(), vec!["out".to_string()]); // assemble foo itself let mut foo_drv = Derivation { diff --git a/tvix/derivation/src/validate.rs b/tvix/derivation/src/validate.rs index 4e0503833913..eda0457ae564 100644 --- a/tvix/derivation/src/validate.rs +++ b/tvix/derivation/src/validate.rs @@ -1,6 +1,6 @@ use crate::{derivation::Derivation, write::DOT_FILE_EXT}; use anyhow::bail; -use tvix_store::nixpath::StorePath; +use tvix_store::store_path::StorePath; impl Derivation { /// validate ensures a Derivation struct is properly populated, -- cgit 1.4.1