Development Standards - Semantic Versioning
Guide
定義
語意化版本號由以下三部分構成:
- 主版本號 (Major):當發生不向後相容的變更時增加。
- 次版本號 (Minor):當增加向下相容的新功能時增加。
- 修訂號 (Patch):當修復向下相容的問題時增加。
例如:1.2.3
中,1
是主版本號,2
是次版本號,3
是修訂號。
預發布版本
預發布版本用於標示還不夠穩定的版本,通常是開發、測試中的版本,例如 alpha
或 beta
階段。這些標記常用於給開發者或測試者試用,在正式發布之前捕捉可能的問題。
語法上,預發布版本會附加在主版本號、次版本號、修訂號之後,以連字號 (-
) 分隔,常見的標記包括:
- alpha:表示非常早期、初步的版本,可能還不完整。
- beta:表示功能已基本完成,正在進行測試和改進的版本。
- rc (Release Candidate):表示接近正式發布的候選版本,可能只需要進行少量修改。
例如:
1.2.3-alpha
:表示這是版本1.2.3
的一個 alpha 預發布版本。1.2.3-beta.1
:表示這是版本1.2.3
的第一個 beta 預發布版本。1.2.3-rc.2
:表示這是版本1.2.3
的第二個候選版本。
版本範圍 (以 npm 為例)
波浪符號 (
~
)
允許更新修訂號,但不更新次版本號。
例如,~1.2.3
表示可以更新到<1.3.0
,允許的版本包括1.2.4
、1.2.5
等。插入符號 (
^
)
允許更新次版本號和修訂號,但不更改主版本號(0
版本除外)。
例如,^1.2.3
表示可以更新到<2.0.0
,允許的版本包括1.3.0
、1.4.5
等。比較符號 (
<
,<=
,>
,>=
)
用於指定版本的上限或下限。
例如,<2.0.0
表示可以使用比2.0.0
更早的所有版本。星號 (
*
)
匹配任意版本。
例如,1.2.*
表示匹配所有1.2.x
的版本,如1.2.1
、1.2.9
等。範圍符號 (
-
)
指定一個範圍的版本。
例如,1.2.3 - 2.3.4
表示所有從1.2.3
到2.3.4
的版本。或運算符 (
||
)
允許多個版本範圍。
例如,1.2.3 || 2.0.0
表示可以使用1.2.3
或2.0.0
。