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



我一直在尝试为我的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.info但是,当我将SDK添加到go.dev

时,我卡住了。Thanks in advance

该你了。mod(最新提交ce18fa)模块名错误(不需要/v1.0.0):

module github.com/datelist/datelist-sdk-golang/v1.0.0

。mod git release tagv1.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

最新更新