语义化版本(SemVer)简单总结
核心规则
版本号格式: 主版本号.次版本号.修订号 (X.Y.Z)
-
主版本号 X:
-
有 不兼容的 API 修改 时递增
-
递增时,次版本号和修订号清零
-
-
次版本号 Y:
-
有 向下兼容的新功能 或 弃用 API 时递增
-
递增时,修订号清零
-
-
修订号 Z:
-
有 向下兼容的问题修复 时递增
-
-
先行版本号(如
1.0.0-alpha):-
用
-标识,表示不稳定版本 -
比正式版优先级低
-
-
构建元信息(如
1.0.0+20130313144700):-
用
+标识,不影响优先级排序
-
版本比较规则
-
优先顺序:主版本号 > 次版本号 > 修订号 > 先行版本号
-
数字按数值比较,字母按 ASCII 排序
-
例子:
1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-beta < 1.0.0
常见问题要点
-
0.y.z:初始开发阶段,API 不稳定
-
1.0.0:公共 API 确立后开始
-
快速迭代:0.y.z 阶段可频繁改动
-
弃用功能:先标记并保留至少一个次版本,再在主版本中移除
-
错误发布:不要修改已发布版本,需发布新版本修正
-
“v1.2.3”:语义化版本是
1.2.3,v只是常见前缀
核心价值
-
解决 依赖地狱(版本冲突、锁死)
-
明确表达 版本更新的意图和兼容性
-
提升 包管理和升级的可靠性
浙公网安备 33010602011771号