aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart-core/src/package.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-03 22:39:17 +0900
committernsfisis <nsfisis@gmail.com>2026-05-03 22:39:17 +0900
commitcccdce42f6eb5c21179bf7b2fbd482a7d29c3b9d (patch)
tree70911b19ae54a2771fbd20411f5f217e6930f38a /crates/mozart-core/src/package.rs
parent94d217dc9a6a23b6bcd695b776a34ac0db0ce539 (diff)
downloadphp-mozart-cccdce42f6eb5c21179bf7b2fbd482a7d29c3b9d.tar.gz
php-mozart-cccdce42f6eb5c21179bf7b2fbd482a7d29c3b9d.tar.zst
php-mozart-cccdce42f6eb5c21179bf7b2fbd482a7d29c3b9d.zip
fix(update): wire up the bare-keyword mirrors mode
`update lock`, `update nothing`, and `update mirrors` were treated as ordinary full updates: the resolver picked the highest matching version of every root require and the install step rewrote refs from the repository, masquerading transport metadata refreshes as content changes (and accepting brand-new root requires the lock had never seen). Mirror Composer's `setUpdateMirrors(true)` flow: - Detect the bare-keyword form and skip composer.json's require / require-dev entirely; require each locked package by exact version instead. This drops fresh root requires Mozart shouldn't yet honor and pins existing ones to their lock version. - After lockfile generation, walk each new entry and copy the OLD lock's source/dist reference back when the source/dist *type* matches, mirroring `LockTransaction::updateMirrorAndUrls`. URL and mirrors update; ref stays put — so a repo rename or mirror flip emits no Update operation, but a real type change (`hg` → `git`) still does.
Diffstat (limited to 'crates/mozart-core/src/package.rs')
0 files changed, 0 insertions, 0 deletions