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

Feature - support build with Go 1.21 #1837

Closed
yorickdowne opened this issue Aug 23, 2023 · 8 comments
Closed

Feature - support build with Go 1.21 #1837

yorickdowne opened this issue Aug 23, 2023 · 8 comments
Assignees

Comments

@yorickdowne
Copy link

yorickdowne commented Aug 23, 2023

Rationale

Go 1.21 is the current stable implementation, and will be the lowest supported version once Go 1.22 releases in Q1 2024.

Implementation

The quic-go dependency would need to be updated from 0.33.0 to something more recent that supports Go 1.21, e.g. 0.37.3

Error message when building with Go 1.21 currently:

21.00 # github.com/quic-go/quic-go/internal/qtls
21.00 /go/pkg/mod/github.com/quic-go/quic-go@v0.33.0/internal/qtls/go121.go:5:13: cannot use "The version of quic-go you're using can't be built on Go 1.21 yet. For more details, please see https://github.com/quic-go/quic-go/wiki/quic-go-and-Go-versions." (untyped string constant "The version of quic-go you're using can't be built on Go 1.21 yet. F...) as int value in variable declaration

quic-go from 0.37 on no longer requires its own TLS code, which means it should survive updates to the Go compiler far more easily:

"With the upcoming Go 1.21 release, we're now able to rely on the Go standard library's TLS implementation's QUIC support."

https://github.com/quic-go/quic-go/releases/tag/v0.37.0

@ngotchac
Copy link
Contributor

Note that the dependency graph is something like this:

bsc -> prysm -> libp2p -> quic-go

libp2p is compatible w/ Go 1.21 (and quic-go) ; so from the PoV of bsc prysm needs to be updated

@brilliant-lx
Copy link
Collaborator

brilliant-lx commented Oct 24, 2023

the latest prysm v4.1.0 still not support golang v1.21 yet, we have the dependency right now.
BSC can upgrade to v1.21, once prysm supports v1.21,

@yorickdowne
Copy link
Author

Prysm builds fine with golang 1.21 on my machine, even as their official builds aren’t using it yet.

@yorickdowne
Copy link
Author

You have about 2 months before Go 1.20 is no longer supported by its maintainers. Prysm v4.1.1 builds with Go 1.21 for me.

@zzzckck
Copy link
Collaborator

zzzckck commented Dec 21, 2023

You have about 2 months before Go 1.20 is no longer supported by its maintainers. Prysm v4.1.1 builds with Go 1.21 for me.

We can support it in next release as long as Prysm supports Go 1.21 now.

@buddh0
Copy link
Collaborator

buddh0 commented Dec 21, 2023

image I build prysm with the newest code in develop ,but still report quic-go issue

to solve this problem, should change go-libp2p version to v0.30.0 from v0.26.2,
because go-libp2p v0.30.0 is the first version include quic-go 0.37.0
Unfortunately, v0.30.0 is not compatible with v0.26.2, so I add a Feature Request to prysm .
once prysm support go v1.21, bsc client will support it

@buddh0
Copy link
Collaborator

buddh0 commented Dec 26, 2023

develop branch of prysm can build with go v1.21 now , but not tagged
once a tag released, bsc will support it

@buddh0
Copy link
Collaborator

buddh0 commented Jan 15, 2024

have supported in latest develop

@buddh0 buddh0 closed this as completed Jan 15, 2024
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

No branches or pull requests

5 participants