Skip to content

Releases: composer/composer

2.0.7

13 Nov 16:37
cbee637
Compare
Choose a tag to compare
  • 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

07 Nov 10:29
d5789bd
Compare
Choose a tag to compare
  • Fixed regression in 2.0.5 dealing with custom installers which do not pass absolute paths

2.0.5

06 Nov 20:02
0934b44
Compare
Choose a tag to compare
  • Disabled platform-check verification of extensions by default (now defaulting php-only), set platform-check to true 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

30 Oct 21:49
4053eab
Compare
Choose a tag to compare
  • 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 to config 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

30 Oct 21:50
09d42e1
Compare
Choose a tag to compare
  • Fixed Bitbucket API authentication issue
  • Fixed parsing of Composer 2 lock files breaking in some rare conditions

2.0.3

28 Oct 15:00
f7eebdd
Compare
Choose a tag to compare
  • 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 from outdated command, for checking outdated packages directly from the lock file
  • Fixed a few debug/error reporting strings

2.0.2

25 Oct 22:16
74e8c71
Compare
Choose a tag to compare
  • Fixed regression handling composer show -s in projects where no version can be guessed from VCS
  • Fixed regression handling partial updates/require when a lock file was missing
  • Fixed interop issue with plugins that need to update dist URLs of packages, see docs if you need this

2.0.1

24 Oct 18:58
66f4e5d
Compare
Choose a tag to compare
  • Fixed crash on PHP8

2.0.0

24 Oct 09:30
378b34c
Compare
Choose a tag to compare

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 and canonical 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 and remove commands
  • Added --no-install flag to update, require and remove commands to disable the install step and only do the update step (composer.lock file update)
  • Added an --ask flag to create-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 and remove commands for consistency with update
  • Added shorthand aliases -w for --with-dependencies and -W for --with-all-dependencies on update/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 to PreFileDownloadEvent 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 complex extra.* 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 and outdated 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 for dump-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

24 Oct 09:31
217f027
Compare
Choose a tag to compare
  • 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