J'ai cette ligne dans mon fichier composer.json:
"require": {
...
"friendsofsymfony/user-bundle": "~2.0@dev",
...
},
Qu'est-ce que le tilde ~
dans ~2.0@dev
signifie exactement? Est-ce un espace réservé et doit toujours aller chercher les subversions comme 1.2.0
, 2.2.0
, 3.2.0
etc? Cela n'a pas de sens (et serait fait par le *
joker).
Le documentation composer.json ne dit rien du tilde.
Je pose la question parce que je viens de lire à propos d'un problème de sécurité sur le blog de Symfony et ils recommandent de passer à la version 1.3.3. Mais trouver la version de FOSUserBundle n’est pas si facile (je n’ai pas pu trouver un fichier contenant la version).
Tilde signifie la prochaine version significative . Dans votre cas, cela équivaut à >= 2.0, < 3.0
.
L’explication complète se trouve à page de la documentation sur la plage de versions Tilde :
Le
~
L’opérateur est mieux expliqué par l’exemple suivant:~1.2
est équivalent à>=1.2 <2.0.0
, tandis que~1.2.3
est équivalent à>=1.2.3 <1.3.0
.Une autre façon de voir les choses est d'utiliser
~
spécifie une version minimale, mais permet au dernier chiffre spécifié d'augmenter.
Le commentaire ci-dessous de Seldeak est une simple explication sommaire de la documentation de Composer.
L'opérateur Tilde
est utile pour les projets qui modifient leurs bibliothèques à l'aide de semantic versioning
schéma.
Semantic versioning
est plus une ligne directrice que le next significant release
.
Pour Composer, cet opérateur signifie autoriser les versions mineures (pouvant inclure des correctifs) sans autoriser une version majeure (pouvant ne pas être compatible avec les versions antérieures) lors de l'installation et mise à jour .
Par exemple: ~4.1
autorisera les versions du projet >=4.1
mais <5.0
.
Le tilde ~
dans ~2.0@dev
signifie exactement monter dans la version immédiate:
Par exemple:
Si nous avons ~2.0@dev
il passe immédiatement à la prochaine version => ~2.x@dev