Qué significa la tilde ( ~ ) en mi compositor.archivo json?
Tengo esta línea en mi compositor.archivo json:
"require": {
...
"friendsofsymfony/user-bundle": "~2.0@dev",
...
},
¿Qué significa exactamente la tilde ~
en ~2.0@dev
? Es que un marcador de posición y siempre buscará las subversiones como 1.2.0
, 2.2.0
, 3.2.0
¿y así sucesivamente? No tiene sentido(y se haría con el comodín *
).
El compositor .json documentation 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).
2 answers
Tilde significa siguiente liberación significativa. En su caso, es equivalente a >= 2.0, < 3.0
.
La explicación completa está en Tilde Version Range docs page :
El operador
~
se explica mejor con un ejemplo:~1.2
es equivalente a>=1.2 <2.0.0
, mientras que~1.2.3
es equivalente a>=1.2.3 <1.3.0
.Otra forma de verlo es que usando
~
especifica un mínimo versión, pero permite que el último dígito especificado suba.
El siguiente comentario de Seldeak es una simple explicación de resumen de la documentación del Compositor.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-07 13:45:55
Tilde
operator es útil para los proyectos que versionan sus bibliotecas usando el esquema semantic versioning
.
Semantic versioning
es más bien una guía que evalúa a la next significant release
.
Para Composer, este operador significa permitir versiones menores (que pueden incluir parches) sin permitir una versión mayor (que puede no ser compatible con versiones anteriores) mientras instala y actualiza.
Por ejemplo: ~4.1
permitirá versiones del proyecto >=4.1
pero <5.0
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-12 13:01:52