Eu tenho esta linha em meu arquivo composer.json:
"require": {
...
"friendsofsymfony/user-bundle": "~2.0@dev",
...
},
O que significa exatamente o til ~
em ~2.0@dev
? É que um espaço reservado e deve sempre buscar as subversões, como 1.2.0
, 2.2.0
, 3.2.0
e assim por diante? Não faz sentido (e seria feito pelo *
curinga).
A documentação composer.json não diz nada sobre o til.
Estou perguntando porque acabei de ler sobre um problema de segurança no blog do Symfony e eles recomendam atualizar para a versão 1.3.3. Mas descobrir a versão do FOSUserBundle não é tão fácil (não consegui encontrar um arquivo que contenha a versão).
fonte
~2.2
significa 2,2 e qualquer 2.x onde x é 2 ou superior.~2.1.3
no também é qualquer 2.1.x onde x é 3 ou superior.~2.0
diferente de2.*
? Só é útil se o último dígito não for 0?Tilde
operador é útil para projetos que criam versões de suas bibliotecas usando osemantic versioning
schema.Semantic versioning
é mais uma diretriz que avalia onext significant release
.Para o Composer, este operador significa permitir lançamentos menores (que podem incluir patches) sem permitir uma versão principal (que pode não ser compatível com versões anteriores) durante a instalação e atualização .
Por exemplo:
~4.1
permitirá versões de projeto,>=4.1
mas<5.0
.Créditos: http://dwellupper.io/post/37/using-tilde-range-operator-to-resolve-dependency-version-in-composer-php
fonte
O til
~
em~2.0@dev
exatamente média a subir para a versão imediata:Por exemplo :
Se tivermos
~2.0@dev
, vai para a próxima versão imediata=> ~2.x@dev
fonte