【问题标题】:Should I update the semver version when adding examples to a package?向包中添加示例时是否应该更新 semver 版本?
【发布时间】:2018-11-03 06:46:26
【问题描述】:

我正在制作一个 npm 包并将其发布为 1.0.0 版,因为我对公共 API 很满意。但现在,我正在添加一个“示例”子项目来展示如何使用该库。显然,我不会将示例项目作为库的一部分发布(它将添加到 .npmignore 中),但它会在我的 github 存储库中。是否有任何语义版本控制规则?我应该更新补丁版本、次要版本还是什么都不更新?

一方面,我认为我不应该更新版本,因为它不会发布到 npm,因此应用程序的普通用户甚至不会注意到包中的差异。另一方面,semver 规则说,当您更改文档时,您应该更新“补丁”或“次要”版本,即使文档也没有发布。

【问题讨论】:

    标签: github npm package versioning semantic-versioning


    【解决方案1】:

    relevant spec here is #3:

    1. 一旦发布了版本化包,就不得修改该版本的内容。任何修改都必须作为新版本发布。

    由于您的 API 中没有添加任何内容,而且这显然不是重大更改,因此您应该修改补丁号。

    【讨论】:

    • OP 说 “我不会将示例项目作为库的一部分发布” 所以它(即示例)实际上并没有到达最终用户,它甚至没有触及 npm repo/registry。那么这在那些情况下是否仍然适用/相关?在这些情况下,增加内部版本号似乎比增加面向 semver 的外部用户更合适。
    • 是的,这就是我困境的核心。 Spec说,当你更新文档(例如弃用警告)时,你应该提升补丁版本,即使文档没有在任何地方发布并且包的校验和完全相同。但是文档与功能的联系比示例更多。
    • @AlesBorgue - 现实是;您对问题的回答将主要基于意见,因为 semver 文档没有明确说明在您的场景中要做什么。 IMO semver只有在您向公众真正发布产品的新版本时才应更改。最终,它充当您与最终客户/用户之间的核心合同,以表明您的软件在更新后将如何表现/运行。鉴于您的情况,您实际上并没有发布任何内容。我会保持原样,但如果您更愿意升级 PATCH 版本,那就去做吧。 - 必要时掷硬币;)
    • 好的,谢谢您的意见!我和我的同事讨论过,我们得出的结论是,当校验和没有改变时,我们基本上永远不会更新 semver,因为用户更新到我们的版本不会有任何好处。当实际上没有任何改变时,这也可能给他们错误修复错误的希望。
    • 如果被版本化的包没有改变,包括它的内容,版本号不需要改变。如果您翻转包中的内容,规范非常明确,您必须颠倒版本号。给定两个版本号相同的包,内容应该完全相同。
    猜你喜欢
    • 2016-03-17
    • 2018-05-28
    • 2012-08-01
    • 2018-11-22
    • 2020-04-02
    • 2018-03-16
    • 2013-12-15
    • 1970-01-01
    • 2013-11-22
    相关资源
    最近更新 更多