Ich habe diese Zeile in meiner Datei composer.json:
"require": {
...
"friendsofsymfony/user-bundle": "~2.0@dev",
...
},
Was bedeutet die Tilde ~
in ~2.0@dev
genau bedeuten? Ist das ein Platzhalter und wird immer holen die Umstürze wie 1.2.0
, 2.2.0
, 3.2.0
und so weiter? Macht keinen Sinn (und würde von der *
Wildcard gemacht werden).
Die composer.json-Dokumentation sagt nichts über die Tilde aus.
Ich frage, weil ich gerade im Symfony-Blog über ein Sicherheitsproblem gelesen habe und sie empfehlen, auf Version 1.3.3 zu aktualisieren. Es ist jedoch nicht so einfach, die Version von FOSUserBundle herauszufinden (ich konnte keine Datei finden, die die Version enthält).
quelle
~2.2
bedeutet 2.2 und jedes 2.x, wobei x 2 oder höher ist.~2.1.3
auf dem ist auch jedes 2.1.x, wobei x 3 oder höher ist.~2.0
anders als2.*
? Ist es nur nützlich, wenn die letzte Ziffer nicht 0 ist?Tilde
Der Operator ist nützlich für Projekte, die ihre Bibliotheken mithilfe dessemantic versioning
Schemas versionieren.Semantic versioning
ist eher eine Richtlinie, die nach dem bewertetnext significant release
.Für Composer bedeutet dieser Operator, dass kleinere Versionen (die Patches enthalten können) zugelassen werden, ohne dass während der Installation und Aktualisierung eine Hauptversion (die möglicherweise nicht abwärtskompatibel ist) zugelassen wird .
Zum Beispiel:
~4.1
das Projekt Versionen erlauben>=4.1
aber<5.0
.Credits: http://dwellupper.io/post/37/using-tilde-range-operator-to-resolve-dependency-version-in-composer-php
quelle
Die Tilde
~
in~2.0@dev
genau Mittel gehen zur sofortigen Ausführung bis:Zum Beispiel :
Wenn wir es haben
~2.0@dev
, geht es sofort zur nächsten Version=> ~2.x@dev
quelle