Skip to content
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

vendor.mod: update minimum go version to go1.23 #5920

Merged
merged 1 commit into from
Mar 10, 2025

Conversation

thaJeztah
Copy link
Member

Go maintainers started to unconditionally update the minimum go version for golang.org/x/ dependencies to go1.23, which means that we'll no longer be able to support any version below that when updating those dependencies;

all: upgrade go directive to at least 1.23.0 [generated]

By now Go 1.24.0 has been released, and Go 1.22 is no longer supported
per the Go Release Policy (https://go.dev/doc/devel/release#policy).

For golang/go#69095.

This updates our minimum version to go1.23, as we won't be able to maintain compatibility with older versions because of the above.

- What I did

- How I did it

- How to verify it

- Human readable description for the release notes

- A picture of a cute animal (not mandatory but encouraged)

Go maintainers started to unconditionally update the minimum go version
for golang.org/x/ dependencies to go1.23, which means that we'll no longer
be able to support any version below that when updating those dependencies;

> all: upgrade go directive to at least 1.23.0 [generated]
>
> By now Go 1.24.0 has been released, and Go 1.22 is no longer supported
> per the Go Release Policy (https://go.dev/doc/devel/release#policy).
>
> For golang/go#69095.

This updates our minimum version to go1.23, as we won't be able to maintain
compatibility with older versions because of the above.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
@codecov-commenter
Copy link

codecov-commenter commented Mar 10, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 59.32%. Comparing base (3d3f780) to head (a9e6180).
Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #5920   +/-   ##
=======================================
  Coverage   59.32%   59.32%           
=======================================
  Files         358      358           
  Lines       29783    29783           
=======================================
  Hits        17669    17669           
  Misses      11145    11145           
  Partials      969      969           
🚀 New features to boost your workflow:
  • Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@thaJeztah
Copy link
Member Author

Thanks!

@thaJeztah thaJeztah merged commit 1673cd8 into docker:master Mar 10, 2025
96 checks passed
@thaJeztah thaJeztah deleted the vendor_min_go_version branch March 10, 2025 19:03
@tianon
Copy link
Contributor

tianon commented Mar 12, 2025

It's ironic that this broke my builds, because while I upgraded Go, the Go compatibility promise famously doesn't apply to the way you hold the toolchain, so 1.23 requires I hold it slightly differently (I've fixed it now, but man, I want off the merry-Go-round 😭 ❤️).

Go Gopher (derogatory)

@thaJeztah
Copy link
Member Author

Wait, what broke?

Is it because "go1.23 downgrading itself to pretend it's go1.22" is different than "go1.23 running as go1.23"? That feature still baffles me TBH

@thaJeztah
Copy link
Member Author

(downgrading itself, as in: internally downgrading features, not the "let's download a different toolchain" variant)

@tianon
Copy link
Contributor

tianon commented Mar 12, 2025

On Go 1.22, rm vendor/modules.txt + grep -E '^(module|go) ' vendor.mod > go.mod + GOFLAGS='-mod=vendor' was enough to successfully use vendor/ during build (even in module mode), and now I have to also include -modfile=vendor.mod or it complains that the vendored modules exist but aren't explicitly referenced consistently between the modfile and vendor/modules.txt (whether I delete it or not, it refuses to use deps from vendor/ unless they're explicitly referenced in both places). 🙃

Go Gopher (derogatory)

(I never thought I'd miss the simplicity of GOPATH, but here we are!)

@thaJeztah
Copy link
Member Author

I want off the merry-Go-round 😭 ❤️

May I recommend TypeScript? They say it's nice

@thaJeztah
Copy link
Member Author

I want off the merry-Go-round 😭 ❤️

May I recommend TypeScript? They say it's nice

Well... that comment didn't age well;

@tianon
Copy link
Contributor

tianon commented Mar 12, 2025

Real big "But Doctor, I Am Pagliacci" vibes coming off that suggestion 😂

I wonder if that'll give https://github.com/MichiganTypeScript/typescript-types-only-wasm-runtime a better framerate in Doom, though. 🤔

@thaJeztah
Copy link
Member Author

and now I have to also include -modfile=vendor.mod

Also .. sigh,,, !

Hopefully this repo can move to a go.mod soon. In the meantime; any changes we should make in our scripts? (I haven't immediately seen issues locally with my "symlink go.(mod|sum) to vendor.(mod|sum)" hack, but maybe I didn't look closely 🙈

@tianon
Copy link
Contributor

tianon commented Mar 12, 2025

Honestly with #5896, it's pretty close to a 100% stock go build being totally sufficient, and IMO that ought to be the goal (rephrased, that's "improve the scripts by deleting them").

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants