Skip to content

Commit 3b8e1b1

Browse files
authored
Merge pull request #1298 from spkenv/recipe-build-spec
Split BuildSpec into BuildSpec and RecipeBuildSpec
2 parents 9ceac44 + 1344ac5 commit 3b8e1b1

20 files changed

+925
-582
lines changed

crates/spk-build/src/build/binary.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -499,10 +499,10 @@ where
499499
// these must remain ordered so that the overriding of
500500
// rules is applied correctly later when we merge the results
501501
let mut validations = futures::stream::FuturesOrdered::new();
502-
if !report.setup.package.validation().disabled.is_empty() {
502+
if !self.recipe.validation().disabled.is_empty() {
503503
return Err(Error::UseOfObsoleteValidators);
504504
}
505-
let validators = report.setup.package.validation().to_expanded_rules();
505+
let validators = self.recipe.validation().to_expanded_rules();
506506
tracing::trace!("running validation");
507507
for validator in validators {
508508
tracing::trace!(" > {validator:?}");
@@ -518,7 +518,7 @@ where
518518
// these must remain ordered so that the overriding of
519519
// rules is applied correctly later when we merge the results
520520
let mut validations = futures::stream::FuturesOrdered::new();
521-
let validators = report.setup.package.validation().to_expanded_rules();
521+
let validators = self.recipe.validation().to_expanded_rules();
522522
for validator in validators {
523523
validations.push_back(async move { validator.validate_build(report).await });
524524
}
@@ -606,7 +606,7 @@ where
606606
let mut writer = std::fs::File::create(&build_script)
607607
.map_err(|err| Error::FileOpenError(build_script.to_owned(), err))?;
608608
writer
609-
.write_all(package.build_script().as_bytes())
609+
.write_all(self.recipe.build_script().as_bytes())
610610
.map_err(|err| Error::String(format!("Failed to save build script: {err}")))?;
611611
writer
612612
.sync_data()

crates/spk-build/src/validation/alter_existing_files_test.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use spfs::tracking::Manifest;
66
use spk_schema::validation::{FileAlteration, ValidationMatcher};
7-
use spk_schema::{Package, ValidationRule, v0};
7+
use spk_schema::{OptionValues, Package, ValidationRule, v0};
88
use spk_solve::Solution;
99

1010
use crate::report::{BuildOutputReport, BuildReport, BuildSetupReport};
@@ -30,12 +30,7 @@ async fn test_validate_build_changeset_modified() {
3030
},
3131
setup: BuildSetupReport {
3232
environment: Solution::default(),
33-
variant: package
34-
.build()
35-
.variants
36-
.first()
37-
.cloned()
38-
.unwrap_or_default(),
33+
variant: package.option_values(),
3934
environment_filesystem: Manifest::new(
4035
spfs::tracking::Entry::empty_dir_with_open_perms_with_data(package.ident().clone()),
4136
),

crates/spk-build/src/validation/collect_all_files_test.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use spfs::tracking::Manifest;
66
use spk_schema::validation::ValidationMatcher;
7-
use spk_schema::{Package, ValidationRule, v0};
7+
use spk_schema::{OptionValues, Package, ValidationRule, v0};
88
use spk_solve::Solution;
99

1010
use crate::report::{BuildOutputReport, BuildReport, BuildSetupReport, BuiltComponentReport};
@@ -48,12 +48,7 @@ async fn test_validate_build_changeset_collected() {
4848
},
4949
setup: BuildSetupReport {
5050
environment: Solution::default(),
51-
variant: package
52-
.build()
53-
.variants
54-
.first()
55-
.cloned()
56-
.unwrap_or_default(),
51+
variant: package.option_values(),
5752
environment_filesystem: Manifest::new(
5853
spfs::tracking::Entry::empty_dir_with_open_perms_with_data(package.ident().clone()),
5954
),

crates/spk-build/src/validation/collect_existing_files_test.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use spfs::tracking::Manifest;
66
use spk_schema::validation::ValidationMatcher;
7-
use spk_schema::{Package, ValidationRule, v0};
7+
use spk_schema::{OptionValues, Package, ValidationRule, v0};
88
use spk_solve::{Named, Solution};
99

1010
use crate::report::{BuildOutputReport, BuildReport, BuildSetupReport};
@@ -41,12 +41,7 @@ async fn test_validate_build_changeset_collect_existing() {
4141
},
4242
setup: BuildSetupReport {
4343
environment: Solution::default(),
44-
variant: package
45-
.build()
46-
.variants
47-
.first()
48-
.cloned()
49-
.unwrap_or_default(),
44+
variant: package.option_values(),
5045
environment_filesystem,
5146
package,
5247
},

crates/spk-build/src/validation/empty_package_test.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use spfs::tracking::Manifest;
66
use spk_schema::validation::ValidationMatcher;
7-
use spk_schema::{Package, ValidationRule, v0};
7+
use spk_schema::{OptionValues, Package, ValidationRule, v0};
88
use spk_solve::Solution;
99

1010
use crate::report::{BuildReport, BuildSetupReport};
@@ -16,12 +16,7 @@ async fn test_validate_build_changeset_nothing() {
1616
let report = BuildReport {
1717
setup: BuildSetupReport {
1818
environment: Solution::default(),
19-
variant: package
20-
.build()
21-
.variants
22-
.first()
23-
.cloned()
24-
.unwrap_or_default(),
19+
variant: package.option_values(),
2520
environment_filesystem: Manifest::new(
2621
spfs::tracking::Entry::empty_dir_with_open_perms_with_data(package.ident().clone()),
2722
),

crates/spk-cli/cmd-du/src/cmd_du_test.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ async fn test_du_works_on_whole_repo(#[case] solver: SolverImpl) {
100100

101101
let mut expected_output = vec![
102102
"2local/my-pkg/1.0.0/3I42H3S6/:build/spk/pkg/my-pkg/1.0.0/3I42H3S6/options.json",
103-
"183local/my-pkg/1.0.0/3I42H3S6/:build/spk/pkg/my-pkg/1.0.0/3I42H3S6/spec.yaml",
103+
"121local/my-pkg/1.0.0/3I42H3S6/:build/spk/pkg/my-pkg/1.0.0/3I42H3S6/spec.yaml",
104104
"0local/my-pkg/1.0.0/3I42H3S6/:build/spk/pkg/my-pkg/1.0.0/3I42H3S6/build.cmpt",
105105
"17local/my-pkg/1.0.0/3I42H3S6/:build/spk/pkg/my-pkg/1.0.0/3I42H3S6/build.sh",
106106
"0local/my-pkg/1.0.0/3I42H3S6/:run/spk/pkg/my-pkg/1.0.0/3I42H3S6/options.json",
@@ -374,7 +374,7 @@ async fn test_du_summarize_output_enabled(#[case] solver: SolverImpl) {
374374
let mut opt = Opt::try_parse_from(["du", "local/my-pkg", "-s"]).unwrap();
375375
opt.du.run().await.unwrap();
376376

377-
let expected_output = format!("202local/my-pkg/{}", "".red());
377+
let expected_output = format!("140local/my-pkg/{}", "".red());
378378
let mut generated_output = opt.du.output.vec.lock().unwrap()[0].clone();
379379
generated_output.retain(|c| !c.is_whitespace());
380380

@@ -424,7 +424,7 @@ async fn test_du_summarize_output_is_not_enabled(#[case] solver: SolverImpl) {
424424
"2local/my-pkg/1.0.0/3I42H3S6/:build/spk/pkg/my-pkg/1.0.0/3I42H3S6/options.json",
425425
"0local/my-pkg/1.0.0/3I42H3S6/:build/spk/pkg/my-pkg/1.0.0/3I42H3S6/build.cmpt",
426426
"17local/my-pkg/1.0.0/3I42H3S6/:build/spk/pkg/my-pkg/1.0.0/3I42H3S6/build.sh",
427-
"183local/my-pkg/1.0.0/3I42H3S6/:build/spk/pkg/my-pkg/1.0.0/3I42H3S6/spec.yaml",
427+
"121local/my-pkg/1.0.0/3I42H3S6/:build/spk/pkg/my-pkg/1.0.0/3I42H3S6/spec.yaml",
428428
"0local/my-pkg/1.0.0/3I42H3S6/:run/spk/pkg/my-pkg/1.0.0/3I42H3S6/spec.yaml",
429429
"0local/my-pkg/1.0.0/3I42H3S6/:run/spk/pkg/my-pkg/1.0.0/3I42H3S6/options.json",
430430
"0local/my-pkg/1.0.0/3I42H3S6/:run/spk/pkg/my-pkg/1.0.0/3I42H3S6/run.cmpt",
@@ -493,7 +493,7 @@ async fn test_deprecate_flag(#[case] solver: SolverImpl) {
493493

494494
let mut opt_with_deprecate_flag = Opt::try_parse_from(["du", "local/my-pkg", "-ds"]).unwrap();
495495
opt_with_deprecate_flag.du.run().await.unwrap();
496-
let expected_output = format!("219local/my-pkg/{}", "DEPRECATED".red());
496+
let expected_output = format!("157local/my-pkg/{}", "DEPRECATED".red());
497497
let mut generated_output = opt_with_deprecate_flag.du.output.vec.lock().unwrap()[0].clone();
498498
generated_output.retain(|c| !c.is_whitespace());
499499
assert_eq!(expected_output, generated_output);

0 commit comments

Comments
 (0)