Added config.platform to let you specify what your target environment looks like and make sure you do not inadvertently install dependencies that would break it
Added exclude-from-classmap in the autoload config that lets you ignore sub-paths of classmapped directories, or psr-0/4 directories when building optimized autoloaders
Added path repository type to install/symlink packages from local paths
Added suggests command to show what packages are suggested, use -v to see more details
Added content-hash inside the composer.lock to restrict the warnings about outdated lock file to some specific changes in the composer.json file
Added archive-format and archive-dir config options to specify default values for the archive command
Added --classmap-authoritative to install, update, require, remove and dump-autoload commands, forcing the optimized classmap to be authoritative
Added -A / --with-dependencies to the validate command to allow validating all your dependencies recursively
Added --strict to the validate command to treat any warning as an error that then returns a non-zero exit code
Added a dependency on composer/semver, which is the externalized lib for all the version constraints parsing and handling
Added support for classmap autoloading to load plugin classes and script handlers
Added bin-compat config option that if set to full will create .bat proxy for binaries even if Compoesr runs in a linux VM
Added SPDX 2.0 support, and externalized that in a composer/spdx-licenses lib
Added warnings when the classmap autoloader finds duplicate classes
Added --file to the archive command to choose the filename
Added Ctrl+C handling in create-project to cancel the operation cleanly
Fixed version guessing to use ^ always, default to stable versions, and avoid versions that require a higher php version than you have
Fixed the lock file switching back and forth between old and new URL when a package URL is changed and many people run updates
Fixed partial updates updating things they shouldn't when the current vendor dir was out of date with the lock file
Fixed PHAR file creation to be more reproducible and always generate the exact same phar file from a given source
Fixed issue when checking out git branches or tags that are also the name of a file in the repo
Many minor fixes and documentation additions and UX 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 update command 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-stable flag to pick stable packages over unstable ones when possible
Added preferred-install config option to always enable --prefer-source or --prefer-dist
Added diagnose command 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 archive command to archive the current directory or a given package
Added run-script command to manually trigger scripts
Added proprietary as valid license identifier for non-free code
Added a php-64bit platform package that you can require to force a 64bit php
Added a lib-ICU platform package
Added a new official package type project for project-bootstrapping packages
Added zip/dist local cache to speed up repetitive installations
Added post-autoload-dump script event
Added Event::getDevMode to let script handlers know if dev requirements are being installed
Added discard-changes config option to control the default behavior when updating "dirty" dependencies
Added use-include-path config option to make the autoloader look for files in the include path too
Added cache-ttl, cache-files-ttl and cache-files-maxsize config option
Added cache-dir, cache-files-dir, cache-repo-dir and cache-vcs-dir config 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 artifact repository to scan a directory containing zipped packages
Added --no-dev flag to install and update commands
Added --stability (-s) flag to create-project to lower the required stability
Added --no-progress to install and update to hide the progress indicators
Added --available (-a) flag to the show command to display only available packages
Added --name-only (-N) flag to the show command to show only package names (one per line, no formatting)
Added --optimize-autoloader (-o) flag to optimize the autoloader from the install and update commands
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 require command 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 config command to support all options