it-swarm.com.ru

Как заставить Composer загрузить последний коммит в ветке master с GitHub для пакета?

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

Как мне получить его, чтобы получить последние зафиксированные файлы или, по крайней мере, те из коммита, которые я перечислю ниже

В частности, я хочу получить этот коммит: https://github.com/Behat/MinkSelenium2Driver/commit/2e73d8134ec8526b6e742f05c146fec2d5e1b8d6

Спасибо, Патрик

32
Patrick

Есть только один способ получить заголовок хранилища: 

"require": { "behat/mink-Selenium2-driver" : "dev-master" }
"minimum-stability": "dev"

Ну да ладно, как минимум двумя способами:

"require": { "behat/mink-Selenium2-driver" : "dev-master as 1.1.x-dev" }
"minimum-stability": "dev"

Вероятно, по крайней мере три способа:

"require": { "behat/mink-Selenium2-driver" : "dev-master#2e73d8134ec8526b6e742f05c146fec2d5e1b8d6" }
"minimum-stability": "dev"

Поскольку этот репозиторий фактически использовал псевдоним master как 1.1.x-dev, это также будет работать без минимальной стабильности, влияющей на все остальные пакеты:

"require": { "behat/mink-Selenium2-driver" : "1.1.*@dev" }
49
Sven

Ни один из перечисленных выше вариантов не работал, пока я не удалил файл composer.lock. 

После того как я удалил файл composer.lock, он извлек последнюю фиксацию, не указывая ничего, кроме имени ветви. (dev-master в моем случае)

Итак, с этого момента, похоже, я буду делать: 

1 - удалить файл composer.lock.
2 - удалить папку с требованиями. (устаревшие файлы)
3- композитор установить. 

9
Eduardo Chongkan

Просто укажите основную ветку:

composer require --dev behat/mink-Selenium2-driver:dev-master

PS: --dev просто указывает, что это требование тестирования/разработки, это, вероятно, то, что вы хотите.

5
Berend de Boer

В нашем случае ни один из предыдущих ответов не работал. Оказалось что-то простое:

Composer использует только атрибут repositories ROOT composer.json

https://getcomposer.org/doc/04-schema.md#repositories

В нашем случае мы пытались получить последний коммит от dev-master одной из наших транзитивных зависимостей. Была некоторая проблема с перехватами между github и packagist, которые мешали ему работать как обычно, и нам потребовалось несколько часов, чтобы понять, что мы редактируем неправильный composer.json (тот, что из нашей библиотеки, который несет зависимость) вместо верхнего Уровень composer.json, который мы устанавливали.

0
lmsurprenant

Я думаю, что лучший ответ - оставить минимальную стабильность стабильной.

"minimum-stability" : "stable"

Затем в разделе «требуют» укажите «dev-master @ dev»

"require" : {
  "ResistFascism" : "[email protected]"
}

Или вы можете делать то, что я делаю, и не использовать мастер, а создавать собственные ветви. Поэтому вместо запуска пакета ResistFascism из основной ветки укажите ветку dev в вашем composer.json.

"require" : {
  "ResistFascism" : "[email protected]"
}

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

0
Halfstop