- Break: The
installcommand now has --dev enabled by default. --no-dev can be used to install without dev requirements - Added
composer-pluginpackage type to allow extensibility, and deprecatedcomposer-installer - Added
psr-4autoloading support and deprecatedtarget-dirsince it is a better alternative - Added --no-plugins flag to replace --no-custom-installers where available
- Added
globalcommand to operate Composer in a user-global directory - Added
licensescommand to list the license of all your dependencies - Added
pre-status-cmdandpost-status-cmdscript events to thestatuscommand - Added
post-root-package-installandpost-create-project-cmdscript events to thecreate-projectcommand - Added
pre-autoload-dumpscript event - Added --rollback flag to self-update
- Added --no-install flag to create-project to skip installing the dependencies
- Added a
hhvmplatform package to require Facebook's HHVM implementation of PHP - Added
github-domainsconfig option to allow using GitHub Enterprise with Composer's GitHub support - Added
prepend-autoloaderconfig option to allow appending Composer's autoloader instead of the default prepend behavior - Added Perforce support to the VCS repository
- Added a vendor/composer/autoload_files.php file that lists all files being included by the files autoloader
- Added support for the
no_proxyenv var and other proxy support improvements - Added many robustness tweaks to make sure zip downloads work more consistently and corrupted caches are invalidated
- Added the release date to
composer -Voutput - Added
autoloader-suffixconfig option to allow overriding the randomly generated autoloader class suffix - Fixed BitBucket API usage
- Fixed parsing of inferred stability flags that are more stable than the minimum stability
- Fixed installation order of plugins/custom installers
- Fixed tilde and wildcard version constraints to be more intuitive regarding stabilities
- Fixed handling of target-dir changes when updating packages
- Improved performance of the class loader
- Improved memory usage and performance of solving dependencies
- Tons of minor bug fixes and improvements
- Break: For forward compatibility, you should change your deployment scripts to run
composer install --no-dev. The install command will install dev dependencies by default starting in the next release - Break: The
updatecommand now has --dev enabled by default. --no-dev can be used to update without dev requirements, but it will create an incomplete lock file and is discouraged - Break: Removed support for lock files created before 2012-09-15 due to their outdated unusable format
- Added
prefer-stableflag to pick stable packages over unstable ones when possible - Added
preferred-installconfig option to always enable --prefer-source or --prefer-dist - Added
diagnosecommand to to system/network checks and find common problems - Added wildcard support in the update whitelist, e.g. to update all packages of a vendor do
composer update vendor/* - Added
archivecommand to archive the current directory or a given package - Added
run-scriptcommand to manually trigger scripts - Added
proprietaryas valid license identifier for non-free code - Added a
php-64bitplatform package that you can require to force a 64bit php - Added a
lib-ICUplatform package - Added a new official package type
projectfor project-bootstrapping packages - Added zip/dist local cache to speed up repetitive installations
- Added
post-autoload-dumpscript event - Added
Event::getDevModeto let script handlers know if dev requirements are being installed - Added
discard-changesconfig option to control the default behavior when updating "dirty" dependencies - Added
use-include-pathconfig option to make the autoloader look for files in the include path too - Added
cache-ttl,cache-files-ttlandcache-files-maxsizeconfig option - Added
cache-dir,cache-files-dir,cache-repo-dirandcache-vcs-dirconfig option - Added support for using http(s) authentication to non-github repos
- Added support for using multiple autoloaders at once (e.g. PHPUnit + application both using Composer autoloader)
- Added support for .inc files for classmap autoloading (legacy support, do not do this on new projects!)
- Added support for version constraints in show command, e.g.
composer show monolog/monolog 1.4.* - Added support for svn repositories containing packages in a deeper path (see package-path option)
- Added an
artifactrepository to scan a directory containing zipped packages - Added --no-dev flag to
installandupdatecommands - Added --stability (-s) flag to create-project to lower the required stability
- Added --no-progress to
installandupdateto hide the progress indicators - Added --available (-a) flag to the
showcommand to display only available packages - Added --name-only (-N) flag to the
showcommand to show only package names (one per line, no formatting) - Added --optimize-autoloader (-o) flag to optimize the autoloader from the
installandupdatecommands - Added -vv and -vvv flags to get more verbose output, can be useful to debug some issues
- Added COMPOSER_NO_INTERACTION env var to do the equivalent of --no-interaction (should be set on build boxes, CI, PaaS)
- Added PHP 5.2 compatibility to the autoloader configuration files so they can be used to configure another autoloader
- Fixed handling of platform requirements of the root package when installing from lock
- Fixed handling of require-dev dependencies
- Fixed handling of unstable packages that should be downgraded to stable packages when updating to new version constraints
- Fixed parsing of the
~operator combined with unstable versions - Fixed the
requirecommand corrupting the json if the new requirement was invalid - Fixed support of aliases used together with
<version>#<reference>constraints - Improved output of dependency solver problems by grouping versions of a package together
- Improved performance of classmap generation
- Improved mercurial support in various places
- Improved lock file format to minimize unnecessary diffs
- Improved the
configcommand to support all options - Improved the coverage of the
validatecommand - Tons of minor bug fixes and improvements
- Schema: Added ability to pass additional options to repositories (i.e. ssh keys/client certificates to secure private repos)
- Schema: Added a new
~operator that should be prefered over>=, see http://getcomposer.org/doc/01-basic-usage.md#package-versions - Schema: Version constraints
<x.yare assumed to be<x.y-devunless specified as<x.y-stableto reduce confusion - Added
configcommand to edit/list config values, including --global switch for system config - Added OAuth token support for the GitHub API
- Added ability to specify CLI commands as scripts in addition to PHP callbacks
- Added --prefer-dist flag to force installs of dev packages from zip archives instead of clones
- Added --working-dir (-d) flag to change the working directory
- Added --profile flag to all commands to display execution time and memory usage
- Added
github-protocolsconfig key to define the order of prefered protocols for github.com clones - Added ability to interactively reset changes to vendor dirs while updating
- Added support for hg bookmarks in the hg driver
- Added support for svn repositories not following the standard trunk/branch/tags scheme
- Fixed git clones of dev versions so that you end up on a branch and not in detached HEAD
- Fixed "Package not installed" issues with --dev installs
- Fixed the lock file format to be a snapshot of all the package info at the time of update
- Fixed order of autoload requires to follow package dependencies
- Fixed rename() failures with "Access denied" on windows
- Improved memory usage to be more reasonable and not grow with the repository size
- Improved performance and memory usage of installs from composer.lock
- Improved performance of a few essential code paths
- Many bug small fixes and docs improvements
- Added
dump-autoloadcommand to only regenerate the autoloader - Added --optimize to
dump-autoloadto generate a more performant classmap-based autoloader for production - Added
statuscommand to show if any source-installed dependency has local changes, use --verbose to see changed files - Added --verbose flag to
installandupdatethat shows the new commits when updating source-installed dependencies - Added --no-update flag to
requireto only modify the composer.json file but skip the update - Added --no-custom-installers and --no-scripts to
install,updateandcreate-projectto prevent all automatic code execution - Added support for installing archives that contain only a single file
- Fixed APC related issues in the autoload script on high load websites
- Fixed installation of branches containing capital letters
- Fixed installation of custom dev versions/branches
- Improved the coverage of the
validatecommand - Improved PEAR scripts/binaries support
- Improved and fixed the output of various commands
- Improved error reporting on network failures and some other edge cases
- Various minor bug fixes and docs improvements
- Break: The default
minimum-stabilityis nowstable, read more - Break: Custom installers now receive the IO instance and a Composer instance in their constructor
- Schema: Added references for dev versions, requiring
dev-master#abcdeffor example will force the abcdef commit - Schema: Added
supportkey with some more metadata (email, issues, forum, wiki, irc, source) - Schema: Added
!=operator for version constraints inrequire/require-dev - Added a recommendation for package names to be
lower-cased/with-dashes, it will be enforced for new packages on Pacakgist - Added
requirecommand to add a package to your requirements and install it - Added a whitelist to
update. Callingcomposer update foo/bar foo/bazallows you to update only those packages - Added support for overriding repositories in the system config (define repositories in ~/.composer/config.json)
- Added
lib-*packages to the platform repository, e.g.lib-pcrecontains the pcre version - Added caching of GitHub metadata (faster startup time with custom GitHub VCS repos)
- Added caching of SVN metadata (faster startup time with custom SVN VCS repos)
- Added support for file:// URLs to GitDriver
- Added --self flag to the
showcommand to display the infos of the root package - Added --dev flag to
create-projectcommand - Added --no-scripts to
installandupdatecommands to avoid triggering the scripts - Added
COMPOSER_ROOT_VERSIONenv var to specify the version of the root package (fixes some edge cases) - Added support for multiple custom installers in one package
- Added files autoloading method which requires files on every request, e.g. to load functional code
- Added automatic recovery for lock files that contain references to rewritten (force pushed) commits
- Improved PEAR repositories support and package.xml extraction
- Improved and fixed the output of various commands
- Fixed the order of installation of requirements (they are always installed before the packages requiring them)
- Cleaned up / refactored the dependency solver code as well as the output for unsolvable requirements
- Various bug fixes and docs improvements
- Schema: Added
require-devfor development-time requirements (tests, etc), install with --dev - Schema: Added author.role to list the author's role in the project
- Schema: Added
minimum-stability+@<stability>flags in require for restricting packages to a certain stability - Schema: Removed
recommend - Schema:
suggestis now informational and can use any description for a package, not only a constraint - Break: vendor/.composer/autoload.php has been moved to vendor/autoload.php, other files are now in vendor/composer/
- Added caching of repository metadata (faster startup times & failover if packagist is down)
- Added removal of packages that are not needed anymore
- Added include_path support for legacy projects that are full of require_once statements
- Added installation notifications API to allow better statistics on Composer repositories
- Added support for proxies that require authentication
- Added support for private github repositories over https
- Added autoloading support for root packages that use target-dir
- Added awareness of the root package presence and support for it's provide/replace/conflict keys
- Added IOInterface::isDecorated to test for colored output support
- Added validation of licenses based on the SPDX registry
- Improved repository protocol to have large cacheable parts
- Fixed various bugs relating to package aliasing, proxy configuration, binaries
- Various bug fixes and docs improvements
- Added
create-projectcommand to install a project from scratch with composer - Added automated
classmapautoloading support for non-PSR-0 compliant projects - Added human readable error reporting when deps can not be solved
- Added support for private GitHub and SVN repositories (use --no-interaction for CI)
- Added "file" downloader type to download plain files
- Added support for authentication with svn repositories
- Added autoload support for PEAR repositories
- Improved clones from GitHub which now automatically select between git/https/http protocols
- Improved
validatecommand to give more feedback - Improved the
search&showcommands output - Removed dependency on filter_var
- Various robustness & error handling improvements, docs fixes and more bug fixes
- Initial release