В моем файле composer.json есть такая строка:
"require": {
...
"friendsofsymfony/user-bundle": "~2.0@dev",
...
},
Что делает тильды ~
в ~2.0@dev
точности означает? Это заполнитель и всегда будет получать за диверсии , как 1.2.0
, 2.2.0
, 3.2.0
и так далее? Не имеет смысла (и будет сделано с помощью *
подстановочного знака).
Документация composer.json ничего не говорит о тильде.
Я спрашиваю, потому что я только что прочитал о проблеме безопасности в блоге Symfony, и они рекомендуют перейти на версию 1.3.3. Но выяснить версию FOSUserBundle не так просто (я не смог найти файл, содержащий эту версию).
источник
~2.2
означает 2.2 и любой 2.x, где x равно 2 или выше.~2.1.3
на также любой 2.1.x, где x равно 3 или выше.~2.0
отличается от2.*
? Это полезно, только если последняя цифра не 0?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
источник
Тильда
~
в~2.0@dev
точности среднего значения для перехода на немедленную версию:Например :
Если он у нас есть, сразу
~2.0@dev
перейдет к следующей версии=> ~2.x@dev
источник