Go github 版本中的“+incompatible”后缀是啥意思?

Posted

技术标签:

【中文标题】Go github 版本中的“+incompatible”后缀是啥意思?【英文标题】:what does "+incompatible" suffix mean in Go github versions?Go github 版本中的“+incompatible”后缀是什么意思? 【发布时间】:2020-09-16 10:31:18 【问题描述】:

我正在考虑将 go-github 从 v17.0.0+incompatible 升级到 v28

我注意到一些versions that go-github released 有+incompatible 后缀,尤其是v1 类别。这意味着什么?我猜+incompatible 的版本与新旧版本不兼容?

一般来说,当更新第三方依赖时,我如何知道升级到新版本是否安全?我只需要阅读更改日志吗?

【问题讨论】:

【参考方案1】:

一般来说,Go 不希望您对项目的多个不兼容版本使用相同的导入路径。这样一个依赖可以使用模块的一个主要版本,而另一个依赖可以使用另一个。

此语法表示存储库未使用非 v0、非 v1 版本的模块路径后缀,并绕过模块代码中执行语义导入版本控制的逻辑。有关此功能的文档是 available on the Go website。

由于从一个主要版本转换到另一个主要版本是语义版本控制的重大变化,因此您需要在带外确定它们是否兼容。 +incompatible 后缀并没有隐含地表示这一点,但是从 v17 到 v28 可以。所以更改日志可能是个好主意,或者如果您对您的测试套件有信心,您可以更新并运行您的测试。

【讨论】:

以上是关于Go github 版本中的“+incompatible”后缀是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Couldn‘t load custom C++ ops. This can happen if your PyTorch and torchvision versions are incompati

k8s中的client-go编译成功

将 Go beta 版本与 GitHub Actions 一起使用

构建aws-sdk-go的依赖关系在Go版本1.13上失败

go下载指定版本的依赖包

Go mod graphql-go 的 Replace