aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/dependency.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-23 01:34:16 +0900
committernsfisis <nsfisis@gmail.com>2026-02-23 01:59:59 +0900
commitbb132ac9201b958f9f6b916e701d9bfb323166b9 (patch)
tree57bf5ee693ec2cf81aa0abea918f3d4ce1951bc7 /crates/mozart/src/commands/dependency.rs
parent612af0aaacda404b8e177d0c1a6d3bd937e8d39a (diff)
downloadphp-mozart-bb132ac9201b958f9f6b916e701d9bfb323166b9.tar.gz
php-mozart-bb132ac9201b958f9f6b916e701d9bfb323166b9.tar.zst
php-mozart-bb132ac9201b958f9f6b916e701d9bfb323166b9.zip
fix(prohibits): align behavior with Composer's why-not command
- Use installed packages by default instead of always preferring lock file - Error on unknown needle package instead of misleading "can be installed" - Return exit code 1 when prohibitors are found - Deduplicate output rows in dependency table - Print resolution hint suggesting require/update --dry-run Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart/src/commands/dependency.rs')
-rw-r--r--crates/mozart/src/commands/dependency.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/crates/mozart/src/commands/dependency.rs b/crates/mozart/src/commands/dependency.rs
index f2856d9..0184f53 100644
--- a/crates/mozart/src/commands/dependency.rs
+++ b/crates/mozart/src/commands/dependency.rs
@@ -542,7 +542,15 @@ pub fn print_table(results: &[DependencyResult]) {
.max()
.unwrap_or(0);
+ let mut seen: HashSet<String> = HashSet::new();
for r in results {
+ let key = format!(
+ "{}|{}|{}|{}",
+ r.package_name, r.package_version, r.link_description, r.link_constraint
+ );
+ if !seen.insert(key) {
+ continue;
+ }
println!(
"{:<name_w$} {:<ver_w$} {:<desc_w$} {}",
mozart_core::console::info(&r.package_name),