【问题标题】:Does updating a package dependency by a major version require a major version bump of the package itself?通过主要版本更新包依赖项是否需要包本身的主要版本提升?
【发布时间】:2019-04-01 01:49:41
【问题描述】:

我目前正在研究将我的this package 中的 RxJS 依赖项从 v5.5 升级到 v6 的可能性。这是一个相对较小的 npm 包,在阅读了migration guide 之后,我预计在实施新版本时不会出现任何问题。

问题是我很好奇我的包本身的新版本是否应该是一个新的主要版本。我一直理所当然地认为,只要一个软件保留相同的公共接口,对实现的更改就可以通过 minorpatch 版本碰撞发布.

虽然我的包接口应该能够保持不变,但在这种情况下,我正在处理 RxJS 作为一个依赖项,任何使用我的包的人肯定也会使用它。而且由于 RxJS 版本之间的不兼容,我正在切换之间,我怀疑主要版本的碰撞更合适。我该如何推理这个话题?

【问题讨论】:

  • 我不是语义版本控制方面的专家,但我认为你是对的,主要版本的调整是合适的。

标签: typescript npm rxjs semantic-versioning


【解决方案1】:

而且由于 RxJS 版本之间的不兼容,我在之间切换我怀疑主要版本的碰撞更合适

这主要是合法的,最好是作为主要的。可以考虑 2 例 RxJS 作为 dep

  1. 直接依赖 :如果消费者应用程序依赖于 v5,则可能会在您的 lib 之间中断(因为它带有 2 个不同版本的 rx 实例),因此它可能是主要的。
  2. 对等依赖 :现在你的 lib 将要求消费者应用程序安装 v6 而不是 v5,它也会退回到主要版本(因为消费者需要提升他们的 rx 版本)

所以在我的包裹(即https://github.com/kwonoj/rx-sandbox/releases/tag/v1.0.0)中,正是出于这些原因,我将其称为重大碰撞。

如果您的 lib 具有适当的互操作性,可确保同时在 v5 和 v6 上工作,那么它绝对不是主要的。

【讨论】:

    猜你喜欢
    • 2017-04-22
    • 2022-08-03
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2019-12-05
    • 2019-03-17
    相关资源
    最近更新 更多