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.