gpt4 book ai didi

javascript - 语义版本控制 (Semver) - 如何对向后兼容的大型功能更新进行 semver

转载 作者:行者123 更新时间:2023-11-29 10:56:43 24 4
gpt4 key购买 nike

我的理解是,使用 X.Y.Z,我们只更改 X 以进行重大更改。 Y 用于向后兼容的功能更改。

所以我假设即使我的更新是对功能的绝对巨大的补充——没有破坏性的变化,因为它只是一个补充,我仍然不会改变 X,我的假设是正确的。

TLDR 无论更新多么“重要”,如果它不是重大更改,您就不会更改 X.Y.Z 的 X

最佳答案

您可以为向后兼容的大型功能更新递增主版本号。我认为你通常应该这样做。

Semver 2.0.0 第 8 段状态:

Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API. It MAY include minor and patch level changes. Patch and minor version MUST be reset to 0 when major version is incremented. (Emphasis added.)

严格应用 RFC 2119术语 MAY、MUST 和 MUST NOT 在 Semver 中通过引用合并,强调的声明意味着当更改仅包括次要和补丁级别更改时,允许但不要求增加主要版本号。

这就是大量非破坏性更改:大量次要和补丁级别的更改。

规范的这一段中明显没有任何等同于以下内容的陈述:

  • 它不能只包含小的和补丁级别的更改
  • 它必须包括向后不兼容的更改

根据第 7 段,另一个允许的替代方案是仅在您的场景中增加次要版本。

这很好。它允许在您描述的情况下有一定的自由裁量权,在这种情况下,公共(public) API 在技术上没有以向后不兼容的方式发生变化,但变化足够大,感觉像是对 (大概是人类)用户和/或开发者。

它还允许有时业务/营销驱动的需要根据重要的功能更改而不是 API 规范本身来增加主要版本号。

关于javascript - 语义版本控制 (Semver) - 如何对向后兼容的大型功能更新进行 semver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55659219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com