Что означает Тильда ( ~ ) в моем композиторе.файл 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 102

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.

кредиты: http://dwellupper.io/post/37/using-tilde-range-operator-to-resolve-dependency-version-in-composer-php