根据semver
“PATCH版本,当您进行向后兼容的错误修复时。”
和
“错误修复被定义为修复错误行为的内部更改。”
考虑到这一点,我可以说我有一个可以调用的变量,就像一个颜色。由于某种原因,我需要更改颜色值。
v1.0.0
$color: #FFF;
v1.0.1
$color: #F0F0F0;
现在这是一个在API中定义为用户可以调用的变量。我没有更改被调用的实际变量,只更改了它返回的值。为此,我必须在API元素上更改我的代码,并且必须将此代码合并到生产分支中。但这样的事情是否真的有必要增加API的补丁版本号?
答案 0 :(得分:2)
语义版本控制的目的是管理软件系统的依赖关系。语义版本控制提供了一个有组织的规范来标准化该过程,以便可靠地跟踪这些系统的状态。正如规范所述,
一旦发布版本化软件包,就不得修改该版本的内容。任何修改必须作为新版本发布。
如果您的更改影响了api(输入或输出)的行为并要求发布,那么该版本应该与适当的版本号挂钩。这将使包的用户可以放心地依赖您的包。每个版本都将按预期运行;应该没有歧义。
例如,假设您进行更改并将其释放但不增加修补程序编号。您可能有两个用户认为他们使用相同的代码但在调用$color
api时取决于他们何时获得v1.0.0
而获得不同的值。
值得注意的是,根据您发布包的方式,有多种方法可以让用户接受此更改。我可以想到两种可能的情况:
这些只是几个选项。根据您的具体情况,可能还有其他人。
最重要的是,v1.0.0
一旦发布,v1.0.0
应该始终采用相同的方式行事。无论这些变化多么微不足道,它们仍然会发生变化。这适用于所有版本X.Y.Z
。