Что означает Тильда ( ~ ) в моем композиторе.файл json?
у меня есть эта строка в мой композитор.JSON-файл:
"require": {
...
"friendsofsymfony/user-bundle": "~2.0@dev",
...
},
что делает Тильда ~
in ~2.0@dev
конкретно имеешь ввиду? Является ли это заполнителем и всегда будет получать подрывные действия, такие как 1.2.0
,2.2.0
,3.2.0
и так далее? Не имеет смысла (и будет сделано *
подстановки).
The композитор.документация json ничего не говорит о Тильде.
Я спрашиваю, потому что я только что прочитал о проблема безопасности в блог на Symfony и они рекомендуют обновить до версии 1.3.3. Но выяснить версию FOSUserBundle не так просто (я не смог найти файл, содержащий версию).
2 ответа:
Тильда означает следующий значительный релиз. В вашем случае, это эквивалентно
>= 2.0, < 3.0
.полное объяснение находится в страница документов диапазона версий Тильды:
The
~
оператор лучше всего объяснить на примере:~1.2
эквивалентно>=1.2 <2.0.0
, в то время как~1.2.3
эквивалентно>=1.2.3 <1.3.0
.другой способ взглянуть на это заключается в том, что с помощью
~
задает минимальную версия, но последняя цифра указано идти вверх.комментарий Seldeak ниже-это простое краткое объяснение документации композитора.
Tilde
оператор полезен для проектов, которые версии своих библиотек, используяsemantic versioning
схема.
Semantic versioning
- это скорее ориентир, который оцениваетnext significant release
.для Composer этот оператор означает разрешить незначительные выпуски (которые могут включать патчи), не разрешая основную версию (которая может быть не обратно совместима) в то время как установка и обновление.
например:
~4.1
позволит версии проекта>=4.1
но<5.0
.