Tengo esta línea en mi archivo composer.json:
"require": {
...
"friendsofsymfony/user-bundle": "~2.0@dev",
...
},
¿Qué hace la tilde ~
en ~2.0@dev
decir exactamente? Es que un marcador de posición y siempre será buscar a los subversiones como 1.2.0
, 2.2.0
, 3.2.0
y así sucesivamente? No tiene sentido (y lo haría el *
comodín).
La documentación de composer.json no dice nada sobre la tilde.
Lo pregunto porque acabo de leer sobre un problema de seguridad en el blog de Symfony y recomiendan actualizar a la versión 1.3.3. Pero averiguar la versión de FOSUserBundle no es tan fácil (no pude encontrar un archivo que contenga la versión).
fuente
~2.2
significa 2.2 y cualquier 2.x donde x es 2 o superior.~2.1.3
en el es también cualquier 2.1.x donde x es 3 o superior.~2.0
diferencia de2.*
? ¿Solo es útil si el último dígito no es 0?Tilde
El operador es útil para los proyectos que versionan sus bibliotecas usando elsemantic versioning
esquema.Semantic versioning
es más una pauta que evalúa elnext significant release
.Para Composer, este operador significa permitir versiones menores (que pueden incluir parches) sin permitir una versión principal (que puede no ser compatible con versiones anteriores) durante la instalación y actualización .
Por ejemplo:
~4.1
permitirá versiones del proyecto>=4.1
pero<5.0
.Créditos: http://dwellupper.io/post/37/using-tilde-range-operator-to-resolve-dependency-version-in-composer-php
fuente
La tilde
~
en~2.0@dev
exactamente significa subir para la versión inmediata:Por ejemplo :
Si lo tenemos
~2.0@dev
, pasa a la próxima versión inmediata.=> ~2.x@dev
fuente