Get the list of outdated Composer packages

PhpComposer Php

Php Problem Overview


I want to get list of outdated packages that will be updated when I issue composer update. Does composer have such functionality? if no is there a way to do that (with or without composer?)

Php Solutions


Solution 1 - Php

Update:

Since Composer v1.1 (May 2016) the following commands are available:

  • composer outdated shows you the list of outdated packages
  • composer show -l returns the complete list of packages. packages in need of update are colored red. the (still) up-2-date ones are colored green.
  • both commands accept the parameter --direct to show only direct dependencies in the listing

Referencing:

https://github.com/composer/composer/issues/3771


Composer Plugins

There are some Composer Plugins showing the list of outdated packages:

  1. composer-versions-check - https://github.com/Soullivaneuh/composer-versions-check

The Composer Plugin called "composer-versions-check" shows outdated packages from last major versions after using the update command. (Latest is ..)

This plugin runs "update" first, then shows possible "upgrade" indications.

A Composer dry-run isn't supported, yet.

Composer-Version-Check-Plugin

  1. vinkla/climb - https://github.com/vinkla/climb

Climb is a "Composer version manager tool" inspired by npm-check-updates.

It shows the outdates package version and indicates "upgrades" to latest versions.

Solution 2 - Php

Since version 1.1 of Composer there is the composer outdated command. With composer outdated --direct only your direct dependencies are taken into account.

Solution 3 - Php

To complete @jens-a-koch response, get any dependency update:

composer outdated

or get only direct dependencies from your composer.json:

composer outdated -D

https://getcomposer.org/doc/03-cli.md#outdated

> outdated > > The outdated command shows a list of installed packages that have > updates available, including their current and latest versions. This > is basically an alias for composer show -lo. > > The color coding is as such: > > * green (=): Dependency is in the latest version and is up to date. > * yellow (~): Dependency has a new version available that includes backwards compatibility breaks according to semver, so upgrade when you can but it may involve work. > * red (!): Dependency has a new version that is semver-compatible and you should upgrade it. > > Options > > * --all (-a): Show all packages, not just outdated (alias for composer show -l). > * --direct (-D): Restricts the list of packages to your direct dependencies. > * --strict: Returns non-zero exit code if any package is outdated. > * --minor-only (-m): Only shows packages that have minor SemVer-compatible updates. > * --format (-f): Lets you pick between text (default) or json output format.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionStefano MtangooView Question on Stackoverflow
Solution 1 - PhpJens A. KochView Answer on Stackoverflow
Solution 2 - PhpXatooView Answer on Stackoverflow
Solution 3 - PhpLitoView Answer on Stackoverflow