语义化版本(SemVer)简单总结

核心规则

版本号格式: 主版本号.次版本号.修订号 (X.Y.Z)

  1. 主版本号 X

    • 不兼容的 API 修改 时递增

    • 递增时,次版本号和修订号清零

  2. 次版本号 Y

    • 向下兼容的新功能弃用 API 时递增

    • 递增时,修订号清零

  3. 修订号 Z

    • 向下兼容的问题修复 时递增

  4. 先行版本号(如 1.0.0-alpha):

    • - 标识,表示不稳定版本

    • 比正式版优先级低

  5. 构建元信息(如 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.3v 只是常见前缀


核心价值

  • 解决 依赖地狱(版本冲突、锁死)

  • 明确表达 版本更新的意图和兼容性

  • 提升 包管理和升级的可靠性

 

https://semver.org/lang/zh-CN/

posted @ 2025-08-28 23:17  LiusCraft  阅读(48)  评论(0)    收藏  举报