aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/remove.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-03 19:28:56 +0900
committernsfisis <nsfisis@gmail.com>2026-05-03 19:28:56 +0900
commitd554b62e1b578a88b796f34e6eb82b5c452cd785 (patch)
treec9bf835955c1760f12a360727c6819dc8f98a378 /crates/mozart/src/commands/remove.rs
parent240b0dd14a607a9dfdb84bb339c87bb0effd6963 (diff)
downloadphp-mozart-d554b62e1b578a88b796f34e6eb82b5c452cd785.tar.gz
php-mozart-d554b62e1b578a88b796f34e6eb82b5c452cd785.tar.zst
php-mozart-d554b62e1b578a88b796f34e6eb82b5c452cd785.zip
feat(resolver): honour audit.block-abandoned config
Read `config.audit.block-abandoned` from composer.json (defaults to false) and propagate it to the resolver. When set, the pool builder skips packages whose `abandoned` field is truthy (`true` or a non-empty replacement string), matching `SecurityAdvisoryPoolFilter`'s behavior in `Composer\DependencyResolver`. With no candidates left, a root require that only matches abandoned versions fails resolution with exit 2.
Diffstat (limited to 'crates/mozart/src/commands/remove.rs')
-rw-r--r--crates/mozart/src/commands/remove.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/crates/mozart/src/commands/remove.rs b/crates/mozart/src/commands/remove.rs
index 9c5f7fa..dc20a21 100644
--- a/crates/mozart/src/commands/remove.rs
+++ b/crates/mozart/src/commands/remove.rs
@@ -276,6 +276,7 @@ pub async fn execute(
.collect(),
locked_package_names: indexmap::IndexSet::new(),
locked_packages: Vec::new(),
+ block_abandoned: false,
};
// Print header messages
@@ -554,6 +555,7 @@ async fn remove_unused(
.collect(),
locked_package_names: indexmap::IndexSet::new(),
locked_packages: Vec::new(),
+ block_abandoned: false,
};
console.info("Resolving dependencies to detect unused packages...");
@@ -908,6 +910,7 @@ mod tests {
root_conflict: IndexMap::new(),
locked_package_names: IndexSet::new(),
locked_packages: Vec::new(),
+ block_abandoned: false,
};
let resolved = resolve(&request)
.await
@@ -965,6 +968,7 @@ mod tests {
root_conflict: IndexMap::new(),
locked_package_names: IndexSet::new(),
locked_packages: Vec::new(),
+ block_abandoned: false,
};
let resolved2 = resolve(&request2)
.await