首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

语义版本控制(Semver)

比如:git tag v1.2.3 -m "Release version 1.2.3" 中,标签是 “v1.2.3”,语义化版本号是 “1.2.3”。...标准的版本号必须(MUST)采用 X.Y.Z 的格式,其中 X、Y 和 Z 为非负的整数,且禁止(MUST NOT)在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。...修订号 Z(x.y.Z | x > 0)必须(MUST)在只做了向下兼容的修正时才递增。这里的修正指的是针对不正确结果而进行的内部修改。...次版本号 Y(x.Y.z | x > 0)必须(MUST)在有向下兼容的新功能出现时递增。在任何公共 API 的功能被标记为弃用(deprecated)时也必须(MUST)递增。...主版本号 X(X.y.z | X > 0)必须(MUST)在有任何不兼容的修改被加入公共 API 时递增。其中可以(MAY)包括次版本号及修订级别的改变。

65420

规范升级 NPM 包

本文将从我自己的角度,来为大家介绍一下我认为的一些需要大家注意的点。 版本号规则 从日常的开发中我们可以看到,npm 包的版本号的格式都是 X.Y.Z。...X 代表主版本号,也叫做大版本号 升级大版本时意味着这个包可能做了颠覆性的改动,和低版本的包已经无法兼容。每当主版本号递增时,次版本号和修订号必须归零。...每当次版本号递增时,修订号必须归零。 Z 代表修订号 当做了向下兼容的问题修正(bugfix)时, 升级修订号。...这时候就要用到先行版本号了,下面我将为大家具体介绍。 先行版本 npm 的先行版本号,放到 X.Y.Z 的后边,作为延伸。被标上先行版本号则表示这个版本并非稳定而且可能无法满足预期的兼容性需求。...beta:测试版,或者叫公开测试版;这个阶段的版本会一直加入新的功能;在 alpha 版之后推出。

