Activation of HHVM without composer.lock now deprecated
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 hhvm
in 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.