WIP, needs larger migration: go 1.24 changes #7111
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
High level stuff changed:
go.mod
and docker stuff points to 1.24go list
has made significant changes to what is allowed yet again, socheck-gomod-version.sh
has major changes, but does the same thingtimer.Stop()
drainingv0.32.0
to match our internal repos, needed to parse newer libraries / code supported by go 1.24... and then got stuck on mockery.
We essentially have two options:
mockery
v3mockery
, move its mocks over tomockgen
2 seems like it might be much easier, but 1 is worth considering at some point at least.
Mockery-v2 is not compatible with go 1.24, and v3 has fixed that.
Unfortunately, mockery-v3 drops support for our
go generate
-command-line-flags entirely, and forces us to switch to their config files.AFAICT that's a good change, and it should let us speed up code generation a lot (by running them as a dedicated pass, rather than in
go generate
). But it's non-trivial so I've stopped here.There's a migration guide for whenever someone feels like tackling it: https://vektra.github.io/mockery/v3.5/v3/
We might even consider replacing
gowrap
with it tbh, it looks like it might be a pretty powerful code generator framework.