Go 为什么这个版本标签会导致错误?
在我的Go 为什么这个版本标签会导致错误?,go,Go,在我的go.mod文件中,我有: require ( // ... editted for brevity github.com/Liquid-Labs/catalyst-firewrap v2.0.0-prototype.3 // ... ) 当我试图构建另一个依赖于此包的包时,我得到:无效模块:github.com/Liquid-Labs/catalyst-firwrap应该是v0或v1,而不是v2(v2.0.0-prototype.3) 在go模块化之前有一次重
go.mod
文件中,我有:
require (
// ... editted for brevity
github.com/Liquid-Labs/catalyst-firewrap v2.0.0-prototype.3
// ...
)
当我试图构建另一个依赖于此包的包时,我得到:无效模块:github.com/Liquid-Labs/catalyst-firwrap应该是v0或v1,而不是v2(v2.0.0-prototype.3)
在go模块化之前有一次重写,当时我没有标记东西,所以没有v1
。。。这就是问题所在吗?我在这里找不到对根本问题的解释。根据:
如果模块版本为v2或更高版本,则模块的主要版本
必须作为/vN
包含在中使用的模块路径末尾
go.mod文件(例如,模块github.com/my/mod/v2
,需要github.com/my/mod/v2.0.0
)
和在包导入路径中(例如。,
导入“github.com/my/mod/v2/mypkg”
)
同一文件引用了官方围棋常见问题解答的基本原理:
用于公共用途的软件包应尽量保持向后
兼容性随着它们的发展而变化。Go 1兼容性指南是一个
这里有一个很好的参考:不要删除导出的名称,鼓励添加标签
复合文字,等等。如果需要不同的功能,
添加新名称,而不是更改旧名称。如果完全中断
如果需要,请使用新导入路径创建新包
以及:
如果旧包和新包具有相同的导入路径,则新包
包必须与旧包向后兼容
根据:
如果模块版本为v2或更高版本,则模块的主要版本
必须作为/vN
包含在中使用的模块路径末尾
go.mod文件(例如,模块github.com/my/mod/v2
,需要github.com/my/mod/v2.0.0
)
和在包导入路径中(例如。,
导入“github.com/my/mod/v2/mypkg”
)
同一文件引用了官方围棋常见问题解答的基本原理:
用于公共用途的软件包应尽量保持向后
兼容性随着它们的发展而变化。Go 1兼容性指南是一个
这里有一个很好的参考:不要删除导出的名称,鼓励添加标签
复合文字,等等。如果需要不同的功能,
添加新名称,而不是更改旧名称。如果完全中断
如果需要,请使用新导入路径创建新包
以及:
如果旧包和新包具有相同的导入路径,则新包
包必须与旧包向后兼容