Skip to content

Start testing against Go 1.25#1014

Merged
brandur merged 1 commit intomasterfrom
brandur-go-1-25
Aug 16, 2025
Merged

Start testing against Go 1.25#1014
brandur merged 1 commit intomasterfrom
brandur-go-1-25

Conversation

@brandur
Copy link
Copy Markdown
Contributor

@brandur brandur commented Aug 13, 2025

Start testing against Go 1.25. I didn't change the go.mod version. I
figure it's probably fine to leave that as low as is convenient for us
to maintain as a courtesy to those at companies where it's harder to
upgrade.

@brandur brandur force-pushed the brandur-go-1-25 branch 3 times, most recently from 7bc728b to 2030523 Compare August 13, 2025 09:04
Comment thread .github/workflows/ci.yaml
Comment on lines +41 to 45
# Also run a couple previous Go versions against the latest Postgres version:
- go-version: "1.24"
postgres-version: 17
- go-version: "1.23"
postgres-version: 17
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thoughts on removing the v1.23 from here? I don't think it adds much tbh.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm kindaa thinking that we should lave that in for the time being. It's still the version of Go in all the go.mods, and we should be testing against what our ostensible lowest version is.

We could bump all the go.mod's to 1.24, but I don't think we should — only the last two versions of Go are supported in practice, but a lot of people get stuck behind, at least for a while. If there's a feature we really want in the latest or something we really wanted to drop, I can see the logic for an aggressive push for new Go versions, but given there isn't this time around ... may as well leave that lower version constraint as low as is convenient. At least for now.

Thoughts?

Start testing against Go 1.25. I didn't change the `go.mod` version. I
figure it's probably fine to leave that as low as is convenient for us
to maintain as a courtesy to those at companies where it's harder to
upgrade.
Comment thread .github/workflows/ci.yaml
- go-version: "1.25"
postgres-version: 15
- go-version: "1.25"
postgres-version: 14
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ended up flattening this matrix out because I don't think it was working as intended before, or if it was, it was only doing so accidentally.

GitHub Actions matrixes operation quite unintuitively. I read those docs three times and still don't 100% understand it, but if I added only 1.24/17, it would buit it on all of Postgres 17/16/15/14, which is obviously not what was intended. Found it easier just to unroll the matrix like this which isn't too many more LOCs anwyay.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the intention was to test the latest Go version against all recent supported Postgres versions, and then separately test each recent Go version against the latest Postgres. This was on the assumption that cross PG-Go version incompatibilities are super unlikely, whereas it's more likely that some dependency doesn't work as well in a particular Go version or against a certain PG version.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yeah, I totally understood that part of it. What I meant is just that the matrix functionality is kind of weirder than you'd expect. If you wanna play with it a bit, I'm sure there must be another way to get it working as intended, but my brain was too strained to figure it out.

@brandur brandur requested a review from bgentry August 14, 2025 14:54
Comment thread .github/workflows/ci.yaml
- go-version: "1.25"
postgres-version: 15
- go-version: "1.25"
postgres-version: 14
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the intention was to test the latest Go version against all recent supported Postgres versions, and then separately test each recent Go version against the latest Postgres. This was on the assumption that cross PG-Go version incompatibilities are super unlikely, whereas it's more likely that some dependency doesn't work as well in a particular Go version or against a certain PG version.

@brandur
Copy link
Copy Markdown
Contributor Author

brandur commented Aug 16, 2025

Thanks!

@brandur brandur merged commit 9c54d2b into master Aug 16, 2025
21 of 22 checks passed
@brandur brandur deleted the brandur-go-1-25 branch August 16, 2025 03:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants