go 运行 没有得到最新的标签

go run doesnt get the latest tag

我正在 Go 中使用 GraphQL,我试图使用熟悉的 go run 命令获取 gqlgen 工具。

我原以为它会检索最新的可用标签,但我却以某种方式得到了一个似乎根本不存在于回购协议中的标签:

$ go run github.com/99designs/gqlgen version
v0.9.1-dev

我希望以上 return 每 the latest tag

v0.13.0

我的工作站上安装的 Go 版本:

$ go version
go version go1.15.5 darwin/amd64

有人知道发生了什么事吗?

更新: 禁用 GOPROXY 没有帮助

UPDATE2: 事实证明,版本被硬编码为 version.go 正如您所见 here, but even if go run gets the master instead of the latest tag, you'd still expect the output to be 0.13.0-dev as per the master branch 相反,我怀疑版本的某些字符串顺序0.9.* 高于 0.1*.*

的标签

我认为版本命令在构建时配置错误,v0.9.1-dev 不是构建时的标签。

go run 目前不支持 运行 特定版本的二进制文件,但请注意 accepted Go proposal 可以在 [=] 的未来版本中添加该功能12=]命令。

从 Go 1.16 开始,您可以 go install 特定版本的二进制文件,然后 运行 从其安装位置($(go env GOBIN)$(go env GOPATH)/bin).

$ GOBIN=~/bin go install github.com/99designs/gqlgen@latest
$ ~/bin/gqlgen ...