go - 发布一个 golang 模块 : Semantic versioning

标签 go publish go-packages

我一直在尝试为我的网络应用程序创建和发布一个 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/

相关文章:

google-apps-script - Google Apps 脚本 - 如何发布/安装容器绑定(bind)脚本

android - 已发布的应用在 Play 商店中不可见

azure - 在azure上发布网站时,webjobs被删除

go - 如何在 Go 中列出所有非标准/自定义包?

在获取主要版本模块依赖项时出错

go - 如何将结构写入账本状态

html - zserge/lorca HTML 提交到 go func

Golang 模块问题--package xxx/xxxx is not in GOROOT

mongodb - 无法从 `[]string` 断言类型 `[]interface{}`

sql-server - 如何使用 Golang 从 sql 数据库中的反馈部分保存星级