* Added more advanced filtering to avoid loading all versions of all referenced packages when resolving dependencies, which should reduce memory usage further in some cases
* Added more advanced filtering to avoid loading all versions of all referenced packages when resolving dependencies, which should reduce memory usage further in some cases
* Added support for many new lib-* packages in the platform repository and improved version detection for some ext-* and lib-* packages
* Added support for many new `lib-*` packages in the platform repository and improved version detection for some `ext-*` and `lib-*` packages
* Added an `--ask` flag to `create-project` command to make Composer prompt for the install dir name, [useful for project install instructions](https://github.com/composer/composer/pull/9181)
* Added an `--ask` flag to `create-project` command to make Composer prompt for the install dir name, [useful for project install instructions](https://github.com/composer/composer/pull/9181)
* Added support for tar in artifact repositories
* Added support for tar in artifact repositories
* Added a `cache-read-only` config option to make the cache usable in read only mode for containers and such
* Added a `cache-read-only` config option to make the cache usable in read only mode for containers and such
@ -212,7 +212,7 @@
* Fixed archive command to persist file permissions inside the zip files
* Fixed archive command to persist file permissions inside the zip files
* Fixed init/require command to avoid suggesting packages which are already selected in the search results
* Fixed init/require command to avoid suggesting packages which are already selected in the search results
* Fixed create-project UX issues
* Fixed create-project UX issues
* Fixed filemtime for vendor/composer/* files is now only changing when the files actually change
* Fixed filemtime for `vendor/composer/*` files is now only changing when the files actually change
* Fixed issues detecting docker environment with an active open_basedir
* Fixed issues detecting docker environment with an active open_basedir
### [1.9.3] 2020-02-04
### [1.9.3] 2020-02-04
@ -222,7 +222,7 @@
### [1.9.2] 2020-01-14
### [1.9.2] 2020-01-14
* Fixed minor git driver bugs
* Fixed minor git driver bugs
* Fixed schema validation for version field to allow dev-* versions too
* Fixed schema validation for version field to allow `dev-*` versions too
* Fixed external processes' output being formatted even though it should not
* Fixed external processes' output being formatted even though it should not
* Fixed issue with path repositories when trying to install feature branches
* Fixed issue with path repositories when trying to install feature branches
@ -523,7 +523,7 @@
* Fixed dist downloads from Bitbucket
* Fixed dist downloads from Bitbucket
* Fixed some regressions related to xdebug disabling
* Fixed some regressions related to xdebug disabling
* Fixed `--minor-only` flag in `outdated` command
* Fixed `--minor-only` flag in `outdated` command
* Fixed handling of config.platform.php which did not replace other php-* package's versions
* Fixed handling of config.platform.php which did not replace other `php-*` package's versions
### [1.3.0] - 2016-12-24
### [1.3.0] - 2016-12-24
@ -945,7 +945,7 @@
* Added a recommendation for package names to be `lower-cased/with-dashes`, it will be enforced for new packages on Pacakgist
* Added a recommendation for package names to be `lower-cased/with-dashes`, it will be enforced for new packages on Pacakgist
* Added `require` command to add a package to your requirements and install it
* Added `require` command to add a package to your requirements and install it
* Added a whitelist to `update`. Calling `composer update foo/bar foo/baz` allows you to update only those packages
* Added a whitelist to `update`. Calling `composer update foo/bar foo/baz` allows you to update only those packages
* Added support for overriding repositories in the system config (define repositories in ~/.composer/config.json)
* 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-pcre` contains the pcre version
* Added `lib-*` packages to the platform repository, e.g. `lib-pcre` contains the pcre version
* Added caching of GitHub metadata (faster startup time with custom GitHub VCS repos)
* 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 caching of SVN metadata (faster startup time with custom SVN VCS repos)
- The new platform-check feature means that Composer checks the runtime PHP version and available extensions to ensure they match the project dependencies. If a mismatch is found, it exits with error details to make sure problems are not overlooked. To avoid issues when deploying to production it is recommended to run `composer check-platform-reqs` with the production PHP process as part of your build or deployment process.
- The new platform-check feature means that Composer checks the runtime PHP version and available extensions to ensure they match the project dependencies. If a mismatch is found, it exits with error details to make sure problems are not overlooked. To avoid issues when deploying to production it is recommended to run `composer check-platform-reqs` with the production PHP process as part of your build or deployment process.
- If a package exists in a higher priority repository, it will now be entirely ignored in lower priority repositories. See [repository priorities](https://getcomposer.org/repoprio) for details.
- If a package exists in a higher priority repository, it will now be entirely ignored in lower priority repositories. See [repository priorities](https://getcomposer.org/repoprio) for details.
- Invalid PSR-0 / PSR-4 class configurations will not autoload anymore in optimized-autoloader mode, as per the warnings introduced in 1.10
- Invalid PSR-0 / PSR-4 class configurations will not autoload anymore in optimized-autoloader mode, as per the warnings introduced in 1.10
- On linux systems supporting the XDG Base Directory Specification, Composer will now prefer using XDG_CONFIG_DIR/composer over ~/.composer if both are available (1.x used ~/.composer first)
- On linux systems supporting the XDG Base Directory Specification, Composer will now prefer using XDG_CONFIG_DIR/composer over `~/.composer` if both are available (1.x used `~/.composer` first)
- Package names now must comply to our [naming guidelines](doc/04-schema.md#name) or Composer will abort, as per the warnings introduced in 1.8.1
- Package names now must comply to our [naming guidelines](doc/04-schema.md#name) or Composer will abort, as per the warnings introduced in 1.8.1
- Deprecated --no-suggest flag as it is not needed anymore
- Deprecated --no-suggest flag as it is not needed anymore
- PEAR support (repository, downloader, etc.) has been removed
- PEAR support (repository, downloader, etc.) has been removed
- It then iterates over all packages one by one (dispatching PRE_PACKAGE_INSTALL/UPDATE/UNINSTALL, then PRE_FILE_DOWNLOAD if needed, then POST_PACKAGE_*)
- It then iterates over all packages one by one (dispatching PRE_PACKAGE_INSTALL/UPDATE/UNINSTALL, then PRE_FILE_DOWNLOAD if needed, then POST_PACKAGE_\*)
- And finally writes the lock file at the end
- And finally writes the lock file at the end
#### Composer v2
#### Composer v2
@ -71,7 +71,7 @@ Install then does:
- Dispatches PRE_OPERATIONS_EXEC with the full list of operations to be executed
- Dispatches PRE_OPERATIONS_EXEC with the full list of operations to be executed
- Downloads all the packages not in cache yet in parallel (dispatching PRE_FILE_DOWNLOAD for those not in cache yet)
- Downloads all the packages not in cache yet in parallel (dispatching PRE_FILE_DOWNLOAD for those not in cache yet)
- It then iterates over all packages and executes updates/installs/uninstalls in parallel (dispatching PRE_PACKAGE_INSTALL/UPDATE/UNINSTALL then POST_PACKAGE_* but one package started last may finish installing before another is done for example).
- It then iterates over all packages and executes updates/installs/uninstalls in parallel (dispatching PRE_PACKAGE_INSTALL/UPDATE/UNINSTALL then POST_PACKAGE_\* but one package started last may finish installing before another is done for example).
To create a new access token, head to your [token settings section on Github](https://github.com/settings/tokens) and [generate a new token](https://github.com/settings/tokens/new). For public repositories when rate limited, the ```public_repo``` scope is required, for private repositories the ```repo:status``` scope is needed.
To create a new access token, head to your [token settings section on Github](https://github.com/settings/tokens) and [generate a new token](https://github.com/settings/tokens/new). For public repositories when rate limited, the `public_repo` scope is required, for private repositories the `repo:status` scope is needed.
Read more about it [here](https://github.com/blog/1509-personal-api-tokens).
Read more about it [here](https://github.com/blog/1509-personal-api-tokens).