在 Golang 中保留同一个过渡依赖的 2 个不同的次要版本
Keep 2 different minor versions of the same transitional dependency in Golang
所以我有以下情况。我的项目有 2 个依赖项:
- 示例。com/a - 需要示例。com/c v0.1.0
- 示例。com/b - 需要示例。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
进行编译
example.com/c 的开发者,根据 golang 文档,完全有权做出向后不兼容的更改,因为他们还没有发布 v1.0.0,所以他们不应该受到指责。
Golang 使用旧版本或新版本的示例。com/c,但不会同时使用它们,因为它们的主要版本相同,导致项目失败。
我无法访问示例。com/c 回购所以我无法修复这里的问题,但我可以分叉一个回购并使用我的副本。
要让我可以在我的项目中并行使用这两个依赖项,可以采取哪些最少的操作?
What are the minimal actions that could be taken so I can use both of the dependencies in my project in parallel?
你不能。您必须“分叉”(即重命名)一个并重写所有内容。
这里的教训是:不要依赖不稳定的东西。特别是不可传递。
所以我有以下情况。我的项目有 2 个依赖项:
- 示例。com/a - 需要示例。com/c v0.1.0
- 示例。com/b - 需要示例。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
进行编译example.com/c 的开发者,根据 golang 文档,完全有权做出向后不兼容的更改,因为他们还没有发布 v1.0.0,所以他们不应该受到指责。
Golang 使用旧版本或新版本的示例。com/c,但不会同时使用它们,因为它们的主要版本相同,导致项目失败。
我无法访问示例。com/c 回购所以我无法修复这里的问题,但我可以分叉一个回购并使用我的副本。
要让我可以在我的项目中并行使用这两个依赖项,可以采取哪些最少的操作?
What are the minimal actions that could be taken so I can use both of the dependencies in my project in parallel?
你不能。您必须“分叉”(即重命名)一个并重写所有内容。
这里的教训是:不要依赖不稳定的东西。特别是不可传递。