语义化版本和标签

22 年 9 月 28 日 星期三
447 字
3 分钟

语义化版本

语义化版本(Semantic Versioning),英文缩写是 SemVer。它是一套控制规范,约定了版本号及其更新方式,包含了相邻版本间的底层代码和修改内容的信息1

版本格式通常为 X.Y.Z 的格式,其中 X Y Z 都是非负整数,不可以在数字前补零。

  1. X:是主版本号(major),当做了不兼容的 API 修改时,应该递增,次版本号和修订号重置为 0。
    主版本号为 0 时,表示处于开发初始阶段,是 API 不稳定的版本。
  2. Y:是次版本号(minor),当新增向下兼容的功能时,应该递增,修订号重置为 0。
  3. Z:是修订号(patch):当做了向下兼容的问题修正时,应该递增。

可以根据情况在后面添加先行版本号(prerelease),先行版本号在修订号之后添加 -,再加上一串由 . 分隔的标识符。例如:1.0.0-alpha.2,添加先行版本号表示该版本不稳定而且可能无法满足预期的兼容性需求。

使用 npm 更新项目版本

npm 中有一个 version 命令可以非常方便地更新项目的版本2。你可以指定一个新的版本号或者是需要递增的字段,例如:

sh
npm version prerelease --preid=alpha

假设当前 package.json 的版本号是 1.0.0,它会执行下面的操作:

  1. 将版本号从 1.0.0 更新到 1.0.1-alpha.0
  2. 产生一个新的提交,提交信息为:1.0.1-alpha.0
  3. 添加标签 v1.0.1-alpha.0

也可以自定义提交信息:

sh
npm version prerelease --preid=aplha -m "update version %s"

此时的提交信息为:update version 1.0.1-alpha.1

⚠️ 版本号前添加 v,例如 v1.2.0 表示版本标签,1.2.0 才是语义化版本。

参考

  1. 语义化版本 2.0.0

  2. npm version 文档

文章标题:语义化版本和标签

文章作者:柃夏chapu

文章链接:https://www.lxchapu.com/posts/semantic-versioning-and-tag[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。