about blog github

28 Dec 2023
语义版本控制

语义化版本控制(semantic versioning),通常表示为:主版本号.次版本号.修订号,即 major.minor.patch。下面是每个组成部分的含义和例子:

  • major版本:当你做了不兼容的api更改,即那些会破坏现有用户的代码更改时,你需要增加主版本号。例如,从 1.6.3 更新到 2.0.0 表示有重大更改,现有的用户可能需要修改他们的代码才能适应新版本。

  • minor版本:当你添加了新功能,但是以向后兼容的方式,即不会破坏现有功能时,你需要增加次版本号。例如,从 1.6.3 更新到 1.7.0 表示添加了新功能,但是现有的用户代码不会受影响。

  • patch版本:当你进行了向后兼容的错误修复,即修复了一些小错误但没有添加新功能或者破坏现有功能时,你需要增加修订号。例如,从 1.6.3 更新到 1.6.4 通常表示修复了软件中的一些bug。

例如:

  • 假设一个开源库有一个函数 getuser(id),它返回一个用户对象。如果这个函数被改成 getuser(username),这是一个major版本变化,因为它改变了函数的使用方式。

  • 如果在不改变 getuser(id) 的同时,库中添加了一个新的函数 getuserbyemail(email),这是一个minor版本变化,因为它添加了新功能,但没有破坏旧的api。

  • 如果发现 getuser(id) 有时返回错误的用户,然后这个问题被修复了,这是一个patch版本的变化,因为它仅仅是修复了现有功能的一个bug。



LEo at 00:12

about blog github