Releases: composer/composer
Releases · composer/composer
2.0.7
- Fixed detection of TTY mode, made input non-interactive automatically if STDIN is not a TTY
- Fixed root aliases not being present in lock file if not required by anything else
- Fixed
remove
command requiring a lock file to be present - Fixed
Composer\InstalledVersions
to always contain up to date data during installation - Fixed
status
command breaking on slow networks - Fixed order of POST_PACKAGE_* events to occur together once all installations of a package batch are done
2.0.6
- Fixed regression in 2.0.5 dealing with custom installers which do not pass absolute paths
2.0.5
- Disabled platform-check verification of extensions by default (now defaulting
php-only
), set platform-check totrue
if you want a complete check - Improved platform-check handling of issue reporting
- Fixed platform-check to only check non-dev requires even if require-dev dependencies are installed
- Fixed issues dealing with custom installers which return trailing slashes in getInstallPath (ideally avoid doing this as there might be other issues left)
- Fixed issues when curl functions are disabled
- Fixed gitlab-domains/github-domains to make sure if they are overridden the default value remains present
- Fixed issues removing/upgrading packages from path repositories on Windows
- Fixed regression in 2.0.4 when handling of [email protected] URLs in vcs repositories
- Fixed issue running create-project in current directory on Windows
2.0.4
- Fixed
check-platform-req
command not being clear on what packages are checked, and added a --lock flag to explicitly check the locked packages - Fixed
config
&create-project
adding of repositories to make sure they are prepended as order is much more important in Composer 2, also added a --append flag toconfig
to restore the old behavior in the unlikely case this is needed - Fixed curl downloader failing on old PHP releases or when using self-signed SSL certificates
- Fixed Bitbucket API authentication issue
1.10.17
- Fixed Bitbucket API authentication issue
- Fixed parsing of Composer 2 lock files breaking in some rare conditions
2.0.3
- Fixed bug in
outdated
command where dev packages with branch-aliases where always shown as being outdated - Fixed issue in lock file interoperability with composer 1.x when using
dev-master as xxx
aliases - Fixed new
--locked
option being missing fromoutdated
command, for checking outdated packages directly from the lock file - Fixed a few debug/error reporting strings
2.0.2
2.0.1
- Fixed crash on PHP8
2.0.0
Read the Composer 2.0 announcement first for the highlights!
Complete 2.0 Changelog
- Breaking: This is a major release and while we tried to keep things compatible for most users, you might want to have a look at the UPGRADE guides
- Many CPU and memory performance improvements
- The update command is now much more deterministic as it does not take the already installed packages into account
- Package installation now performs all network operations first before doing any changes on disk, to reduce the chances of ending up with a partially updated vendor dir
- Partial updates and require/remove are now much faster as they only load the metadata required for the updated packages
- Added a platform-check step when vendor/autoload.php gets initialized which checks the current PHP version/extensions match what is expected and fails hard otherwise. Can be disabled with the platform-check config option
- Added a
Composer\InstalledVersions
class which is autoloaded in every project and lets you check which packages/versions are present at runtime - Added a
composer-runtime-api
virtual package which you can require (as e.g.^2.0
) to ensure things like the InstalledVersions class above are present. It will effectively force people to use Composer 2.x to install your project - Added support for parallel downloads of package metadata and zip files, this requires that the curl extension is present and we thus strongly recommend enabling curl
- Added parallel installation of packages (requires OSX/Linux/WSL, and that
unzip
is present in PATH) - Added much clearer dependency resolution error reporting for common error cases
- Added support for updating to a specific version with partial updates, as well as a --with flag to pass in temporary constraint overrides
- Added automatic removal of packages which are not required anymore whenever an update is done, this will purge packages previously left over by partial updates and
require
/remove
- Added support for TTY mode on Linux/OSX/WSL so that script handlers now run in interactive mode
- Added
only
,exclude
andcanonical
options to all repositories, see repository priorities for details - Added support for many new lib-* packages in the platform repository and improved version detection for some ext-* and lib-* packages
- Added
pre-operations-exec
event to be fired before the packages get installed/upgraded/removed - Added
pre-pool-create
event to be fired before the package pool for the dependency solver is created, which lets you modify the list of packages going in - Added
post-file-download
event to be fired after package dist files are downloaded, which lets you do additional checks on the files - Added --locked flag to
show
command to see the packages from the composer.lock file - Added --unused flag to
remove
command to make sure any packages which are not needed anymore get removed - Added --dry-run flag to
require
andremove
commands - Added --no-install flag to
update
,require
andremove
commands to disable the install step and only do the update step (composer.lock file update) - Added an
--ask
flag tocreate-project
command to make Composer prompt for the install dir name, useful for project install instructions - Added support for multiple --repository flags being passed into the
create-project
command, only useful in combination with--add-repository
to persist them to composer.json - Added --with-dependencies and --with-all-dependencies flag aliases to
require
andremove
commands for consistency withupdate
- Added shorthand aliases
-w
for--with-dependencies
and-W
for--with-all-dependencies
onupdate
/require
/remove
commands - Added more info to
vendor/composer/installed.json
, a dev key stores whether dev requirements were installed, and every package now has an install-path key with its install location - Added COMPOSER_DISABLE_NETWORK which if set makes Composer do its best to run offline. This can be useful when you have poor connectivity or to do benchmarking without network jitter
- Added
COMPOSER_DEBUG_EVENTS=1
env var support for plugin authors to figure out which events are triggered when - Added
setCustomCacheKey
toPreFileDownloadEvent
and fixed a cache bug for integrations changing the processed url of package archives - Added
Composer\Util\SyncHelper
for plugin authors to deal with async Promises more easily - Added
$composer->getLoop()->getHttpDownloader()
to get access to the main HttpDownloader instance in plugins - Added --json and --merge flags to
config
command to allow editing complexextra.*
values by using json as input - Added confirmation prompt when running Composer as superuser in interactive mode
- Added --no-check-version to
validate
command to remove the warning in case the version is defined - Added --ignore-platform-req (without s) to all commands supporting --ignore-platform-reqs, which accepts a package name so you can ignore only specific platform requirements
- Added --no-dev support to
show
andoutdated
commands to skip dev requirements - Added --format=summary flag to
license
command - Added a
cache-read-only
config option to make the cache usable in read only mode for containers and such - Added support for wildcards (
*
) in classmap autoloader paths - Added support for configuring GitLab deploy tokens in addition to private tokens, see gitlab-token
- Added support for package version guessing for require and init command to take all platform packages into account, not just php version
- Added support for tar in artifact repositories
- Added a non-zero exit code (2) and warning to
remove
command when a package to be removed could not be removed - Added
--apcu-autoloader-prefix
(or--apcu-prefix
fordump-autoload
command) flag to let people use apcu autoloading in a deterministic output way if that is needed - Fixed package ordering when autoloading and especially when loading plugins, to make sure dependencies are loaded before their dependents
- Fixed suggest output being very spammy, it now is only one line long and shows more rarely
- Fixed conflict rules like e.g. >=5 from matching dev-master, as it is not normalized to 9999999-dev internally anymore
- Fixed solver bug resulting in endless loops in some cases
- Lots of minor bug fixes and improvements
1.10.16
- Added warning to
validate
command for cases where packages provide/replace a package that they also require - Fixed JSON schema validation issue with PHPStorm
- Fixed symlink handling in
archive
command