composer: Comment trouver la version exacte d'un package?


103

Supposons que j'écris une bibliothèque A, qui dépend d'une autre bibliothèque, monolog par exemple.

Je veux installer la dernière version de monolog, donc je viens de mettre ceci dans composer.json:

{
    "require": {
        "monolog/monolog": "*.*.*"
    }
}

Puis je cours $ php composer.phar install.

Je m'attendais à trouver la version installée, dans composer.lock, mais ce n'est pas là:

{
    "hash": "d7bcc4fe544b4ef7561918a8fc6ce009",
    "packages": [
        {
            "package": "monolog/monolog",
            "version": "dev-master",
            "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7"
        }
    ],
    "packages-dev": null,
    "aliases": [

    ],
    "minimum-stability": "dev",
    "stability-flags": [

    ]
}

J'ai besoin de la version parce que je veux lier ma bibliothèque à un ensemble spécifique de versions, par exemple: Si je trouve que la version est 1.3.5, dans mon composer.json je voudrais mettre quelque chose comme ceci:

    "require": {
        "monolog/monolog": "1.3.*"
    }

Des idées?

Réponses:


170

Je sais que c'est une vieille question, mais ...

composer.phar show

Affiche tous les packages actuellement installés et leurs informations de version. (Cela n'apparaissait dans les versions précédentes de Composer que lors de l'utilisation de l' -ioption désormais obsolète .)

Pour voir plus de détails, spécifiez également le nom du package:

composer.phar show monolog/monolog

Cela montrera beaucoup de choses, y compris le hachage MD5 de validation, l'URL source, le type de licence, etc.


11
php composer.phar show -aet php composer.phar show package/namesont également utiles.
évêque

1
Pour les dev-masterpackages, cela est utile, car il affiche également le hachage de validation. Vous devez donc aller sur GitHub, trouver ce hachage de validation, vérifier la date, puis trouver la balise avec la date la plus proche avant cela, pour vraiment savoir quelle "version" vous utilisez
andrewtweber

2
il peut également être trouvé dans le fichier composer.lock.
Hafiz

41

Vous pouvez utiliser un spectacle de compositeur comme ceci:

composer show package/name

14

Si vous êtes simplement intéressé par la sortie en tant que numéro de version du package comme: 1.7.5 ou 1.x-dev ou dev-master .

Extrait de console Linux:

composer show 'monolog/monolog' | grep 'versions' | grep -o -E '\*\ .+' | cut -d' ' -f2 | cut -d',' -f1;

5

Techniquement, "dev-master" est la version exacte que vous avez fini par utiliser là-bas. C'est la branche de développement, et donc la toute dernière version.

Le meilleur endroit pour rechercher les versions disponibles pour les packages de composer est Packagist, car c'est là que composer charge les versions lorsque vous installez les packages. Les versions monolog sont répertoriées sur http://packagist.org/packages/monolog/monolog .


2

Vous pouvez utiliser show all, spécialement lorsque vous n'avez pas de fichier package.json, obtenir les packages disponibles sur packagist.org:

composer show "monolog/monolog" --all

Vous pouvez également spécifier des versions

composer show "monolog/monolog" 1.* --all
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.