-
Notifications
You must be signed in to change notification settings - Fork 2.2k
make: use GO_VERSION=1 for release builds #4986
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
base: main
Are you sure you want to change the base?
Conversation
Makefile
Outdated
| releaseall: release | ||
|
|
||
| .PHONY: release | ||
| release: CONTAINER_ENGINE_BUILD_FLAGS := --build-arg GO_VERSION=1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There can be a case where CI is not updated, but still the release happens with the latest versions. I dont think we should be in such a situation,also we had issues like #4234 in the past.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did think about that, but I think that the current situation we have (where we can easily forget to update old versions) is a far more common problem than the case where we know that runc is having issues with a new version (in which case, it's still easy to use a different GO_VERSION manually if we go with @AkihiroSuda's suggestion).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That being said, I do somewhat question how important it is if our release binaries are built with EOL'd Go versions -- we don't rebuild old release binaries, so every binary we release is destined to have been built by an EOL'd compiler (or an older release with a security issue) at some point.
I guess trying to go for the newest one from the start is the least bad option, but I do wonder how helpful this is in general.
We have forgotten to bump GO_VERSION in our Dockerfile several times when doing releases from old release branches, leading to use using EOL'd Go versions for releases. We should just always use the latest version when building our release artefacts. Signed-off-by: Aleksa Sarai <[email protected]>
174ccef to
83eca0f
Compare
|
Maybe we should also add 'stable' (and 'oldstable') to CI, too (perhaps only in Otherwise we may end up running tests with e.g. Go 1.23 but building release binaries using Go 1.25. I remember @thaJeztah had his reasons to not do that, but I don't remember what was it exactly. |
|
Things I'm on the fence on;
Would we have some check in CI that the version of Go used is matching the current patch release of the minor version used in the branch, and that minor version to not be an EOL version at time of release? (Which may be "oldstable" for specific branches)? |
We have forgotten to bump GO_VERSION in our Dockerfile several times
when doing releases from old release branches, leading to use using
EOL'd Go versions for releases. We should just always use the latest
version when building our release artefacts.
Fixes #4969
Signed-off-by: Aleksa Sarai [email protected]