变量名称更改颠簸 SemVer 主要还是次要?

Posted

技术标签:

【中文标题】变量名称更改颠簸 SemVer 主要还是次要?【英文标题】:Variable name change bumps SemVer major or minor? 【发布时间】:2014-03-09 23:30:22 【问题描述】:

假设我有一个可以通过 API 调用的函数,例如 $MyFunction,为了简洁起见,$MyFunction 返回 12。现在假设我将 $MyFunction 重命名为 $The12Function,但它仍然返回相同的结果 (在本例中为整数 12)。这是否需要增加主要或次要 SemVer 版本号?

有人可能会争辩说我不允许向后兼容,因为$MyFunction 不再有效。但是,也有人会争辩说存在向后兼容性,因为您仍然可以通过 $The12Function 返回相同的结果。

【问题讨论】:

【参考方案1】:

来自http://semver.org:

给定版本号 MAJOR.MINOR.PATCH,增加:

进行不兼容的 API 更改时的主要版本,

在向后兼容中添加功能时的次要版本 方式,以及

当您进行向后兼容的错误修复时的 PATCH 版本。

因此,在您的情况下,如果您不维护旧的函数名称,为了保持与旧版本 API 的兼容性,您应该增加主要版本号。

查看它的一种方法是,为了了解兼容性是否被破坏,可以想象您的 API 和功能被封装在一个库中,该库向其他程序提供此功能。您现在对该 API 进行更改。如果需要更改链接到旧版本 API 的程序才能使用新版本的库,则说明兼容性已损坏,应更改主版本。您可以通过覆盖和维护已弃用的旧函数调用来解决此问题,但这会增加 API 的复杂性。

【讨论】:

包裹类比对我来说比提出的问题更清楚。所以我知道这是违反规则的,但谢谢。

以上是关于变量名称更改颠簸 SemVer 主要还是次要?的主要内容,如果未能解决你的问题,请参考以下文章

如何 semver 版本控制文档更新?

按名称汇总跨多个变量的数据

SemVer 中 MINOR vs PATCH 规则的原因

GitVersion:如何通过提交消息回滚 SemVer 编号更改?

通过 Java 正则表达式提取 semver 版本字符串的片段

离子原色动态变化