| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-08-06 | test(plugin): cover composer/installers beyond a fresh install | nsfisis | |
| A single install leaves the installer contract half tested: it never reaches `update`, never runs over an already-installed tree, and never reaches the plugin's own `uninstall()` override — the one chaining onto the promise `LibraryInstaller::uninstall` returns. Nor does it touch the configuration surface real projects use, `installer-paths` and `installer-name`, which the plugin reads back through the package proxy. All three now compare command output as well as the resulting tree against upstream Composer. Progress bar frames are dropped from that comparison: Shirabe renders them differently for every install, including projects with no plugin at all, so they say nothing about the plugin under test. With those covered the plugin joins the verified list in the README. | |||
| 2026-08-06 | test(plugin): compare a composer/installers run against upstream Composer | nsfisis | |
| The fixture project pins composer/installers 2.3.0 and requires two packages of framework-specific types, so the plugin's LibraryInstaller subclass decides where they land. Upstream Composer and Shirabe install the same project and the whole resulting tree is compared. The plugin tarball is fetched by `fixtures/e2e-installers/fetch` into a git-ignored directory and pinned by a digest over the extracted files, so the third-party source never enters this repository and the test skips itself while the directory is absent. The tree is staged and only moved into place once verified, so an unverified tree is never observable under the name the test looks for. | |||
