如何在保持主版本零的同时引入不兼容的更改?
How to introduce incompatible changes while remaining in major version zero?
我有一个大型的个人软件库,我一直在努力,目前正在努力。目前,它的版本是 0.1.0
.
1 的主要版本还不够成熟。我不断修改代码并引入不兼容的更改,这些更改值得增加主要版本号。同时,我的其他一些库依赖于这个库,通过版本号来引用。
如果我引入了不兼容的更改并且不想将主要版本从 0 增加到 1,我应该如何增加我的版本号?
SemVer网站对此不是很清楚,只是说:
Major version zero (0.y.z) is for initial development. Anything may
change at any time. The public API should not be considered stable.
"anything may change at any time mean" 0 的主要版本是否有例外,我可以随心所欲地更改 y 和 z 数字吗?
例如,如果我的版本是 0.1.0
并且我引入了一个不兼容的更改,那么具有该更改的新版本可以是 0.2.0
吗?
别人怎么说
在 this site 上它说:
In fact, the SemVer spec defines that anything starting with “0.”
doesn’t have to apply any of the SemVer rules.
Another site 似乎也暗示当主版本为 0 且添加了不兼容的更改时,增加次版本是可以的:
So you just continue through the 0.x.y range, incrementing y for every
backwards-compatible change, and x for every incompatible change.
这取决于你,因为
- 如果其他库依赖于您的软件,则意味着您的软件有一些消耗的 public API,如果它有它们...为什么还没有
1.x.x
版本?
毕竟...为什么您的软件只有在稳定后才达到 1.0.0
版本如此重要?一旦达到稳定版本,它可以从 3.0.0
或 4.0.0
开始...
- 你的软件并没有在精神上与你的大项目脱钩,因为事实上,只有当整个软件(由许多较小的库组成)达到 [=32] 时,你才会考虑它 "mature" =] 版本。但从技术角度来看,它已经解耦
- 没错,从
0
开始就不用严格遵守semver规则了
一切都围绕着被认为是"mature"。你说你的软件不成熟,但这是什么意思?那可以改进吗?它没有涵盖所有的极端情况?它没有经过 100% 测试?
最后:如果您认为它不成熟,请继续 0.x.y
版本控制并增加次要版本,但您不成熟的软件已经被其他库使用,因此它现在应该达到 [=16] =]版本
我有一个大型的个人软件库,我一直在努力,目前正在努力。目前,它的版本是 0.1.0
.
1 的主要版本还不够成熟。我不断修改代码并引入不兼容的更改,这些更改值得增加主要版本号。同时,我的其他一些库依赖于这个库,通过版本号来引用。
如果我引入了不兼容的更改并且不想将主要版本从 0 增加到 1,我应该如何增加我的版本号?
SemVer网站对此不是很清楚,只是说:
Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.
"anything may change at any time mean" 0 的主要版本是否有例外,我可以随心所欲地更改 y 和 z 数字吗?
例如,如果我的版本是 0.1.0
并且我引入了一个不兼容的更改,那么具有该更改的新版本可以是 0.2.0
吗?
别人怎么说
在 this site 上它说:
In fact, the SemVer spec defines that anything starting with “0.” doesn’t have to apply any of the SemVer rules.
Another site 似乎也暗示当主版本为 0 且添加了不兼容的更改时,增加次版本是可以的:
So you just continue through the 0.x.y range, incrementing y for every backwards-compatible change, and x for every incompatible change.
这取决于你,因为
- 如果其他库依赖于您的软件,则意味着您的软件有一些消耗的 public API,如果它有它们...为什么还没有
1.x.x
版本?
毕竟...为什么您的软件只有在稳定后才达到1.0.0
版本如此重要?一旦达到稳定版本,它可以从3.0.0
或4.0.0
开始... - 你的软件并没有在精神上与你的大项目脱钩,因为事实上,只有当整个软件(由许多较小的库组成)达到 [=32] 时,你才会考虑它 "mature" =] 版本。但从技术角度来看,它已经解耦
- 没错,从
0
开始就不用严格遵守semver规则了
一切都围绕着被认为是"mature"。你说你的软件不成熟,但这是什么意思?那可以改进吗?它没有涵盖所有的极端情况?它没有经过 100% 测试?
最后:如果您认为它不成熟,请继续 0.x.y
版本控制并增加次要版本,但您不成熟的软件已经被其他库使用,因此它现在应该达到 [=16] =]版本