composer: How to find the exact version of a package?

composer-php, dependency-management, package-managers, php

Solution

I know it's an old question, but...

composer.phar show

Will show all the currently installed packages and their version information. (This was shown in previous versions of Composer only when using the now-deprecated `-i` option.)

To see more details, specify the name of the package as well:

composer.phar show monolog/monolog

That will show many things, including commit MD5 hash, source URL, license type, etc.

Problem

Suppose I'm writing a library A, that depends on another library, monolog for instance. I want to install the latest version of monolog, so I just put this inside composer.json: ``` { "require": { "monolog/monolog": "*.*.*" } } ``` Then I run `$ php composer.phar install`. I was expecting to find the version installed, inside composer.lock, but it's not there: ``` { "hash": "d7bcc4fe544b4ef7561918a8fc6ce009", "packages": [ { "package": "monolog/monolog", "version": "dev-master", "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7" } ], "packages-dev": null, "aliases": [ ], "minimum-stability": "dev", "stability-flags": [ ] } ``` I need the version because I want to tie my library to a specific set of versions, eg: If I find the version is 1.3.5, in my composer.json I would like to put something like this: ``` "require": { "monolog/monolog": "1.3.*" } ``` Any ideas?

Original source

Related problems