- CI Suite Issue: In River’s CI suite, it was discovered that although thought to be supporting the latest two Go versions (1.21 and 1.22), it actually wasn't. The GitHub Actions CI matrix had tests for both versions but builds were passing with Go 1.21 being downloaded and then upgraded to 1.22 immediately.
- Go 1.21 Changes: Along with toolchains, Go 1.21 changed the treatment of
go
directives ingo.mod
. They are now mandatory instead of advisory. Any Go project needs to set itsgo
directive to at least the version required by its dependencies. River usesgo 1.21
with atoolchain go1.22.5
ingo.mod
, but the presence oftoolchain
causes CI jobs to upgrade to 1.22. Usingenv: GOTOOLCHAIN: local
prevents this. - Learning from Debacle: Go modules that expect to be dependencies need to be careful with
go
directives ingo.mod
as it can have downstream impact. Go is trigger happy in changinggo.mod
'sgo
version. River is a multi-module project and an accidental update to Go 1.22.5 led to the discovery of the issue. A CI check will be added to verify consistency of directives across modules in the future.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。