基于SemVer规范,预发布版本应基于旧版本还是新版本号?
SemVer规范下开发环境临时构建版本标记最佳实践
针对开发环境伪CD的版本标记需求,结合SemVer规范,给出以下落地性强的最佳实践:
采用「当前正式版本+预发布标识+追溯元数据」的格式
完全不用提前猜测下一个正式版本,直接基于上一个稳定版(比如1.2.3)生成标记,示例:- 带时间戳:
1.2.3-dev.1668519441 - 带Git Commit Hash:
1.2.3-dev.abc123 - 两者结合:
1.2.3-dev.1668519441+abc123
SemVer规范允许预发布部分(-后)添加自定义标识,dev明确区分是开发环境临时构建;时间戳或Commit Hash保证版本可追溯。Helm等工具能正确识别这类预发布版本,不会触发报错。
- 带时间戳:
后续切换正式预发布版本的平滑过渡
当确定下一个正式版本(比如明确要发1.3.0),再将开发版本切换为规范的预发布格式(如1.3.0-alpha.1、1.3.0-beta.2)即可。之前基于旧稳定版的临时开发版本属于独立版本线,不会和新预发布版本产生冲突。避坑要点
- 不要只用纯时间戳作为预发布标识(如
1.2.3-1668519441),这类标记无法直观区分开发构建与补丁预发布,易造成混淆,必须加上dev这类明确标识。 - 绝对不要提前猜测下一个正式版本做标记,一旦预判错误,后续需要大量版本修正,反而增加维护成本。
- 用CI/CD脚本自动生成版本号,比如通过Git命令提取Commit Hash、系统时间生成时间戳,避免手动输入出错。
- 不要只用纯时间戳作为预发布标识(如
内容的提问来源于stack exchange,提问作者ChickenWing
相关产品推荐
相关产品推荐

