make: use GO_VERSION=1 for release builds#4986
make: use GO_VERSION=1 for release builds#4986cyphar wants to merge 1 commit intoopencontainers:mainfrom
Conversation
Makefile
Outdated
| releaseall: release | ||
|
|
||
| .PHONY: release | ||
| release: CONTAINER_ENGINE_BUILD_FLAGS := --build-arg GO_VERSION=1 |
There was a problem hiding this comment.
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.
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.
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 <cyphar@cyphar.com>
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)? |
|
Well, if we decide to just use Maybe we need to take a step back and ask what we actually want to achieve:
My view is that using |
|
In our use case, we are not directly consuming the binaries from runc releases. But we build runc internally with the same go version that was used to compile the release binaries. |
|
Closing in favour of #4997. |
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 cyphar@cyphar.com