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

Can we only support Go 1.18+ #314

Open
haoxins opened this issue Feb 4, 2024 · 7 comments
Open

Can we only support Go 1.18+ #314

haoxins opened this issue Feb 4, 2024 · 7 comments
Labels
type/feature req Type: feature request

Comments

@haoxins
Copy link
Collaborator

haoxins commented Feb 4, 2024

After the Go 1.22 is released, can we only support Go versions > 1.18?

Why do I have this proposal?

When I started implementing some features for the Nebula client, I found that some popular libraries I wanted to use were based on Go 1.18+.

For examples:

@haoxins
Copy link
Collaborator Author

haoxins commented Feb 23, 2024

According to Go's release policy:

Each major Go release is supported until there are two newer major releases.
For example, Go 1.5 was supported until the Go 1.7 release,
and Go 1.6 was supported until the Go 1.8 release.
We fix critical problems, including [critical security problems](https://go.dev/security),
in supported releases as needed by issuing minor revisions
(for example, Go 1.6.1, Go 1.6.2, and so on).

See https://go.dev/doc/devel/release#policy

I think it's reasonable to support only Go 1.18+.

@haoxins
Copy link
Collaborator Author

haoxins commented Feb 24, 2024

also see a similar issue stretchr/testify#1313

@haoxins haoxins mentioned this issue Feb 24, 2024
3 tasks
@wey-gu
Copy link
Contributor

wey-gu commented Feb 25, 2024

@Nicole00 @veezhang what do you think, please?

@haoxins
Copy link
Collaborator Author

haoxins commented Feb 26, 2024

According to https://hub.docker.com/_/golang/tags?page=1&name=1.17

The latest 1.17 is published 2 years ago.

@Nicole00
Copy link
Contributor

This is a change involving user usage. If some users use go <1.18, this will cause them to be unable to use the new version of Nebula Go sdk.

@haoxins
Copy link
Collaborator Author

haoxins commented Feb 27, 2024

This is a change involving user usage. If some users use go <1.18, this will cause them to be unable to use the new version of Nebula Go sdk.

But they can still use the old version with go mod.
The Go version upgrade policy is quick for the Go developers.
It's not like the Java side IMO.

I have researched some popular libraries in the Go ecosystem.
They don't treat the upgrade of the version field in the go.mod as broken.

We need to get a balance of user commitment and maintenance costs.
For me, the reason is the new language features introduced in the new version of Go
Generic in Go 1.18, slog and slices in Go 1.21, and more.

@haoxins
Copy link
Collaborator Author

haoxins commented Feb 27, 2024

Again, I think we can follow the Go's release policy:

Each major Go release is supported until there are two newer major releases.
For example, Go 1.5 was supported until the Go 1.7 release,
and Go 1.6 was supported until the Go 1.8 release.
We fix critical problems, including [critical security problems](https://go.dev/security),
in supported releases as needed by issuing minor revisions
(for example, Go 1.6.1, Go 1.6.2, and so on).

And I advise that we promise to support the latest 4 versions. 😂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/feature req Type: feature request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants