当使用 semver 时 upgrade/bump 到 1.0.0(稳定)

When using semver when to upgrade/bump to 1.0.0 (stable)

语义版本控制规范 (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.

所以从1.0.0开始算稳定了。

正常启动项目时使用版本 0.1.0 并逐渐增加,有一点项目可以有类似 0.20.3 for months/years 的点,它是 "stable".

因此想知道在将项目提交到服务器之前,除了标准和参数之外,还有哪些可以被认为是可以遵循的良好实践 1.0.0

你是怎么处理的?

如果3个月内没有issues/code activity版本被转储?

开发团队决定他们何时拥有 1.0.0 版本。项目有可能在很长一段时间内保持 experimental/prototype 模式。这里唯一重要的是接口和实现是否可以被认为是完整的。你的目标是什么?您是否已准备好所有计划的 v1 功能?有没有疑问w.r.t。实现是否符合记录的接口?

一些团队没有映射到完整 semver spec, but they use packaging/release tooling that requires a semver version string. In order to be legal, they never release version 1.0.0, so any version bumps literally don't have full SemVer semantics. See #4 in the spec 的工作流程。

当我看到 SomeLib.0.20.3.pkg 时,我认为它不稳定。一个突破性的变化可能发生在紧接着的下一个小的磁场碰撞上,无论过去是否有过这样的变化。 SemVer 是一种合约,允许 SomeLib 开发人员在这种特殊情况下不经通知就破坏事物。

规范中没有任何内容可以阻止团队发布 1.0.0,然后返回到一长串 0.x.x 版本,如果他们希望以这种方式操作的话。这与使用预发布标签类似,但不完全相同。当您发布 1.0.1-prerelease 时,您至少暗示有意发布一个源自 1.0.0 的作品,这是一个错误修复,但 prerelease 标签是警告标签,表示您尚不确定您所做更改的安全性制成。从 1.0.0 到一系列 0.x.x 版本表示您甚至可能不再从 1.0.0 派生。基本上,所有赌注都再次关闭。

如果您需要关于此事的任何进一步说明,请询问,我很乐意回答有关 SemVer 的任何问题。