我一直在尝试为我的网络应用程序创建和发布一个 golang SDK:https://datelist.io 在我的本地设置上一切正常。然而,一旦我想将我的 SDK 发布到 https://pkg.go.dev/,事情就开始变得更加困难了。网站
我想发布的代码在那里可用:github.com/datelist/datelist-sdk-golang
我已经阅读了一些教程,如果我理解正确的话,我所需要的只是:
- 创建我的公共(public)存储库
- 在我的存储库的根目录下添加一个 go.mod 文件
- 请求 proxy.golang.org 网站索引我的更改
我尝试了不同的方法来索引我的更改,并且根据该链接: https://go.dev/about/ 一旦解决方案是访问该页面: https://proxy.golang.org/MYMODULE_PATH
我因此尝试过: https://proxy.golang.org/github.com/datelist/datelist-sdk-golang/@v/v1.0.0.info
但是,我遇到了以下错误:
未找到:github.com/datelist/datelist-sdk-golang@v1.0.0:无效版本:未知修订版 v1.0.0
我尝试过不同的东西。我在我的 github 存储库中发布了两个标签:v1.0.0 和 1.0.0,但它不起作用。我检查过:我的代码看起来有效,而且版本似乎存在,我可以Go:https://proxy.golang.org/github.com/datelist/datelist-sdk-golang/@v/ce18fa0756c2.info 但是,在将我的 SDK 添加到 go.dev 时我遇到了困难
提前致谢
最佳答案
你的 go.mod (最新提交ce18fa
)模块名称不正确(不需要/v1.0.0
):
module github.com/datelist/datelist-sdk-golang/v1.0.0
go.mod在 git release 标签 v1.0.0
指向一个导入路径 datelist.io/sdk
不存在:
module datelist.io/sdk
将您的 go.mod
更新为此(有效的 URL - 没有标签后缀):
module github.com/datelist/datelist-sdk-golang
go 1.16
然后 git 将这个已提交的版本标记为 v1.0.1
- 这应该会让您的模块正常工作。
您图书馆的消费者随后可以:
go get github.com/datelist/datelist-sdk-golang
或明确地:
go get github.com/datelist/datelist-sdk-golang@v1.0.1
前者通过 git 标签隐式选择最新的 semver
版本 - 在本例中为 v1.0.1
。
关于go - 发布一个 golang 模块 : Semantic versioning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68697945/