在 Golang 中保留同一个过渡依赖的 2 个不同的次要版本

Keep 2 different minor versions of the same transitional dependency in Golang

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

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?

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

这里的教训是:不要依赖不稳定的东西。特别是不可传递。