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

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

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

【问题讨论】:

    标签: api version versioning semantic-versioning


    【解决方案1】:

    来自http://semver.org:

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

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

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

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

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

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

    【讨论】:

    • 包裹类比对我来说比提出的问题更清楚。所以我知道这是违反规则的,但谢谢。
    猜你喜欢
    • 2012-10-11
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    相关资源
    最近更新 更多