Как заставить Composer загрузить последнюю фиксацию в главной ветке из GitHub для пакета?
Я пытаюсь заставить Composer загрузить последнюю фиксацию для пакета Behat/MinkSelenium2Driver. В этом конкретном репо есть только ведущая ветвь. Я пробовал каждый метод, о котором я могу думать, включая удаление файлов и возможность вернуть их обратно, чтобы заставить его работать, но это не так.
Как мне заставить его вытащить последние исправленные файлы или, по крайней мере, те из списка фиксации, который я приведу ниже?
В частности, я хочу получить эту фиксацию:
https://github.com/Behat/MinkSelenium2Driver/commit/2e73d8134ec8526b6e742f05c146fec2d5e1b8d6
Спасибо,
Патрик
Ответы
Ответ 1
Существует только один способ захватить головку репозитория:
"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"
Поскольку этот репозиторий фактически сглаживает главную ветвь как 1.1.x-dev, это также будет работать без минимальной стабильности, затрагивающей все остальные пакеты:
"require": { "behat/mink-selenium2-driver" : "1.1.*@dev" }
Ответ 2
Ни один из вышеперечисленных параметров не работал до тех пор, пока я не удалю файл composer.lock.
Как только я удалил файл composer.lock, он вытащил последнюю фиксацию, не указав ничего, кроме имени ветки. (dev-master в моем случае)
Итак, теперь я думаю, что буду делать:
1- удалить файл composer.lock.
2- удалить папку требований. (устаревшие файлы)
3-композитор.
Ответ 3
Просто укажите ведущую ветвь:
composer require --dev behat/mink-selenium2-driver:dev-master
PS: --dev - это просто указать его требование к тесту/разработке, возможно, что вы хотите.
Ответ 4
В нашем случае ни один из предыдущих ответов не работал. Это оказалось чем-то простым:
Композитор использует атрибут репозиториев ROOT composer.json
https://getcomposer.org/doc/04-schema.md#repositories
В нашем случае мы пытались получить последнюю фиксацию от dev-master одной из наших транзитивных зависимостей. Была проблема с крючками между github и packagist, которые препятствовали нормальной работе, и нам потребовалось пару часов, чтобы понять, что мы редактировали неправильный композитор .json(тот, который из нашей библиотеки, который несет зависимость), а не топ -level composer.json, который мы устанавливали.
Ответ 5
Я считаю, что лучший ответ - оставить минимальную стабильность при стабильной.
"minimum-stability" : "stable"
Затем в разделе "require" укажите "dev-master @dev",
"require" : {
"ResistFascism" : "[email protected]"
}
Или вы можете делать то, что я делаю, и не использовать мастера, а создавать собственные ветки. Поэтому вместо запуска пакета ResistFascism из главной ветки укажите ветку dev в вашем composer.json.
"require" : {
"ResistFascism" : "[email protected]"
}
Мне нравится сохранять все мои внешние пакеты на стабильных версиях, потому что это то, что я запускаю на производстве, но я часто управляю своими собственными пакетами в версиях dev. Но вы тоже можете использовать мастера. Это личное предпочтение.
Ответ 6
Чтобы загрузить последнюю версию репо, я обычно использую:
composer update behat/mink-selenium2-driver
Это обновит ваш composer.lock с помощью последней доступной ссылки фиксации.