看我明白了。您正在发布一个新包...走出去,不确定该库是否需要更改。所以你说,“也许我应该现在发布 v0,等准备好后再发布 v1”。本文将尝试说服您从一开始就发布 v1。
发布 v1 有几个原因:
对我来说,v0 的各种原因似乎可以归结为:
...
但是在阅读了 semver 存储库上这个有趣的问题后:https://github.com/semver/semver/issues/221 我的观点正在改变。使用版本 0.x 表示不稳定,这是事实,但现实是某些库不稳定。
不稳定是什么意思?这并不是库发生了变化(因为这些更改可以计划并由主要版本号表示)。不稳定与错误的普遍存在有关。
错误可能是:
旁注:这两者之间几乎没有什么区别。很多错误只是 API 之间的不匹配或不兼容。
那么 --- 您的库对消费者来说崩溃的可能性有多大?只有库维护人员才能回答这个问题,并且它通常来自于消费者长期以来提出的问题的经验。
但是在发布库之前你怎么知道它会有多不稳定呢?也许在 0.x 中呆一段时间是个好主意。
但是这个库会摆脱 0.x 吗?因为惯性是真实存在的。你有时间吗?委员会会通过吗?这是有风险的。
另一方面,发布1.0.0的风险是消费者如果频繁升级会出现不稳定的情况。但对此有一些缓解措施。首先,使用锁定文件,升级软件包是一个手动操作。除非升级,否则消费者不会受到问题的影响。他们可以干脆不升级,或者推迟升级。
新消费者可能会遇到有缺陷的版本,这是事实,但在 0.x 系统中也会出现这种情况。
像storybook这样的库在版本之间不是很稳定(根据我的经验),但它们仍然没有使用0.x。对于它的价值。
然后是传递依赖的区域。如果您的包是另一个包的依赖项,那么另一个包需要决定使用什么 semver 范围。您的稳定性会影响该软件包的稳定性,因此风险更高。
该软件包要么固定您的库,要么使用更广泛的 semver 范围。在第一种情况下,它会导致重复,这对性能不利。在第二种情况下,存在不稳定的风险。我敢打赌,第一个选择是行不通的,不稳定总是存在风险。
我在这里没有答案,但要点是,如果你的库被其他库使用,那么风险会更高,你应该确保你的库是稳定的。
所以你应该尝试编写一个稳定的库,但如果它不稳定,那么继续使用 0.x 直到它稳定为止。但如果可以的话,请使用 1.x。
以上是以 semver `.0` 开头的详细内容。更多信息请关注PHP中文网其他相关文章!