palantir / godel

Go tool for formatting, checking, building, distributing and publishing projects
Apache License 2.0
311 stars 34 forks source link

After upgrading to Go 1.23, I'm getting an error in ./godelw check having to do with [compiles] using Go 1.21 #825

Closed jameycribbs closed 1 month ago

jameycribbs commented 2 months ago

What happened?

UPDATE: I just noticed that I filed a similar issue last year and that you fixed it by upgrading the "compiles" library to use the latest version of Go, so I think that is just what needs to happen again in this instance. So, I think I just need to wait until you have had time to do that.

ORIGINAL POST:

I installed version 1.23 of Go and also am on the latest (2.114.0) version of Godel and now when I run Godel's check command I'm getting the following:

./godelw check [compiles] Running compiles... [compiles] ../../../usr/local/go/src/runtime/time.go:174:17: cannot range over 3 (untyped int constant) [compiles] -: This application uses version go1.21 of the source-processing packages but runs version go1.23 of 'go list'. It may fail to process source files that rely on newer language features. If so, rebuild the application using a newer version of Go. [compiles] ../../../usr/local/go/src/reflect/iter.go:67:19: cannot range over v.Len() (value of type int) [compiles] ../../../usr/local/go/src/reflect/iter.go:75:19: cannot range over v.Len() (value of type int) [compiles] ../../../usr/local/go/src/reflect/iter.go:131:19: cannot range over v.Len() (value of type int) [compiles] ../../../usr/local/go/src/reflect/iter.go:139:19: cannot range over v.Len() (value of type int) [compiles] ../../../usr/local/go/src/reflect/type.go:2320:19: cannot range over num (variable of type int) [compiles] -: This application uses version go1.21 of the source-processing packages but runs version go1.23 of 'go list'. It may fail to process source files that rely on newer language features. If so, rebuild the application using a newer version of Go. [compiles] ../../../usr/local/go/src/slices/iter.go:50:17: cannot range over seq (variable of type iter.Seq[E]) [compiles] -: This application uses version go1.21 of the source-processing packages but runs version go1.23 of 'go list'. It may fail to process source files that rely on newer language features. If so, rebuild the application using a newer version of Go

I looked at the compiles package on github and I see that it's go.mod file still specifies go 1.21.

I'm guessing that maybe this is some issue with the new iter package introduced by Go 1.23.

Is there something else I need to do to resolve this issue?

nmiyake commented 1 month ago

Sorry about that -- version 2.119.0 and later (https://github.com/palantir/godel/releases/tag/v2.119.0) should fix this issue.