版本命名規(guī)則:
[name].x.y.z-[state]
name為可選字段,一般為v,表示 version
x.y.z為各版本的序號,遵循語義化版本命名規(guī)范
實際上基于此規(guī)范,不應該在版本前出現 name 字段.
state可選字段,表示版本狀態(tài),例如b表示 beta 測試版,其他常見狀態(tài),后有詳述
0.y.z表示開發(fā)階段乐设,一切可能隨時改變,非穩(wěn)定版。
1.0.0界定此版本為初始穩(wěn)定版,后面的一切更新都基于此版本進行修改嚷那。
版本限定的語法簡述為為[范圍描述]<版本號描述>
范圍描述,可選,必須配和版本描述確定范圍,無法獨立存在
<小于某一版本號
<=小于等于某一版本號
>大于某一版本號
>=大于等于某一版本號
=等于某一版本號,沒有意義和直接寫該版本號一樣
~基于版本號描述的最新補丁版本
^基于版本號描述的最新兼容版本
-某個范圍,他應該出現在兩個版本描述中間,實際上語法應為<版本描述>-<版本描述>,寫在此處為了統(tǒng)一
嚴格來講對~,^的表述需要結合具體的包管理工具和版本號規(guī)則來確定.但是對于一般使用記住如下原則.
^是確保版本兼容性時,默認對次版本號的限定約束
~是確保版本兼容性時,默認對補丁號的約束
利用^,~的意義在于確保工具包對依賴版本的兼容性,排除主版本更迭,造成依賴失效的可能.
版本描述:
*通配符,類似glob模式*
x,X約等于*號,通常用于次版本和補丁的通配.
0.x警惕這種版本,說明該依賴還未穩(wěn)定(如果它遵守語義化命名的話),此外由于0.x版本隨時可能改變,此時^,~的都表示為對補丁版的限制.
https://segmentfault.com/a/1190000011368506
https://segmentfault.com/q/1010000006210480/a-1020000006210930
http://docs.phpcomposer.com/01-basic-usage.html#Package-Versions