Композитор игнорирует composer.json определенного коммита

Я пытаюсь использовать очень конкретную фиксацию из репозитория:

"monolog/monolog": "dev-master#7d20351afc85aa23c5795309c9984a1e93d81c27"

Что происходит, так это то, что я получаю следующее сообщение об ошибке:

Problem 1
    - monolog/monolog dev-master requires php ^7.1 -> your HHVM version does not satisfy that requirement.
    - monolog/monolog dev-master requires php ^7.1 -> your HHVM version does not satisfy that requirement.
    - Installation request for monolog/monolog dev-master#7d20351afc85aa23c5795309c9984a1e93d81c27 -> satisfiable by monolog/monolog[dev-master].

Что было бы разумно, если бы я указывал только на master, поскольку для его composer.json требуется ^ 7.1 php. Однако версия конкретный, которая мне нужна, не нужна. Я предполагаю, что он проверяет master, а не то, что я ему даю. Как я могу обойти эту проблему?

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

solarc 03.07.2018 01:16

Здесь возникла проблема: github.com/composer/composer/issues/7438. Между тем, если кто знает, как это исправить, было бы неплохо узнать.

user3081519 03.07.2018 01:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это ожидается и задокументировано:

While this is convenient at times, it should not be how you use packages in the long term because it comes with a technical limitation. The composer.json metadata will still be read from the branch name you specify before the hash. Because of that in some cases it will not be a practical workaround, and you should always try to switch to tagged releases as soon as you can.

https://getcomposer.org/doc/articles/troubleshooting.md#i-have-locked-a-dependency-to-a-specific-commit-but-get-unexpected-results-

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

"monolog/monolog": "1.x-dev#7d20351afc85aa23c5795309c9984a1e93d81c27"

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

Я вижу сейчас. Да, старая кодовая база и устаревшая версия php усложняют задачу. Проекту 9 лет. В противном случае я бы с удовольствием использовал выпуски с тегами.

user3081519 03.07.2018 19:11

Другие вопросы по теме