Skip to content

Commit 5a1750a

Browse files
committed
Don't build from source from deprecated recipes
All the solver tests now pass! Signed-off-by: J Robert Ray <[email protected]>
1 parent 377db3c commit 5a1750a

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

crates/spk-solve/src/cdcl_solver/spk_provider.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ use spk_schema::name::{OptNameBuf, PkgNameBuf};
3939
use spk_schema::prelude::{HasVersion, Named};
4040
use spk_schema::version::Version;
4141
use spk_schema::version_range::{parse_version_range, DoubleEqualsVersion, Ranged, VersionFilter};
42-
use spk_schema::{BuildIdent, Opt, Package, Recipe, Request, VersionIdent};
42+
use spk_schema::{BuildIdent, Deprecate, Opt, Package, Recipe, Request, VersionIdent};
4343
use spk_storage::RepositoryHandle;
4444
use tracing::{debug_span, Instrument};
4545

@@ -124,6 +124,12 @@ impl SpkProvider {
124124
.find(|repo| repo.name() == ident.repository_name())
125125
{
126126
Some(repo) => match repo.read_recipe(&ident.clone().to_version_ident()).await {
127+
Ok(recipe) if recipe.is_deprecated() => {
128+
return CanBuildFromSource::No(
129+
self.pool
130+
.intern_string(format!("recipe for {ident} is deprecated")),
131+
);
132+
}
127133
Ok(recipe) => recipe,
128134
Err(err) => {
129135
return CanBuildFromSource::No(

crates/spk-solve/src/solver_test.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1179,8 +1179,6 @@ async fn test_solver_deprecated_version(#[case] mut solver: SolverImpl) {
11791179

11801180
#[rstest]
11811181
#[case::og(og_solver())]
1182-
// Remove #[should_panic] once cdcl handles this case
1183-
#[should_panic]
11841182
#[case::cdcl(cdcl_solver())]
11851183
#[tokio::test]
11861184
async fn test_solver_build_from_source_deprecated(#[case] mut solver: SolverImpl) {
@@ -1215,7 +1213,10 @@ async fn test_solver_build_from_source_deprecated(#[case] mut solver: SolverImpl
12151213

12161214
let res = run_and_print_resolve_for_tests(&mut solver).await;
12171215
match res {
1216+
// og solver's error
12181217
Err(Error::GraphError(spk_solve_graph::Error::FailedToResolve(_))) => {}
1218+
// cdcl solver's error
1219+
Err(Error::FailedToResolve(_)) => {}
12191220
Err(err) => {
12201221
panic!("expected solver spk_solver_graph::Error::FailedToResolve, got: '{err:?}'")
12211222
}

0 commit comments

Comments
 (0)