-
Notifications
You must be signed in to change notification settings - Fork 535
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
Set GOTOOLCHAIN=local
if go-version[-file]
is set and GOTOOLCHAIN
is not already present
#491
Comments
Hello @Frederick888 👋 |
Setting That issue mentions CI for one of the reasons why they wanted to make this change. I personally believe this is likely the behaviour most would expect when declaring a specific go version to set up in a CI environment as well. This would be a large behaviour change though over the default of |
@Frederick888 - completely agree with your logic here. The setting of a specific version of Go expresses intent: the default behaviour of We are, for now, setting |
actions/setup-go#491 Signed-off-by: Andrew Haines <haines@cerbos.dev>
- Skip UDS tests if not running on Linux docker/for-mac#483 - Test against correct Go versions actions/setup-go#491 Signed-off-by: Andrew Haines <haines@cerbos.dev>
Description:
When a user sets
go-version[-file]
explicitly, they'd often expect the version (range) to be enforced.So I think we should set
GOTOOLCHAIN=local
to disable automatic toolchain switching in this case.This is similar to #420 but with a bit more details.
Justification:
We maintain a few libraries where we want to make sure they are compatible with the last two Go major version releases (1.X and 1.X-1 to be clear, i.e. minor versions in SemVer).
We don't dictate which Go version contributors use, especially patch versions, but we have set up a GHA matrix like:
Now for example, someone who uses Go 1.22.x may accidentally put a
go 1.22.5
line ingo.mod
, and both jobs in the testing matrix will still pass. If it isn't caught in review, due to the changes since Go 1.21, AFAIU the library will require its consumers to upgrade to Go 1.22.5+, which is apparently unexpected.So I think when a user specifies a Go version, we should set
GOTOOLCHAIN=local
to disable this new Go behaviour. If they do want it to happen, they can set an Action or job levelGOTOOLCHAIN=auto
(or don't setgo-version[-file]
if they don't care about it at all).Are you willing to submit a PR?
Yes.
The text was updated successfully, but these errors were encountered: