语义版本控制:为什么应该使用它

基蒂Giraudel
分享

语义版本控制(简称为SemVer),是一种版本控制系统,在过去几年中一直在增长。随着每天都有新的插件、插件、扩展和库被构建,拥有一种通用的版本控制软件开发项目的方法是一件好事,可以帮助我们跟踪正在发生的事情。

什么是SemVer?

SemVer是一个三组件的系统,格式为x.y.z地点:

  • x表示主版本
  • y“次要版本”
  • z代表一个补丁

所以你有:Major.Minor.Patch

SemVer是如何工作的?

SemVer依赖于在正确的时间增加正确的组件。因此,决定应该发布哪种类型的版本很简单。

如果你主要是修复bug,那么这将被归类为补丁,在这种情况下,你应该碰撞z

类中实现新特性向后兼容路,那么你会撞y因为这是a的版本。

另一方面,如果你实现了新的东西,很可能打破现有的API,你需要撞一下x因为它是主要的版本。

为什么SemVer ?

因为这是有道理的。如果说我学到了什么,那就是没有指导方针的版本控制基本上毫无意义。移动到4.2?好的,很好。为什么?为什么不是5个?为什么不是4.1.1?为什么不是4.11?为什么不是4.1.oh-snap-new-version?

遵循严格的指导原则有助于赋予版本号以意义。

例如,如果您看到版本1.3.37,那么您就会知道这是第一个主要版本,但是已经有3个小版本带来了新功能。然而,你也会注意到这是这个小版本的第37个补丁,这意味着有很多bug(或大或小)。

它也很有帮助依赖关系管理.假设您正在构建一个名为独角兽.不管出于什么原因,你有彩虹作为一种依赖。当你第一次从盒子里拿出你的课本时,彩虹版本是6.6.6(看起来很漂亮,是吧?)

这意味着你可以指定彩虹作为一个独角兽依赖项大于或等于6.6.0,但小于7.0.0。还记得第一个数字是如何与落后的世界末日变化的主要补丁吗?如果有一天彩虹升级到7.0.0,没有什么能告诉你它不会坏独角兽,所以最好保持版本6。

要记住的事情

现在您已经了解了SemVer是什么,让我们来看看人们在第一次开始使用它时可能会遇到的一些问题。

它从0.1.0开始

在使用SemVer时需要注意的一点是,它从0.1.0开始,而不是像人们想象的那样从0.0.1开始。如果你仔细想想,就明白了。您不是从一个补丁开始,而是从一组功能开始,作为项目的第一稿,因此是版本0.1.0。

1.0.0之前只是开发阶段

每当你构建一个新的软件时,总会有这样一个阶段,你会不停地问自己:我应该什么时候发布第一个正式的主要版本?

这里有一些提示可以帮助您回答这个问题:如果您的软件已经在生产中使用,或者有用户依赖于它,那么您的软件应该已经达到1.0.0。另外,如果您非常担心破坏当前的API,这同样可能意味着您应该已经在运行1.0.0了。

否则,请记住,1.0.0以下的版本基本上是开发高峰期,您将专注于完成工作。在1.0.0之前,你不应该害怕破坏东西,你会做任何需要做的事情,这样当达到1.0.0时,它是稳定的。

关于预发行版

在部署一个主要版本之前,您通常会进行大量的工作,需要一次又一次地进行测试,以确保一切正常。这通常是你想要预发布的时刻。

使用SemVer,可以通过在版本后添加连字符和标识符来定义预发布版本。例如,版本1.0.0的预发布可以是1.0.0-alpha.1。然后,如果需要另一个构建,它将变成1.0.0-alpha。2,依此类推。

最终的想法

如果您不使用SemVer,那么在下一个项目(或当前项目?)中没有合理的理由不使用它。它不仅有助于保持事情的干净和有意义,而且还将帮助其他可能将您的项目作为依赖项使用的人。

Baidu