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

Any way to build with gotip? #3757

Closed
francislavoie opened this issue Apr 4, 2023 · 3 comments · Fixed by #3860
Closed

Any way to build with gotip? #3757

francislavoie opened this issue Apr 4, 2023 · 3 comments · Fixed by #3860

Comments

@francislavoie
Copy link

francislavoie commented Apr 4, 2023

Because of qtls, I'm not able to build Caddy with gotip to test some upcoming functionality in Go.

$ gotip build                                                                                
# github.com/quic-go/quic-go/internal/qtls
../../../../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

Is there any possible workaround to make builds work? Is my only option to fork qtls to hack in a fix to make the Go 1.20 qtls apply to Go 1.21 as well?

Semi-relatedly, this has been a point of friction with Caddy releases, users tend to want to try to build Caddy with the latest version of Go right away, but usually we need to update our quic-go dependency before they're able to do so, and sometimes (understandably) that isn't ready right away when Go releases.

Is there any reason that qtls can't be prepared well ahead of time to support the next Go version, possibly with a warning in place instead of an error, saying that the APIs are possibly subject to change?

@marten-seemann
Copy link
Member

I hear you. qlts is a pain.

More context: #2727

But I have good news for you. If everything goes according to plan, we won’t need it any more for Go 1.21! crypto/tls is gaining a QUIC API (golang/go#44886), and with a little bit of luck, we’ll even get this extended to support 0-RTT (which would be a requirement for quic-go).

@francislavoie
Copy link
Author

Oooh, nice. Just read through that issue, very fascinating API discussion.

So in theory, from my reading, when the cryptotls branch is merged, gotip should start working? Sounds like it's getting pretty close!

@marten-seemann
Copy link
Member

Almost:

  1. The branch linked from the issue needs to be merged.
  2. Then there’ll be a separate CL for the 0-RTT API.
  3. Once that is merged, I’ll integrate it into quic-go. I already have a branch.

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 a pull request may close this issue.

2 participants