-
Notifications
You must be signed in to change notification settings - Fork 439
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
all: align Go support with upstream policy #2705
Conversation
277175e
to
613c797
Compare
BenchmarksBenchmark execution time: 2024-06-26 14:57:39 Comparing candidate commit 7ba62b2 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 46 metrics, 1 unstable metrics. |
This PR is stale because it has been open 20 days with no activity. Remove stale label or comment or this will be closed in 10 days. |
12d2e81
to
b5d7300
Compare
The Go project supports only the two most recent language versions. See https://go.dev/doc/devel/release#policy. Older language versions do not receive bug/security fixes. This commit aligns the dd-trace-go support policy with the official one, dropping support for the third most recent language version (1.20 as of this commit). This will let us more quickly adopt new features from Go, such as structured logging from slog or runtime execution trace flight recording, or any other new APIs added in the future.
b5d7300
to
9a418bb
Compare
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.
LGTM, but I think we should be careful with any toolchain directive in our go.mod
files.
internal/exectracetest/go.mod
Outdated
go 1.20 | ||
go 1.21 | ||
|
||
toolchain go1.22.2 |
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.
toolchain go1.22.2 | |
toolchain go1.21.11 |
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.
Can you remove this if
block here ? I also seems mentions to go 1.20 in the CI in multios-unit-tests.yml
and in parametric.yml
. Can we switch to stable
?
It was previously at 1.22.2 (what I ran go mod tidy with locally). However, that would mean that we wouldn't get any 1.21 test coverage as the 1.21 toolchain would download the 1.22.2 toolchain and run the tests with that.
We run parametric tests with the oldest Go language version we support. As we're now aligning with the official Go support policy, that would now be what the Go GitHub Actions tooling calls "oldstable".
@eliottness Done, thanks! I opted for "oldstable" since that seems to match what we did before (use the oldest supported version). Related, I wanted to use "oldstable" and "stable" everywhere but there were a few places where we need to explicitly provide the Go version. I considered some kind of templating so we could define oldstable & stable in one place but I didn't see an easy way to do that with GitHub Actions. Perhaps defining variables for the repository (like secrets, but not secret)? Can do that as a followup. |
What does this PR do?
Align our Go support policy with the official policy of the Go project
Motivation
The Go project supports only the two most recent language versions. See
https://go.dev/doc/devel/release#policy. Older language versions do not
receive bug/security fixes. This commit aligns the dd-trace-go support
policy with the official one, dropping support for the third most recent
language version (1.20 as of this commit). This will let us more quickly
adopt new features from Go, such as structured logging from slog or
runtime execution trace flight recording, or any other new APIs added in
the future.
Reviewer's Checklist
Unsure? Have a question? Request a review!