Mam ten wiersz w moim pliku composer.json:
"require": {
...
"friendsofsymfony/user-bundle": "~2.0@dev",
...
},
Co oznacza tylda ~
w ~2.0@dev
dokładnie oznacza? Jest to, że zastępczy i powinien zawsze pobierać subversions jak 1.2.0
, 2.2.0
, 3.2.0
i tak dalej? Nie ma sensu (i zostanie zrobione przez *
symbol wieloznaczny).
Dokumentacja composer.json nie mówi nic o tyldie.
Pytam, bo właśnie przeczytałem o problemie bezpieczeństwa na blogu Symfony i zalecają aktualizację do wersji 1.3.3. Ale ustalenie wersji FOSUserBundle nie jest takie łatwe (nie mogłem znaleźć pliku, który zawiera tę wersję).
źródło
~2.2
oznacza 2.2 i dowolne 2.x, gdzie x wynosi 2 lub więcej.~2.1.3
na jest również dowolne 2.1.x, gdzie x to 3 lub więcej.~2.0
różni od2.*
? Czy jest to przydatne tylko wtedy, gdy ostatnia cyfra nie jest 0?Tilde
operator jest przydatny dla projektów, które wersjonują swoje biblioteki za pomocąsemantic versioning
schematu.Semantic versioning
jest bardziej wskazówką, która ocenia się zgodnie znext significant release
.W przypadku Composera ten operator oznacza zezwolenie na mniejsze wersje (które mogą zawierać poprawki) bez zezwolenia na wersję główną (która może nie być kompatybilna wstecz) podczas instalacji i aktualizacji .
Na przykład:
~4.1
zezwoli na wersje projektu,>=4.1
ale<5.0
.Kredyty: http://dwellupper.io/post/37/using-tilde-range-operator-to-resolve-dependency-version-in-composer-php
źródło
Tylda
~
w~2.0@dev
dokładnie średnią iść w górę do najbliższej wersji:Na przykład :
Jeśli mamy
~2.0@dev
, przechodzi do następnej wersji=> ~2.x@dev
źródło