如何在保持主要版本零的同时引入不兼容的更改?

时间:2019-02-27 17:06:59

标签: semantic-versioning

我有一个大型个人软件库,我一直在努力,目前正在开发中。当前,其版本为0.1.0

拥有主版本1还不够成熟。我一直在修改代码并引入不兼容的更改,这些更改可能会增加主版本号。同时,我的其他一些库也依赖于该库,并通过版本号对其进行引用。

如果我引入了不兼容的更改,并且不想将主要版本从0增加到1,应该如何增加版本号?

SemVer网站对此并不十分清楚,只是说:

  

主要版本零(0.y.z)用于初始开发。任何事情都可能   随时更改。公共API不应被认为是稳定的。

“任何事情都可能随时改变”是否意味着对主要版本0进行了例外处理,并且我可以随意更改y和z数字?

例如,如果我的版本是0.1.0,并且引入了不兼容的更改,那么具有该更改的新版本可以是0.2.0吗?

别人怎么说

this site上说:

  

实际上,SemVer规范定义了以“ 0”开头的任何内容。   不必应用任何SemVer规则。

Another site似乎还建议当主版本为0并且添加了不兼容的更改时,可以增加次版本。

  

因此,您只需继续在0.x.y范围内,每增加一个   向后兼容的更改,每个不兼容的更改都使用x。

1 个答案:

答案 0 :(得分:0)

由您决定,因为

  • 如果其他库依赖于您的软件,则意味着您的软件具有一些已使用的公共API,并且如果它们具有这些API,为什么还没有1.x.x版本?
    毕竟...为什么如此重要,以使您的软件只有在稳定后才能达到1.0.0版本?达到稳定版本后,它可以以3.0.04.0.0开头...
  • 您的软件并不会与较大的项目脱钩,因为实际上,只有在整个软件(由许多较小的库组成)达到“成熟”版本时,您才会认为它“成熟”。但是从技术角度来看,它已经解耦了
  • 0开始,您不必严格遵守semver规则。

一切都围绕着所谓的“成熟”。您告诉您软件还不成熟,但这意味着什么?那可以改善吗?不能涵盖所有极端情况吗?尚未经过100%测试?

最后:如果您认为它不成熟,请继续使用0.x.y版本控制并增加次要版本,但是您的未成熟软件已经被其他库使用,因此现在应该到达2.0.0版本