Откройте для себя последние версии пакетов Composer, когда зависимости заблокированы

Допустим, у меня есть composer.json файл с заблокированными зависимостями:

{
"require" : {
"zendframework/zendframework" : "2.4.2"},
"require-dev": {
"phpunit/phpunit": "4.6.6"}
}

Я хочу сделать это, потому что хотел бы обновить зависимости вручную, поэтому я не буду в ситуации, когда моя сборка завершится неудачно или у других разработчиков возникнут проблемы, которых у меня нет, потому что Composer установил другую версию пакета.

Есть ли хороший способ использовать Composer для отображения всех новых версий заблокированных пакетов, возможно, что-то вроде composer discoverгде я получаю вывод: zendframework/zendframework заблокирован в версии 2.4.2 (или же 2.4.* или что угодно), но есть версии 2.5.0, 2.5.1 и 2.6.0 *?

Может ли существующая команда предоставить такую ​​информацию?


В основном, я больше о новых версиях, которые мне показывают, поэтому я могу знать, какую зависимость обновлять вручную. Совершать composer.lock не совсем решение, потому что это не покажет мне, что обновлять (и мой composer.json заблокирован в определенных версиях, поэтому composer.lock не будет отличаться в любом случае).

5

Решение

Чтобы сделать то, что вы хотите, совершите composer.lock файл и убедитесь, что все работает composer install установить депс. Таким образом, у всех будет одинаковая версия / коммит каждого пакета.

Вы можете запустить composer update чтобы получить новые версии. Это обновит пакеты и composer.lock файл, который вы можете зафиксировать и отправить, чтобы у всех снова были одинаковые версии (после запуска composer install).

1

Другие решения

Самый простой способ, вероятно, просто запустить:

composer outdated

и получить список устаревших зависимостей. Вывод выглядит примерно так:

введите описание изображения здесь

1

Это не совсем то, что вы предлагаете. Но ты можешь бежать

composer update --dry-run

чтобы увидеть, что происходит, когда композитор обновляет ваши зависимости. Это показывает только последнюю версию, до которой пакет может быть обновлен, но не промежуточные версии:

composer update --dry-run
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Updating symfony/translation (v2.5.5) to symfony/translation (v2.5.11)

- Updating symfony/security-core (v2.5.5) to symfony/security-core (v2.5.11)

- Updating symfony/routing (v2.5.5) to symfony/routing (v2.5.11)

- Updating symfony/process (v2.5.5) to symfony/process (v2.5.11)

- Updating symfony/http-foundation (v2.5.5) to symfony/http-foundation (v2.5.11)
0

Как уже говорили другие, композитор делает то, что вы говорите, и будет только install версии, указанные в файле .lock, или update на новые версии (как указано в пределах диапазона данной версии).

Существуют внешние сервисы веб-сайта, которые сообщат вам, что пакеты были обновлены, такие как: Versioneye.com. Вы можете следить за несколькими пакетами, и он сообщит вам, когда какой-либо из них был обновлен, так что вы можете обновить файл композитора по своему усмотрению.

0

Чтобы показать последнюю версию пакетов, используйте show с -l/--latest параметр, например

composer show -l

-l, --latest Показать последнюю версию


Чтобы увидеть дерево зависимостей, используйте -t/--tree параметр, например

composer show -t

-t, --tree Перечислите зависимости в виде дерева


Чтобы получить список всех доступных версий для данного пакета, запустите:

composer show -a zendframework/zendframework

Примечание: изменить zendframework/zendframework с вашим именем пакета.


Заметки:

  • Для глобального добавить global сразу после composer,
  • Для получения справки выполните: composer global help show,
0
По вопросам рекламы [email protected]