Saya memiliki baris ini di file composer.json saya:
"require": {
...
"friendsofsymfony/user-bundle": "~2.0@dev",
...
},
Apa yang tilde ~
di ~2.0@dev
sebenarnya artinya? Apakah itu placeholder dan akan selalu mengambil subversions seperti 1.2.0
, 2.2.0
, 3.2.0
dan sebagainya? Tidak masuk akal (dan akan dilakukan oleh *
wildcard).
The dokumentasi composer.json tidak mengatakan apa-apa tentang tilde.
Saya bertanya karena saya baru saja membaca tentang masalah keamanan di blog Symfony dan mereka merekomendasikan untuk meningkatkan ke versi 1.3.3. Tetapi mencari tahu versi FOSUserBundle tidaklah mudah (saya tidak dapat menemukan file yang berisi versi tersebut).
sumber
~2.2
berarti 2.2 dan 2.x mana saja di mana x adalah 2 atau lebih.~2.1.3
di atas juga ada 2.1.x di mana x adalah 3 atau lebih.~2.0
bedanya dengan2.*
? Apakah hanya berguna jika digit terakhir bukan 0?Tilde
operator berguna untuk proyek yang membuat versi library mereka menggunakansemantic versioning
skema.Semantic versioning
lebih merupakan pedoman yang mengevaluasi kenext significant release
.Untuk Komposer, operator ini bermaksud mengizinkan rilis minor (yang dapat menyertakan tambalan) tanpa mengizinkan versi mayor (yang mungkin tidak kompatibel ke belakang) saat menginstal dan memperbarui .
Misalnya:
~4.1
akan mengizinkan versi proyek>=4.1
tetapi<5.0
.Penghargaan: http://dwellupper.io/post/37/using-tilde-range-operator-to-resolve-dependency-version-in-composer-php
sumber
Tilde
~
di~2.0@dev
persis berarti naik untuk versi segera:Sebagai contoh :
Jika kita sudah memilikinya
~2.0@dev
segera naik ke versi berikutnya=> ~2.x@dev
sumber