You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit aceb633
Browse filesBrowse the repository at this point in the historyBrowse files
<code>require</code> and <code>remove</code> to viv; <code>search</code> and the rest go to the Composer on
236
+
your <code>PATH</code>, and with no real Composer installed they fail.</li>
238
237
<li><strong><code>vendor/</code> files are read-only by default.</strong> viv hardlinks them from a
239
238
shared store, so an edit inside <code>vendor/</code> fails instead of changing every
240
239
project on the machine. If you patch vendor files by hand, install with
@@ -304,7 +303,7 @@ <h2>Licence</h2>
304
303
[^6]: riff's phpunit/phpunit cold and warm times (8.2 s and 8.6 s) are an outlier against its other rows in this corpus; kept in the range, not dropped; see <ahref="bench/results/corpus.md"><code>bench/results/corpus.md</code></a>.
305
304
[^10]: <code>install</code> runs the root's lifecycle scripts (<code>pre-install-cmd</code>, <code>post-autoload-dump</code>, <code>post-install-cmd</code>) as Composer does.
306
305
[^11]: Normalisation follows <code>ergebnis/composer-normalize</code>'s rules, so a project already using that plugin sees no change.
307
-
[^12]: The shim maps <code>install</code>, <code>dump-autoload</code>, <code>normalize</code> and <code>create-project</code>with their supported flags to <code>viv</code>; everything else,<code>update</code>, <code>require</code>, an unrecognised flag, it hands through to the real Composer binary unchanged. Point <code>VIV_COMPOSER_PATH</code> at the real binary if it isn't first on <code>PATH</code>. The shim only has something to hand through to if a real Composer is on <code>PATH</code> in the first place: if there isn't one, those commands fail rather than silently falling back to viv.
306
+
[^12]: The shim maps <code>install</code>, <code>dump-autoload</code>, <code>normalize</code>, <code>create-project</code>, <code>update</code>, <code>require</code> and <code>remove</code>with their supported flags (<code>update</code>'s partial-update package arguments and <code>-w</code>/<code>-W</code> included) to<code>viv</code>; everything else, <code>search</code>, an unrecognised flag, it hands through to the real Composer binary unchanged. Point <code>VIV_COMPOSER_PATH</code> at the real binary if it isn't first on <code>PATH</code>. The shim only has something to hand through to if a real Composer is on <code>PATH</code> in the first place: if there isn't one, those commands fail rather than silently falling back to viv.
308
307
[^13]: <ahref="docs/plugin-strategy.md"><code>docs/plugin-strategy.md</code></a> lists which plugin falls into which category.
309
308
[^14]: The store lives under <code>$XDG_CACHE_HOME/vivace/</code>, keyed by the sha256 hash of each package archive, and installing hardlinks files from it into <code>vendor/</code> instead of extracting them again. Store files are read-only, so an accidental edit to a vendor file fails instead of silently changing every project that shares that file on disk; projects that patch their vendor files should use <code>--link-mode copy</code> instead. A no-op install compares the lock against <code>vendor/composer/installed.json</code> and a small state file, without spawning PHP or making a network request. The autoloader files (<code>vendor/autoload.php</code>, <code>vendor/composer/*.php</code>, <code>installed.json</code>, <code>installed.php</code>, <code>platform_check.php</code>) are generated by a port of Composer's own generator, tested against Composer's own golden test cases, and checked end to end by byte-diffing <code>vendor/</code> against real Composer 2.10.2 output. See <ahref="ARCHITECTURE.md"><code>ARCHITECTURE.md</code></a>, <ahref="docs/composer-contract.md"><code>docs/composer-contract.md</code></a> and <ahref="docs/stability.md"><code>docs/stability.md</code></a> for the detail.
310
309
[^15]: <ahref="JOURNAL.md"><code>JOURNAL.md</code></a>, including the study of <ahref="https://github.com/shyim/riff">Riff</a> and <ahref="https://github.com/paramientos/presto">Presto</a> that preceded the code.
0 commit comments