通过主要版本更新包依赖是否需要包本身的主要版本?

Does updating a package dependency by a major version require a major version bump of the package itself?

我目前正在研究在 this package of mine. This is a relatively small npm package and after reading the migration guide 中将 RxJS 依赖项从 v5.5 升级到 v6 的可能性。我预计实施新版本不会有任何问题。

问题是我很好奇我的包本身的新版本是否应该是新的 major 版本。我一直想当然地认为只要一个软件保留相同的 public 接口,对实现的更改可以用 minor 或 [=17] 发布=]补丁版本bump.

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

And because of the incompatibilities between the RxJS versions I'm switching between I would suspect a major version bump to be more appropriate

这基本上是合法的,最好升为专业。你可以考虑 2 例 RxJS 作为 dep

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

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

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