-
Notifications
You must be signed in to change notification settings - Fork 58
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
chore: Update Go to supported version #100
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Dave Henderson <[email protected]>
e11a523
to
1443f4d
Compare
CI failure seems unrelated (Codecov rate-limiting 🤦♂️):
|
This is actually intentionally at 1.20 to match Line 3 in 10343d3
|
1.20 is unsupported though, since 1.22 was released in February... |
I suppose updating to Go 1.21 would maybe be the more conservative approach since it's the minimum supported version at the moment, however it will cease to be in August when Go 1.23 is out 😉 |
Maybe instead we can meet in the middle somewhere by updating all the images to latest Go and then add something using (I guess we could also do something hanky like |
Sure, testing against a matrix of versions sounds reasonable. Ultimately I guess what I'm not quite grasping is what you mean by "minimum supported version"... |
Oh, I think https://research.swtch.com/vgo-mvs is perhaps the best reference about that -- the design of Go modules is such that any dependency which requires a newer version of something effectively forces anything using that dependency to use the newer thing too, so we try to ensure our dependencies are sufficiently minimal (in other words, our builds of this code are not the only builds of this code that happen). When updating something like the version of Go we build against without also making sure we're still at least smoke testing that older version means that eventually we might accidentally use a newer feature than we're "allowed" to given that other constraint, so I want to make sure that we still have something verifying that older version (such that if we think some new Go feature is worth bumping that minimum version, it becomes an explicit choice/action, not something that sneaks in accidentally). Up until now, the easiest way to do that was to simply have the two versions match without drift (our version and our minimal version), but it is reasonable for them to disconnect. |
Ok, I think we're experiencing an impedance mismatch here 😉 What I mean by "supported" in this context has nothing to do with MVS or any sort of compatibility, but rather Go's support policy as documented here: https://go.dev/doc/devel/release#policy The scan failure that led me to issue this PR is an example of somewhere where the Go 1.20 release didn't get patched for CVE-2024-24790 because it was out of support. The other PR bumps the
Go will already prevent you from using 1.22-specific features if the |
👋 Go 1.20 has been out of support since February, and the image no longer scans clean (especially due to CVE-2024-24790). This PR updates to Go 1.22.