Change effective on 27 December 2014
Heroku’s PHP support in the past has installed HHVM if
composer.json was listing a dependency for the
hhvm package even if
composer.lock (if present) did not.
This approach was chosen because easy to install packages for HHVM are not available for all operating systems, and a
composer update, executed using PHP, would fail as the
hhvm platform package is not available in this case:
$ composer update Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - The requested package hhvm could not be found in any version, there may be a typo in the package name. Potential causes: - A typo in the package name - The package is not available in a stable-enough version according to your minimum-stability setting see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details. Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
To allow a
composer update to succeed, even when not executed using HHVM (e.g. using
hhvm $(which composer) update on a machine that has HHVM installed), the
--ignore-platform-reqs switch is available since Composer 1.0.0-alpha9. It can be used with both the
composer install and
composer update commands:
$ composer update --ignore-platform-reqs Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Generating autoload files
As this solution is more portable and forward-compatible, activating HHVM by listing a dependency for
composer.json without freezing it to
composer.lock is deprecated and will be removed in a future update. A warning will be emitted during a push reminding users to use the new
composer.lock based approach.