0.12.0

Released 2026-09-14

Added

  • A container image at ghcr.io/svandragt/vivace, so a multi-stage Dockerfile's vendor stage replaces composer:2 in one line instead of fetching and verifying a release tarball by hand. Tagged :0.12.0, :0.12 and :0, for amd64 and arm64, 16.6 MB against composer:2 and its PHP runtime (#213)
  • --ignore-platform-reqs and --ignore-platform-req=<name> on install and dump-autoload, and the composer shim passes both through instead of dropping them (#214)
  • A native adapter for pestphp/pest-plugin, so roots/bedrock installs without --no-plugins (#131)
  • install and dump-autoload accept and ignore --no-interaction, --prefer-dist and --no-suggest: the CI idiom every guide teaches already describes what viv does, so a migrating project need not edit every call site (#211)

Fixed

  • An install with no PHP on PATH no longer reports success over a vendor/ where phpcs cannot find its standards. The adapter writes CodeSniffer.conf itself rather than shelling out to phpcs --config-set (#218)
  • A build stage that passed --ignore-platform-reqs got a vendor/composer/platform_check.php Composer omits, and an autoload_real.php that requires it — so a vendor/ Composer would run could fatal under viv (#214)
  • The composer shim no longer drops --no-plugins, which made a plugin refusal tell you to pass the flag you had just passed (#227)
  • The composer shim understands a flag's value as a separate argument (-d /app, not only -d=/app). It previously fell back to the real Composer, so a migrated CI job or Dockerfile kept using Composer with nothing saying so (#228)

Changed

  • A plugin refusal says whether taking --no-plugins costs anything: by design and you lose nothing, or not yet adapted and the plugin's work is skipped. A plugin with no record gets the cautious wording, never a false claim of safety (#224)