Composer version selectors for language runtimes are now fully supported. For example, a selector like
~5.5.0 will (at the time of this changelog entry) select PHP version 5.5.14; so would a selector like
>=5.3.3. Our language support documentation has been updated to accurately describe the various scenarios of version selection.
All requests for Composer platform dependencies (meaning the
hhvm runtime packages, and
ext-... extension packages) are now read from
composer.lock, if it exists. If no
composer.lock exists (because the project has no userland package requirements), information from
composer.json is used instead.
Notwithstanding this change, a request for the HHVM runtime that only exists inside
composer.json is currently still honored at this time; this is because Composer is currently exhibiting a bug where it does not save the requirement to
composer.lock, and also to allow users without HHVM installed locally to test deployments using HHVM on Heroku.
For example, when using
~5.5 as the version constraint for
composer update, adding
hhvm for testing purposes with version
composer.json and then committing and pushing without another
composer update (to get around having to install HHVM locally) will yield the following result:
-----> Resolved composer.lock requirement for PHP ~5.5.0 to version 5.5.14. -----> Resolved composer.json requirement for HHVM >=3.1 to version 3.1.0.
PHP version 5.6.0RC2 is now available as a runtime. To select it, you can use a stability flag in your version constraint (e.g.
~5.5@RC) and run
composer update to re-generate
composer.lock. Upon a push, Heroku will then set up your runtimes accordingly:
-----> Resolved composer.lock requirement for PHP ~5.5@RC to version 5.6.0RC2.
apcu extension has been updated to version 4.0.4, and the
newrelic extension has been updated to version 18.104.22.168.
Please refer to our Heroku PHP Support article for more details and examples.