viv 0.11.0, and a two-word deletion
Vivace 0.11.0 is out. This is the first proper release!
Anyone putting viv in a CI step or a Dockerfile no longer has to pin a version and update it by hand, or reimplement "latest" themselves.
Viv is at least twice as fast as any alternative I'm aware of: most of what the milestone tracked had already shipped in 0.10.0, and the one user-visible change is constraint matching, which went from about 27ms across 33,000 calls to 4 or 5. The bigger numbers in the README moved because the table was two releases stale.
viv installs PHP dependencies from a composer.lock and writes the same vendor/ Composer would, byte for byte – the compatibility sweep for this release was 44 rows identical, 0 differing, and all ten pinned projects resolving the same lock. It's around 6x faster on a cold install and 19x warm than composer.
| Scenario | viv vs Composer | viv vs riff |
|---|---|---|
| Cold | 6.1× (2.7 to 10.9) | 2.0× (0.9 to 127.2)[^5][^6] |
| Warm | 19.4× (5.8 to 104.0) | 5.5× (2.1 to 147.4)[^6] |
| No-op | 43.3× (19.3 to 109.6) | 12.6× (2.5 to 52.1) |
| Update-warm | 1.8× (1.4 to 4.2) | n/a |
What I want now is more real projects using it, because the useful bug reports have all come from someone trying to migrate something real and hitting a wall. The last release's best change came from a person who unpacked the tarball by accident and found a drop-in composer shim nobody had documented. So: if you try it and something gets in the way, I'd like to hear about it.