【问题标题】:Keep 2 different minor versions of the same transitional dependency in Golang在 Golang 中保留相同过渡依赖项的 2 个不同次要版本
【发布时间】:2022-01-11 20:53:40
【问题描述】:

所以我有以下情况。我的项目有 2 个依赖项:

  • example.com/a - 需要 example.com/c v0.1.0
  • example.com/b - 需要 example.com/c v0.2.0

example.com/c 的开发人员在 0.2.0 中进行了一些向后不兼容的更改,导致 example.com/a 构建失败,但 example.com/b 依赖于 example.com/c 的开发人员添加的新功能0.2.0,所以我的项目无法同时使用 example.com/c v0.1.0 和 v0.2.0 进行编译

根据 golang 文档,example.com/c 的开发人员有权进行向后不兼容的更改,因为他们还没有发布 v1.0.0,所以这里不应该责怪他们。

Golang 使用 example.com/c 的旧版本或新版本,但不能同时使用它们,因为它们的主要版本相同,导致项目因其中任何一个而失败。

我无权访问 example.com/c 存储库,因此我无法在此处修复问题,但我可以分叉一个存储库并使用我的副本。

为了让我可以在我的项目中并行使用这两个依赖项,可以采取哪些最少的操作?

【问题讨论】:

    标签: go dependencies


    【解决方案1】:

    为了让我可以在我的项目中并行使用这两个依赖项,可以采取哪些最少的操作?

    你不能。您必须“分叉”(即重命名)一个并重写所有内容。

    这里的教训是:不要依赖不稳定的东西。尤其是不及物。

    【讨论】:

      猜你喜欢
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 2016-05-24
      相关资源
      最近更新 更多