diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-02-23 01:34:16 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-02-23 01:59:59 +0900 |
| commit | bb132ac9201b958f9f6b916e701d9bfb323166b9 (patch) | |
| tree | 57bf5ee693ec2cf81aa0abea918f3d4ce1951bc7 /crates/mozart/src/commands/dependency.rs | |
| parent | 612af0aaacda404b8e177d0c1a6d3bd937e8d39a (diff) | |
| download | php-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.rs | 8 |
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), |
