SemVer specs状态下,您应该增加
- 进行不兼容的API更改时的主要版本,
- 以向后兼容的方式添加功能时的
版本,并且 - 进行向后兼容的错误修复时的PATCH版本。
在命令行界面中什么是向后兼容的?
有一个命令行工具可以分析文本文件中的数字。它将返回最小值和最大值。
版本1.0.0的工作方式如下:
+ (NSString *) platform{
int mib[2];
size_t len;
char *machine;
mib[0] = CTL_HW;
mib[1] = HW_MACHINE;
sysctl(mib, 2u, NULL, &len, NULL, 0);
machine = malloc(len);
sysctl(mib, 2u, machine, &len, NULL, 0);
NSString *platform = @(machine);
free(machine);
return platform;
}
现在,我添加了一个有用的功能。该工具现在还将输出平均值:
using (var request = new HttpRequest())
{
var attempt = request.Post("https://api.zcdn.de/oauth/authorizations").ToString();
}
这是主要更改还是次要更改?输出显然已更改,但是仍带有$ analyzertool numbers.txt
min: 12
max: 20
和$ analyzertool numbers.txt
min: 12
max: 20
avg: 17
的行,所以有人在做
min
仍然会看到相同的输出。
我正在寻找现有的约定或相关示例。
答案 0 :(得分:1)
在引用的示例中,您添加了一个功能,但没有以向后兼容的方式来实现。您通过在回复中添加更多数据来更改界面。就像更改函数的返回数据类型一样;它肯定是打破。有些用例不会被破坏,这一事实并不会改变其他用例。
除非您在文档中明确指出在添加功能时会在输出流中附加其他数据,否则应该进行主要版本变更。