81131
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何定义版本号

    版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。...这一版本之后所有的版本号更新都基于公共 API 及其修改内容 修订号 Z(x.y.Z | x > 0)在只做了向下兼容的修正时才递增。...主版本号 X(X.y.z | X > 0)在有任何不兼容的修改被加入公共 API 时递增。其中包括次版本号及修订级别的改变。...预发版本号的格式是 ..-tag>,即前半部分和常规版本号相同,然后跟上连接符 -,后面再跟上字母数字点号连接符([0-9A-Za-z-.])。...预发版本号是常规版本号的附属,因此在版本的大小比较上,仍然先比较常规版本号部分;对于预发标记部分的比较,则是根据 ASCII 字母表中的顺序来进行。

    52710

    语义化版本号规范(SemVer)

    格式 语义化版本格式:主版本号.次版本号.修订号(MAJOR.MINOR.PATCH)。...到了这个阶段,只会修复 Bug,不会对软件做任何大的更改。一般来说,Alpha -> Beta -> Gamma 是迭代的关系,RC1 -> RC2 是取舍的关系。...标准的版本号必须(MUST)采用 X.Y.Z 的格式,其中 X、Y 和 Z 为非负的整数,且禁止(MUST NOT)在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。...修订号 Z(x.y.Z | x > 0)必须(MUST)在只做了向下兼容的修正时才递增。这里的修正指的是针对不正确结果而进行的内部修改。...主版本号 X(X.y.z | X > 0)必须(MUST)在有任何不兼容的修改被加入公共 API 时递增。其中可以(MAY)包括次版本号及修订级别的改变。

    1.1K20

    微服务的版本号要怎么设计?

    PATCH(Z):这个是修订号,当我们进行一些 BUG 的修复,然后要发版的时候,这里会发生变化。语义化的版本控制规范主要做了如下一些要求:使用语义化版本控制的软件必须(MUST)定义公共 API。...标准的版本号必须(MUST)采用 X.Y.Z 的格式,其中 X、Y 和 Z 为非负的整数,且禁止(MUST NOT)在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。...修订号 Z(x.y.Z | x > 0)必须(MUST)在只做了向下兼容的修正时才递增。这里的修正指的是针对不正确结果而进行的内部修改。...主版本号 X(X.y.z | X > 0)必须(MUST)在有任何不兼容的修改被加入公共 API 时递增。其中可以(MAY)包括次版本号及修订级别的改变。...最后,我们在发送请求的时候,设置如下请求头即可: 如果版本号是 version=2.0,则会报一个 404 错误:

    63510

    Semver(语义化版本号)扫盲

    从上图,我们不难得出几个结论: 软件的版本通常由三位组成,形如:X.Y.Z 版本是严格递增的,此处是:16.2.0 -> 16.3.0 -> 16.3.1 在发布重要版本时,可以发布alpha, rc等先行版本...版本格式 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号(major):当你做了不兼容的 API 修改, 次版本号(minor):当你做了向下兼容的功能性新增,可以理解为Feature...先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。 先行版本 当要发布大版本或者核心的Feature时,但是又不能保证这个版本的功能 100% 正常。...版本发布准则 列举出比较实用的一些规则: 标准的版本号必须采用XYZ的格式,并且X、Y 和 Z 为非负的整数,禁止在数字前方补零,版本发布需要严格递增。...判断优先层级时,必须把版本依序拆分为主版本号、次版本号、修订号及先行版本号后进行比较。

    2K320

    前端工程化(一)NPM如何管理依赖包版本?

    SemVer规范官网:https://semver.org/ 标准版本 SemVer规范的标准版本号采用 X.Y.Z 的格式,其中 X、Y 和 Z 为非负的整数,且禁止在数字前方补零。...X 是主版本号、Y 是次版本号、而 Z 为修订号。每个元素必须以数值来递增。...可见是严格按照 SemVer 规范来发版的: 版本号严格按照 主版本号.次版本号.修订号 格式命名 版本是严格递增的,:16.8.0 -> 16.8.1 -> 16.8.2 发布重大版本或版本改动较大时...即保持主版本号、次版本号不变的情况下,保持修订号的最新版本。 ^: 当安装依赖时获取到有新版本时,安装到 x.y.z 中 y 和 z 都为最新版本。...版本号严格按照 主版本号.次版本号.修订号 格式命名 版本号发布必须是严格递增的 发布重大版本或版本改动较大时,先发布alpha、beta、rc等先行版本 依赖范围选择 主工程依赖了很多子模块,都是团队成员开发的

    3.9K31

    版本命名标准:语义化 2.0.0

    标准的版本号“必须 MUST ”采用 XYZ 的格式,其中 X、Y 和 Z 为非负的整数,且“禁止 MUST NOT”在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。...修订号 Z(x.y.Z | x > 0)“必须 MUST ”在只做了向下兼容的修正时才递增。这里的修正指的是针对不正确结果而进行的内部修改。...主版本号 X(X.y.z | X > 0)“必须 MUST ”在有任何不兼容的修改被加入公共 API 时递增。其中“可以 MAY ”包括次版本号及修订级别的改变。...要判断改版是属于修订等级或是次版等级,是依据你更新的依赖关系是为了修复问题或是加入新功能。对于后者,我经常会预期伴随着更多的代码,这显然会是一个次版本号级别的递增。...若这些改变对你的使用者是重要的,那就透过版本号来向他们说明。 我该如何处理即将弃用的功能? 弃用现存的功能是软件开发中的家常便饭,也通常是向前发展所必须的。

    75920

    Spring版本命名规则

    软件 升级过程 说明 Linux Kernel 0.0.11.0.02.6.323.0.18 若用X.Y.Z表示,则偶数Y表示稳定版本,奇数Y表示开发版本 Windows Windows 98Windows...2 语义化版本命名通行规则 语义化版本命名通行规则对版本的迭代顺序做了很好的规范,其版本号的格式为X.Y.Z(又称Major.Minor.Patch),递增的规则如下表所示。...序号 格式要求 说明 X 非负整数 表示主版本号(Major),当API的兼容性发生变化时,X必须递增 Y 非负整数 表示次版本号(Minor),当增加功能时(不影响API的兼容性),Y必须递增 Z 非负整数...表示修订号(Patch),当修复漏洞时(不影响API的兼容性),Z必须递增 详细的使用规则如下: l X、Y、Z必须为非负整数,且不得包含前导零,必须按数值递增,如1.9.0→1.10.0→1.11.0...说明 含义 Snapshot 快照版 尚不稳定、尚处于开发中的版本 Alpha 内部版 严重缺陷基本完成修正并通过复测,但需要完整的功能测试 Beta 测试版 相对Alpha版有很大的改进,消除了严重的错误

    63450

    Spring版本命名规则

    2 语义化版本命名通行规则 语义化版本命名通行规则对版本的迭代顺序做了很好的规范,其版本号的格式为X.Y.Z(又称Major.Minor.Patch),递增的规则如下表所示。...序号 升级过程 格式要求 X 非负整数 表示主版本号(Major),当API的兼容性发生变化时,X必须递增 Y 非负整数 表示次版本号(Minor),当增加功能时(不影响API的兼容性),...Y必须递增 Z 非负整数 表示修订号(Patch),当修复漏洞时(不影响API的兼容性),Z必须递增 详细的使用规则如下: l X、Y、Z必须为非负整数,且不得包含前导零,必须按数值递增,如1.9.0...含义 Snapshot 快照版 尚不稳定、尚处于开发中的版本 Alpha 内部版 严重缺陷基本完成修正并通过复测,但需要完整的功能测试 Beta 测试版 相对Alpha版有很大的改进,消除了严重的错误...技术在于分享,我分享我快乐!undefined如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。关注微信公众号“Tom弹架构”可获取更多技术干货!

    68400

    给公司写的composer包开发的规范

    版本格式 主版本号.次版本号.修订号 版本号递增规则 主版本号:当你做了不兼容的 API 修改 次版本号:当你做了向下兼容的功能性新增 修订号:当你做了向下兼容的问题修正 先行版本号及版本编译元数据可以加到...“主版本号.次版本号.修订号”的后面,作为延伸。...版本的时机 被用于正式环境 如果有个稳定的 API 被使用者依赖 如果很担心向下兼容的问题 总而言之,由于0.x版本在机制和语义上和大于1.0的版本有一定差异,容易产生误用,被用于生产环境的包的版本号都必须...>=1.0 composer.lock的规范 开发应用程序必须提交 composer.lock 文件到 git 版本库中 这会确保每一个人 —— 你、你的合作伙伴、你的 CI 服务器以及你的产品服务器...0.0.1 且 < 0.1.0 ~0.1.1 >= 0.1.1 且 < 0.2.0 ~0.1 >= 0.1.0 且 < 1.0.0 ~1.1 >= 1.1 且 < 2.0.0 ^的作用 ++^ 锁定的是x.y.z

    86610

    GoLang 新版包管理 -- go module 的使用

    事实上,在实际的开发中,master 上的重要版本都打上 tag 是一个好习惯。 如果没有 tag,go 会使用 v0.0.0-- 的形式记录版本。 3.1....升级到 v1 版本引用路径无需变更 当主版本号大于等于 v2 时,这个模块的引用路径末尾必须加上 vN 3.3. v2 以上版本引入路径的变化 关于第三点,下面是不同场景下包引入路径的变化: 在 go.mod...+incompatible 有些包在 go.mod 中,版本号显示的是: v3.2.1+incompatible +incompatible 表示该依赖打了 tag,但这个仓库不是一个 go module...升级依赖 通过命令 go get 增加 -u 参数,可以将指定包升级到指定版本: 运行 go get -u 将会升级到最新的次要版本或者修订版本(x.y.z, z是修订版本号, y是次要版本号) 运行...5.5.3. go mod graph go mod graph 输出结果有两列,前者是一个库,后者是它的依赖。 通过这个输出,我们可以绘制整个项目依赖的有向无环图。 6.

    2.4K30

    听,是版本在说话

    让版本说话的意思是,版本本身就代表一定的含义,通过版本号就可以基本了解这个版本的大致情况。 为什么需要管控版本 那么为什么要管控版本呢?...语义化版本规范 在语义化版本中,版本号是由三部分组成的,它的格式是:X.Y.Z(主版本号.次版本号.修订号)。...具体而言,X、Y 和 Z 为非负的整数,其中X 是主版本号、Y 是次版本号、而 Z 为修订号。并且需要遵循下面的一些原则,以保证语义化版本规范的正确性。...每当主版本号递增时,次版本号和修订号必须归零. 除了主版本之外,还可以在主版本后面添加上先行版本号. 先行版本号是由数字和字母组合而成,以一个连接号接在主版本后面。...先行版本号表示这个版本并非稳定而且可能无法满足预期的兼容性需求。 在先行版本号或者主版本号后面还可以加上编译版本号。编译版本号也是由数字和字母组合而成,以一个加号接在主版本或者先行版本号的后面。

    27620

    小知识系列:让版本出来说话

    让版本说话的意思是,版本本身就代表一定的含义,通过版本号就可以基本了解这个版本的大致情况。 为什么需要管控版本 那么为什么要管控版本呢?...语义化版本规范 在语义化版本中,版本号是由三部分组成的,它的格式是:X.Y.Z(主版本号.次版本号.修订号)。...具体而言,X、Y 和 Z 为非负的整数,其中X 是主版本号、Y 是次版本号、而 Z 为修订号。并且需要遵循下面的一些原则,以保证语义化版本规范的正确性。...每当主版本号递增时,次版本号和修订号必须归零. 除了主版本之外,还可以在主版本后面添加上先行版本号. 先行版本号是由数字和字母组合而成,以一个连接号接在主版本后面。...先行版本号表示这个版本并非稳定而且可能无法满足预期的兼容性需求。 在先行版本号或者主版本号后面还可以加上编译版本号。编译版本号也是由数字和字母组合而成,以一个加号接在主版本或者先行版本号的后面。

    21820

    Go 开发常用操作技巧--模块管理

    vendor 机制的缺点是,同一个依赖包如果不同工程想重用,都必须各自复制一份在自己的vendor目录下。不能重用,使得冗余度上升。...go mod edit -fmt go.mod 会格式化 go.mod go mod graph:把模块之间的依赖图显示出来 go mod init:在当前文件夹下初始化一个新的 module,创建...在 Go1.16 版本中,运行go命令,如果 import 的依赖再 go.mod 文件中没有,就不会再自动下载,而会提示错误,需要手动执行 go get 命令下载对应的包。...go get更新依赖 go get -u :更新到最新的次要版本或者修订版本(x.y.z) go get -u=patch :更新到最新的修订版本 go get package@version :更新到指定的版本号...格式如下: /go.mod module 是依赖的路径。version 是依赖的版本号。

    56110

    Go包管理工具

    陷入了深深的沉思~~ 从Go1.11版本发布Go MODULE之后,我希望这是最后一次折腾包管理这件事情,神呐,诚心诚意的祈祷中~~ 摘抄备忘下: GO111MODULE Modules 是作为 experiment...按照 Go 的惯例,在新的 experiment feature 首次加入时,都会有一个特性开关,go modules 也不例外,GO111MODULE 这个临时的环境变量就是 go modules 特性的...通过go mod tidy也可以用来为 go.mod 增加丢失的依赖,删除不需要的依赖,但是我不确定它怎么处理tags。...(Z+1)-0.yyyymmddhhmmss-abcdefabcdef vX.Y.Z 也就是版本号 + 时间戳 + hash,我们自己指定版本时只需要制定版本号即可,没有版本 tag 的则需要找到对应...go get 升级 运行 go get -u 将会升级到最新的次要版本或者修订版本 (x.y.z,z 是修订版本号, y 是次要版本号) 运行 go get -u=patch 将会升级到最新的修订版本

    67410
    领券