Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修改go.mod中的一个小错误 #3041

Merged
merged 1 commit into from
Feb 21, 2024
Merged

修改go.mod中的一个小错误 #3041

merged 1 commit into from
Feb 21, 2024

Conversation

Fangliding
Copy link
Member

里面写的1.22但是实际上go的release没有1.22这种东西,真身是1.22.0,action里似乎没有出现问题因为本来就是1.22,但是在一些只有go1.21的机器上会尝试下载go1.22 然后这里就出现上述问题了 会报错 go: download go1.22 for linux/amd64: toolchain not available
解决办法: 加上去()

@yuhan6665 yuhan6665 merged commit c100d35 into XTLS:main Feb 21, 2024
33 of 34 checks passed
@yuhan6665
Copy link
Member

我的理解是 1.22 代表 1.22.x 比如构建里面

matching 1.22...
Resolved as '1.22.0'

本地的话我都是手动升级。。这次先合了

@RPRX
Copy link
Member

RPRX commented Feb 23, 2024

action里似乎没有出现问题因为本来就是1.22

因为 go.mod 和 action 都支持这种语法,你看那些 go 项目一般都是这么写的,Xray 也是,上一次写了 1.21.4 才反常

但是在一些只有go1.21的机器上会尝试下载go1.22 然后这里就出现上述问题了 会报错 go: download go1.22 for linux/amd64: toolchain not available
解决办法: 加上去()

没有理解为什么会出现这个问题,如果有脚本无法识别这种语法,应该去改脚本而不是改 go.mod

我的理解是 1.22 代表 1.22.x

对,如果写成 1.22.0,每次 go 升级都要改,非常麻烦

综上,麻烦 revert @yuhan6665

@chise0713
Copy link
Contributor

我之前写自己的小工具时写 go 1.21.5,windows 下 actions 的 test 直接不通过,说不支持这种写法,换成 go 1.21 就好了

@yin1999
Copy link
Contributor

yin1999 commented Feb 23, 2024

见:golang/go#61455

@Fangliding
Copy link
Member Author

action里似乎没有出现问题因为本来就是1.22

因为 go.mod 和 action 都支持这种语法,你看那些 go 项目一般都是这么写的,Xray 也是,上一次写了 1.21.4 才反常

但是在一些只有go1.21的机器上会尝试下载go1.22 然后这里就出现上述问题了 会报错 go: download go1.22 for linux/amd64: toolchain not available
解决办法: 加上去()

没有理解为什么会出现这个问题,如果有脚本无法识别这种语法,应该去改脚本而不是改 go.mod

我的理解是 1.22 代表 1.22.x

对,如果写成 1.22.0,每次 go 升级都要改,非常麻烦

综上,麻烦 revert @yuhan6665

这个问题仅出现在本地go版本不是1.22的情况下 也不是makefile的问题 单单在仓库里运行 go version 就可以看到这个报错了 这有一些talk golang/go#61455 golang/go#62278 https://www.reddit.com/r/golang/comments/1aukmy7/linux_go_update_1216_1220_not_working/ 最后找到加个.0确实就可以解决问题了 复现非常简单直接在仓库打开一个codespcace(里面的go还是1.21) 尝试make或者go version就看到了

@RPRX
Copy link
Member

RPRX commented Feb 24, 2024

以前没有这个问题,这次出现了,盲猜是因为 Go 1.22 改了 loopvar 的行为,并且 go.mod 中写了 go 1.22 才会启用,所以在 Go 1.21 中做了预案,防止被用于编译指定了 go 1.22 的项目,做了自动下载,但是考虑不周,还没实现自动寻找最新版本的功能

大致看了下讨论,这个应该会被修复,现在先加个 .0 也不是不行,不过很快 Go 1.22 就会普及了,既然已经 revert 了就先这样吧

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants