2.1.0-RC1 - released 2021-06-02
View the release on GitHub
Changelog
- Bumped
composer-runtime-api
and composer-plugin-api
to 2.1.0
- UX Change: The default install method for packages is now always dist/zip, even for dev packages, added
--prefer-install=auto
if you want the old behavior (#9603)
- UX Change: Packages from
path
repositories which are symlinked in the vendor dir will always be updated in partial updates to avoid mistakes when the original composer.json changes but the symlinked package is not explicitly updated (#9765)
- Added
reinstall
command that takes one or more package names, including wildcard (*
) support, and removes then reinstalls them in the exact same version they had (#9915)
- Added support for parallel package installs on Windows via 7-Zip if it is installed (#9875)
- Added detection of invalid composer.lock files that do not fulfill the composer.json requirements to
validate
command (#9899)
- Added
InstalledVersions::getInstalledPackagesByType(string $type)
to retrieve installed plugins for example, read more (#9699)
- Added
InstalledVersions::getInstalledPath(string $packageName)
to retrieve the install path of a given package, read more (#9699)
- Added flag to
InstalledVersions::isInstalled()
to allow excluding dev requirements from that check (#9682)
- Added support for PHP 8.1 enums in autoloader / classmap generation (#9670)
- Added support for using
@php binary-name foo
in scripts to refer to a binary without using its full path, but forcing to use the same PHP version as Composer used (#9726)
- Added
--format=json
support to the fund
command (#9678)
- Added
--format=json
support to the search
command (#9747)
- Added
COMPOSER_DEV_MODE
env var definition within the run-script command for compatibility (#9793)
- Added async uninstall of packages (#9618)
- Added color legend to
outdated
and show --latest
commands (#9716)
- Added
secure-svn-domains
config option to mark secure svn:// hostnames and suppress warnings without disabling secure-http (#9872)
- Added
gitlab-protocol
config option to allow forcing git
or http
URLs for all gitlab repos loaded inline, instead of the default of git for private and http for public (#9401)
- Added generation of autoload rules in
init
command (#9829)
- Added source/dist validation in
validate
command
- Added automatic detection of WSL when generating binaries and use
bin-compat:full
implicitly (#9855)
- Added automatic detection of the --no-dev state for
dump-autoload
based on the last install run (#9714)
- Added warning/prompt to
require
command if requiring a package that already exists in require-dev or vice versa (#9542)
- Added information about package conflicts in the
why
/why-not
commands (#9693)
- Removed version argument from
why
command as it was not needed (#9729)
- Fixed
why-not
command to always require a specific version as it is useless without (#9729)
- Fixed cache dir on macOS to follow OS guidelines, it is now in ~/Library/Caches/composer (#9898)
- Fixed composer.json JSON schema to avoid having name/description required by default (#9912)
- Fixed support for running inside WSL paths from a Windows PHP/Composer (#9861)
- Fixed InstalledVersions to include the original doc blocks when installed from a Composer phar file
- Fixed
require
command to use *
as constraint for extensions bundled with PHP instead of duplicating the PHP constraint (#9483)
- Fixed
search
output to be aligned and avoid wrapped long lines to be more readable (#9455)
- Error output improvements for many cases (#9876, #9837, #9928, and some smaller improvements)