Маркировка обновлений пакета композитора
-
20-12-2019 - |
Вопрос
У меня есть пакет композитора PHP, который требует "illuminate/support":"4.1.*"
для использования с интеграцией Laravel 4.1.У меня есть новый проект Laravel, версия которого сейчас 4.2.*.Я считаю, что теперь мне нужно обновить пакет, чтобы он требовал "illuminate/support":"4.2.*"
(из-за ошибок композитора).Как лучше всего сохранить поддержку Laravel v4.1 и v4.2 в пакете?
Вот мой композиторский пакет composer.json
файл:
{
"name": "appointedd/appointedd-php",
"description": "",
"authors": [
{
"name": "Billy Jones",
"email": "billy@appointedd.com"
}
],
"require": {
"php": ">=5.3.0",
"illuminate/support": "4.1.*",
"guzzlehttp/guzzle": "~4.0"
},
"autoload": {
"psr-0": {
"Appointedd\\Appointedd": "src/"
}
},
"minimum-stability": "stable"
}
В настоящее время он помечен как версия 0.0.3
.Должен ли я обновить composer.json
файлу требуется версия 4.2.* и пометьте его 0.1.0
или использовать более значимое имя?
Решение
Вопрос в том, какие различия между 4.1 и 4.2, что нужно поддерживать по-разному.Семантическое управление версиями должно гарантировать, что в более новых второстепенных версиях будут представлены только BC-совместимые функции и исправлены ошибки.
Что касается вашего вопроса, вы можете включить диапазон версий в свой composer.json
файл, как описано здесь:
Диапазон> = 1,0> = 1,0, <2,0> = 1,0, <1,1 | > = 1.2, используя операторы сравнения, вы можете указать диапазоны допустимых версий.Допустимые операторы>,> =, <, <=,! =.Вы можете определить несколько диапазонов, разделенных запятой, которая будет рассматриваться как логическая и.Символ трубы | будет рассматриваться как логичный или.AND имеет более высокий приоритет, чем OR.
В вашей ситуации это будет что-то вроде:
"illuminate/support": ">=4.1.0,<4.3",