major.minor.patch-pre-release
-
1.2.3 - 2.3.4
:= >=1.2.3 <=2.3.4
x
| X
| *
*
:= >=0.0.0
1.x
:= >=1.0.0 <2.0.0-0
1.2.*
:= >=1.2.0 <1.3.0-0
~
若有指定 minor,則只允許最高到 patch 的變化 (不允許功能性新增)。
若無指定 minor,則只允許最高到 minor 的變化 (不允許不相容的 API 修改)。
~1.2.3
:= >=1.2.3 <1.(2+1).0
:= >=1.2.3 <1.3.0
~1.2
:= >=1.2.0 <1.(2+1).0
:= >=1.2.0 <1.3.0
(same as 1.2.x
)~1
:= >=1.0.0 <(1+1).0.0
:= >=1.0.0 <2.0.0
(same as 1.x
)^
只允許「指定版本」到 (不含)「最左側非 0 數字 +1 的版本」之間的版本
(不允許突破性更新 breaking change)。
^1.2.3
:= >=1.2.3 <2.0.0
^0.2.3
:= >=0.2.3 <0.3.0
^0.0.3
:= >=0.0.3 <0.0.4
Python 的版號又有一些更詳細的規定,詳見 version-specifiers。
正式版本前的非穩定版本。
版本後的小修正,其和軟體運作本身無關,比如 Release Notes 的修正。
開發階段的版號
通常是針對特定平台的變種版本,即便如此,它們也必須與原版本 API 兼容。
比如 torch==2.6.0
(使用 CPU 的版本) 和 torch==2.6.0+cu124
(針對使用 CUDA 的版本)。