diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-03 16:34:10 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-03 16:34:10 +0900 |
| commit | 9eecfe303c944c80556b0b25fcd3ce6bbce3aeb8 (patch) | |
| tree | dc195bda8422447fe9cd762120a850ba726be529 /crates/mozart-console-macros/src | |
| parent | d84024fb179e3ebb55573971a329cb6ff72d7fa0 (diff) | |
| download | php-mozart-9eecfe303c944c80556b0b25fcd3ce6bbce3aeb8.tar.gz php-mozart-9eecfe303c944c80556b0b25fcd3ce6bbce3aeb8.tar.zst php-mozart-9eecfe303c944c80556b0b25fcd3ce6bbce3aeb8.zip | |
fix(install): reject locks where two packages claim the same name
Mirror Composer's `RuleSetGenerator::addConflictRules` SAME_NAME pass on
the locked package set: a package's `getNames(false)` is its canonical
name plus the names it claims via `replace`, and any name with two
providers makes the lock-verify solve unsatisfiable. Mozart's `install`
skips that solve, so the conflict slipped through and both packages were
installed; surface it explicitly and exit DEPENDENCY_RESOLUTION_FAILED.
`provide` targets are deliberately excluded — `getNames(false)` excludes
them, since multiple providers of a virtual name may co-exist.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart-console-macros/src')
0 files changed, 0 insertions, 0 deletions
