0.16.0
Released 2026-09-24
Added
viv installrefuses, with Composer's Problem wording and exit code 2, when the lock needs a PHP version, extension or library the detected platform lacks, before anything is written;config.platform,--ignore-platform-reqsand--ignore-platform-reqare honoured. The verdict is cached in the store so an unchanged project costs one stat and one small read; with nophpon PATH the check is skipped (#300)--ignore-platform-reqsand--ignore-platform-req=<name>now reach the solve inupdate,requireandremove, so a package pinned to a PHP this machine lacks resolves as it does in Composer (#242)- Top-level
"type": "path"repositories: a glob or plain relativeurl,options.symlink,options.versions, the git-guessed version,dist.referenceandtransport-optionsas Composer writes them (#305) self.versionin the rootcomposer.json's ownrequireandrequire-devresolves to the root's version, in both the first solve and the dev-split second solve (#304)
Changed
- Warm
viv install -oonbench/laravelfrom 78 ms to 53 ms: the root package's classmap scan is cached by directory fingerprint (#269), the classmap merge and autoload render allocate less (#302), and each archive's classmap sidecar is stored in its final key form (#303). Link concurrency was measured at the syscall floor and left alone (#270) - Composer's platform Problem wording for
php,ext-*andlib-*requirements is now reproduced exactly, including the "your php version (x) does not satisfy" case a present-but-mismatched platform package used to skip
Research
- Chapter 3, workspaces, closed as measured and not pursued: on every corpus repository whose members are installed alone, standalone and aggregate solves agree (#279); four candidate chapters and an rspack prior-art note written up
- CI per push from 5.4 min to a 4.4 min median, with macOS in three offline partitions and optimised dependencies in the dev profile (#195)