发布 golang 模块:语义版本控制

Ale*_*eau 6 publish go go-packages

我一直在尝试为我的 Web 应用程序创建和发布 golang SDK:https://datelist.io 一切都在我的本地设置上运行良好。然而,一旦我想将我的 SDK 发布到https://pkg.go.dev/网站,事情就开始变得更加困难

我想发布的代码可以在那里找到:github.com/datelist/datelist-sdk-golang

我读过一些教程,如果我理解正确的话,我所需要的就是:

  • 创建我的公共存储库
  • 在我的存储库的根目录中添加一个 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

但是,我遇到以下错误: not found: github.com/datelist/datelist-sdk-golang@v1.0.0: invalid version: unknown revision v1.0.0

我尝试过不同的事情。我在我的 github 存储库上发布了两个标签:v1.0.0 和 1.0.0,但它不起作用。我已经检查过:我的代码看起来有效,并且该版本似乎存在,因为我可以访问: https: //proxy.golang.org/github.com/datelist/datelist-sdk-golang/@v/ce18fa0756c2。 然而,在将我的 SDK 添加到 go.dev 时,我陷入了困境

提前致谢

col*_*tor 2

您的go.mod(最新提交ce18fa)模块名称不正确(/v1.0.0不需要):

module github.com/datelist/datelist-sdk-golang/v1.0.0
Run Code Online (Sandbox Code Playgroud)

git release 标记处的go.mod指向v1.0.0datelist.io/sdk存在的导入路径:

module datelist.io/sdk
Run Code Online (Sandbox Code Playgroud)

将您的内容更新go.mod为以下内容(有效 URL - 无标签后缀):

module github.com/datelist/datelist-sdk-golang
    
go 1.16
Run Code Online (Sandbox Code Playgroud)

然后 git tag 这个提交的版本v1.0.1,这应该能让你的模块工作。

然后,您图书馆的消费者可以:

go get github.com/datelist/datelist-sdk-golang
Run Code Online (Sandbox Code Playgroud)

或明确地:

go get github.com/datelist/datelist-sdk-golang@v1.0.1
Run Code Online (Sandbox Code Playgroud)

前者semver通过 git 标签隐式选择最新版本 -v1.0.1在本例中。