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

pin quic-go version #185

Closed
wants to merge 1 commit into from
Closed

pin quic-go version #185

wants to merge 1 commit into from

Conversation

IceCodeNew
Copy link
Collaborator

Keep up with the upstream.

@IceCodeNew IceCodeNew changed the title Bump: quic-go/quic-go@v0.42.0 Bump: github.com/caddyserver/caddy/v2@20240419194313-d00824f4a648 Apr 22, 2024
@IceCodeNew
Copy link
Collaborator Author

Fix #183 #184

go.mod Outdated
github.com/caddyserver/caddy/v2 v2.7.6
github.com/caddyserver/caddy/v2 v2.7.6-0.20240419194313-d00824f4a648
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think we should keep it as-is, or even downgrade it. See: https://twitter.com/MohammedSahaf/status/1777509753616265681

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

You are making a good point here, I am with you. However, the question raised remains unresolved. And I still see it necessary to keep the dependencies up to date ON THE MASTER BRANCH. Following are my points:

  1. It is easier to make minor upgrades during the time, rather than solve the problem only when it is a pain in the ass
  2. This project compiles well with the Caddy v2.7.6, it is only when the commit made to the upstream a month ago breaks the compilation. Since we told xcaddy to compile caddy-l4 with the master branch of Caddy, the dependencies of the latest Caddy are always pulled no matter how we pinned it in the go.mod file of this project.
  3. Any pipeline triggered now would likely fail, preventing other PR from having their CI check passed. Action is needed, and pinning/downgrading the caddy in the go.mod file does not seem to work.

Comes to your hot take, it really got me when you pointed out that the division of responsibilities is required for projects maintaining executable files and libraries. And I can see you face the same problem in the relationships between Caddy and its plugins.
Since that is an unsolvable question, I would like to sort out how I think this project has been maintained, and what is missing.

There was a time when I found any attempt to upgrade Caddy would lead to some plugins breaks, due to not catching up with the upstream changes. It turns out to be difficult to locate the changes introduced several months ago (or even years ago), and then come up with a solution.
Also, The PR was merging without a CI check then, while there was a fundamental bug causing the plugin to fail to compile.

That is when I proposed introducing a CI pipeline to this project. By solving the above problems, I take the master branch to be only guaranteed compatible with the master branch of Caddy. And of course, none of the other plugins is taken into testing.

In other words, IMO, the master branch is mainly a series of snapshots that reflect what configurations, at what time, the caddy-l4 can work the latest commit of Caddy then.
Does this idea make sense to you? If not, I think we should have a conversation about what the master branch means, and how we gonna maintain it.

And what if someone is trying to build caddy-l4 with other plugins? What is a practical way we can provide this project to the end-user? I had the same worry about those problems. And I used to propose a solution to maintain a release branch with regularly releasing tags. ( #130 (comment) )
Now I am aware of a similar discussion at caddy-dns/cloudflare#58, and I agree with the conclusion @mholt brought up.

But IMO, we still need another branch with a different xcaddy setting, and IT MUST ALIGNED WITH the caddy version we pinned in the go.mod file, otherwise, the latter one is rendered useless.
The fault should be mine for not actively defending that idea and maintaining effective communication.

Copy link
Collaborator

Choose a reason for hiding this comment

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

And I still see it necessary to keep the dependencies up to date ON THE MASTER BRANCH

It's not how the Go ecosystem works. This breaks more than it resolves.

2. This project compiles well with the Caddy v2.7.6, it is only when the commit made to the upstream a month ago breaks the compilation.

Because it works with v2.7.6, there's no need to upgrade Caddy version in caddy-l4's go.mod file. The way Go module resolution works is different than other languages. The file specifies the minimum required version.

Since we told xcaddy to compile caddy-l4 with the master branch of Caddy, the dependencies of the latest Caddy are always pulled no matter how we pinned it in the go.mod file of this project.

But this is not true. The deps are merged, and then Go find the minimum version of the common dependencies that meet both requirements. If Caddy depends on v1.5.0 of dep A, and caddy-l4 requires v1.9.0 of dep A, then Go (xcaddy) will pull v1.9.0 because it's the minimum that meets both. Go doesn't pull only Caddy's deps requirements just because it's Caddy. The way xcaddy works is by creating a new Go project from scratch that puts both Caddy and caddy-l4 as direct dependencies. In that final build, Caddy doesn't have a special position besides being the plugin ecosystem provider. The Go compiler doesn't give it special consideration just because it's Caddy.

There was a time when I found any attempt to upgrade Caddy would lead to some plugins breaks, due to not catching up with the upstream changes. It turns out to be difficult to locate the changes introduced several months ago (or even years ago), and then come up with a solution.
Also, The PR was merging without a CI check then, while there was a fundamental bug causing the plugin to fail to compile.
That is when I proposed introducing a CI pipeline to this project.

Fair enough, and the CI check was sorely missed. It's appreciated. But...

I take the master branch to be only guaranteed compatible with the master branch of Caddy. In other words, IMO, the master branch is mainly a series of snapshots that reflect what configurations, at what time, the caddy-l4 can work the latest commit of Caddy then.

This is where things go wrong. This guarantee is not accomplished by continuously upgrading Caddy in the go.mod here. It should be via nightly (or some other trigger when Caddy changes) CI runs against Caddy master/HEAD. The purpose of the master branch here is NOT to be a check on Caddy. It's concerned only with itself.

And what if someone is trying to build caddy-l4 with other plugins? What is a practical way we can provide this project to the end-user?

But IMO, we still need another branch with a different xcaddy setting, and IT MUST ALIGNED WITH the caddy version we pinned in the go.mod file, otherwise, the latter one is rendered useless.

I'm not sure I follow where you're going with here. No other branch is needed. The only alignment needed with Caddy is IF a feature of Caddy is used here and Caddy breaks the feature. In that case, we might have to upgrade the minimum required Caddy version here.

Let me explain the issue with this PR differently... If we go with this PR, this command fails:

xcaddy build v2.7.6 --with github.com/mholt/caddy-l4

In fact, I'm pretty sure we can reduce the Caddy version in caddy-l4's go.mod down to v2.6.2, and the plugin will still function will and be built with all versions of Caddy from v2.6.2 to master. If we reduce the Caddy version, all the below commands will work successfully:

xcaddy build v2.6.2 --with github.com/mholt/caddy-l4
xcaddy build v2.6.3 --with github.com/mholt/caddy-l4
xcaddy build v2.6.4 --with github.com/mholt/caddy-l4
xcaddy build v2.7.0 --with github.com/mholt/caddy-l4
xcaddy build v2.7.1 --with github.com/mholt/caddy-l4
xcaddy build v2.7.2 --with github.com/mholt/caddy-l4
xcaddy build v2.7.3 --with github.com/mholt/caddy-l4
xcaddy build v2.7.4 --with github.com/mholt/caddy-l4
xcaddy build v2.7.5 --with github.com/mholt/caddy-l4
xcaddy build v2.7.6 --with github.com/mholt/caddy-l4
xcaddy build master --with github.com/mholt/caddy-l4

Otherwise, we break the users for no benefit.

@IceCodeNew
Copy link
Collaborator Author

Since we told xcaddy to compile caddy-l4 with the master branch of Caddy, the dependencies of the latest Caddy are always pulled no matter how we pinned it in the go.mod file of this project.

But this is not true. The deps are merged, and then Go find the minimum version of the common dependencies that meet both requirements. If Caddy depends on v1.5.0 of dep A, and caddy-l4 requires v1.9.0 of dep A, then Go (xcaddy) will pull v1.9.0 because it's the minimum that meets both. Go doesn't pull only Caddy's deps requirements just because it's Caddy. The way xcaddy works is by creating a new Go project from scratch that puts both Caddy and caddy-l4 as direct dependencies. In that final build, Caddy doesn't have a special position besides being the plugin ecosystem provider. The Go compiler doesn't give it special consideration just because it's Caddy.

Thanks for the correction, I got it wrong about the xcaddy's details.

Allow me to reconstruct the timeline, so we can make the things clear.

  1. At first, I checked the log of action https://github.com/mholt/caddy-l4/actions/runs/8604722335/job/23579439146 made by denpendabot , I was aware it has something to do with the quic-go library, and the version been pulled is not the version pinned in this project.
  2. I update the quic-go version to align with the caddy@master in commit b4b846a (#185) with no good reason. I am misled by the previous experience.
  3. The log of action https://github.com/mholt/caddy-l4/actions/runs/8777751011/job/24083148920?pr=185 tells me I got it wrong. (/home/runner/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.6/listeners.go:516:4: unknown field RequireAddressValidation in struct literal of type quic.Config)
  4. I found out the RequireAddressValidation was deprecated in quic-go@v0.42.0, and the source of problem is that the caddy@v2.7.6 does not compatible with it.
  5. Trying to bump the caddy version to the latest commit as a temporary fix, with the downgrading option been turned down (since I was getting it wrong about how the xcaddy works)

@IceCodeNew
Copy link
Collaborator Author

What is the situation

here is the thing the pipeline of this project is doing:

  1. xcaddy pull the caddy@master, introducing quic-go@v0.42.0

2024/04/08 18:09:42 [INFO] exec (timeout=0s): /opt/hostedtoolcache/go/1.21.9/x64/bin/go get -d -v github.com/caddyserver/caddy/v2@master
go: downloading github.com/caddyserver/caddy/v2 v2.7.6-0.20240407023000-a4a64a6f6ea0
go: downloading github.com/quic-go/quic-go v0.42.0

  1. xcaddy pull this project, and using the direct dependency of this project to replace the caddy's version

go: trying upgrade to github.com/mholt/caddy-l4@v0.0.0-20240311191557-c5d815daed3c
go: accepting indirect upgrade from github.com/caddyserver/caddy/v2@v2.7.6-0.20240407023000-a4a64a6f6ea0 to v2.7.6
go: upgraded github.com/caddyserver/caddy/v2 v2.7.6-0.20240407023000-a4a64a6f6ea0 => v2.7.6

  1. quic-go is not the direct dependency of caddy-l4, so it is not going to be downgraded to v0.41.0 as pinned in the go.mod file
  2. caddy@v2.7.6 does not compatible with quic-go@v0.42.0

What is the best move to fix the current pipeline?

@mohammed90
Copy link
Collaborator

mohammed90 commented Apr 23, 2024

To prove my point, here's my build of Caddy master with an old version (4 months old, December of 2023) this module which depends on Caddy v2.7.5 at the time:

$ xcaddy build master --with github.com/mholt/caddy-l4@78853879f66772f4363a3dbfcd7104e8672dbdb3
2024/04/23 17:13:06 [INFO] Temporary folder: buildenv_2024-04-23-1713.25185395
2024/04/23 17:13:06 [INFO] Writing main module: buildenv_2024-04-23-1713.25185395\main.go
package main

import (
        caddycmd "github.com/caddyserver/caddy/v2/cmd"

        // plug in Caddy modules here
        _ "github.com/caddyserver/caddy/v2/modules/standard"
        _ "github.com/mholt/caddy-l4"
)

func main() {
        caddycmd.Main()
}
2024/04/23 17:13:06 [INFO] Initializing Go module
2024/04/23 17:13:06 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe mod init caddy
go: creating new go.mod: module caddy
go: to add module requirements and sums:
        go mod tidy
2024/04/23 17:13:07 [INFO] Pinning versions
2024/04/23 17:13:07 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe get -d -v github.com/caddyserver/caddy/v2@master
go: added github.com/beorn7/perks v1.0.1
go: added github.com/caddyserver/caddy/v2 v2.7.6-0.20240423131257-868af6a06229
go: added github.com/caddyserver/certmagic v0.20.1-0.20240412214119-167015dd6570
go: added github.com/caddyserver/zerossl v0.1.2
go: added github.com/cespare/xxhash/v2 v2.2.0
go: added github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
go: added github.com/google/pprof v0.0.0-20231212022811-ec68065c825e
go: added github.com/google/uuid v1.6.0
go: added github.com/klauspost/cpuid/v2 v2.2.7
go: added github.com/libdns/libdns v0.2.2
go: added github.com/mholt/acmez/v2 v2.0.0-beta.2
go: added github.com/miekg/dns v1.1.58
go: added github.com/onsi/ginkgo/v2 v2.13.2
go: added github.com/prometheus/client_golang v1.19.0
go: added github.com/prometheus/client_model v0.5.0
go: added github.com/prometheus/common v0.48.0
go: added github.com/prometheus/procfs v0.12.0
go: added github.com/quic-go/qpack v0.4.0
go: added github.com/quic-go/quic-go v0.42.0
go: added github.com/zeebo/blake3 v0.2.3
go: added go.uber.org/mock v0.4.0
go: added go.uber.org/multierr v1.11.0
go: added go.uber.org/zap v1.27.0
go: added go.uber.org/zap/exp v0.2.0
go: added golang.org/x/crypto v0.22.0
go: added golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8
go: added golang.org/x/mod v0.16.0
go: added golang.org/x/net v0.24.0
go: added golang.org/x/sys v0.19.0
go: added golang.org/x/term v0.19.0
go: added golang.org/x/text v0.14.0
go: added golang.org/x/time v0.5.0
go: added golang.org/x/tools v0.19.0
go: added google.golang.org/protobuf v1.33.0
2024/04/23 17:13:28 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe get -d -v github.com/mholt/caddy-l4@78853879f66772f4363a3dbfcd7104e8672dbdb3 github.com/caddyserver/caddy/v2@master
go: downloading github.com/mholt/caddy-l4 v0.0.0-20231204181340-78853879f667
go: downloading github.com/things-go/go-socks5 v0.0.4
go: downloading github.com/smallstep/certificates v0.25.3-rc5
go: downloading github.com/smallstep/truststore v0.13.0
go: downloading go.step.sm/crypto v0.42.1
go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2
go: downloading github.com/stoewer/go-strcase v1.3.0
go: downloading google.golang.org/grpc v1.62.1
go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c
go: downloading github.com/slackhq/nebula v1.7.2
go: downloading github.com/smallstep/pkcs7 v0.0.0-20231024181729-3b98ecc1ca81
go: downloading github.com/smallstep/scep v0.0.0-20231024192529-aee96d7ad34d
go: downloading github.com/go-jose/go-jose/v3 v3.0.3
go: downloading filippo.io/edwards25519 v1.1.0
go: downloading github.com/jackc/pgx/v4 v4.18.3
go: downloading github.com/Masterminds/semver/v3 v3.2.1
go: downloading github.com/huandu/xstrings v1.4.0
go: downloading github.com/imdario/mergo v0.3.16
go: downloading github.com/shopspring/decimal v1.3.1
go: downloading github.com/spf13/cast v1.5.1
go: downloading github.com/go-kit/kit v0.13.0
go: downloading github.com/dgraph-io/ristretto v0.1.1
go: downloading github.com/golang/protobuf v1.5.4
go: downloading github.com/klauspost/compress v1.17.1
go: downloading github.com/golang/glog v1.2.0
go: downloading github.com/go-kit/log v0.2.1
go: downloading github.com/go-logfmt/logfmt v0.6.0
go: upgraded github.com/Masterminds/semver/v3 v3.2.0 => v3.2.1
go: upgraded github.com/Microsoft/go-winio v0.6.0 => v0.6.1
go: upgraded github.com/dgraph-io/ristretto v0.1.0 => v0.1.1
go: upgraded github.com/huandu/xstrings v1.3.3 => v1.4.0
go: upgraded github.com/imdario/mergo v0.3.12 => v0.3.16
go: upgraded github.com/klauspost/compress v1.17.0 => v1.17.1
go: added github.com/mastercactapus/proxyprotocol v0.0.4
go: added github.com/mholt/caddy-l4 v0.0.0-20231204181340-78853879f667
go: upgraded github.com/shopspring/decimal v1.2.0 => v1.3.1
go: upgraded github.com/slackhq/nebula v1.6.1 => v1.7.2
go: upgraded github.com/spf13/cast v1.4.1 => v1.5.1
go: upgraded github.com/stoewer/go-strcase v1.2.0 => v1.3.0
go: added github.com/things-go/go-socks5 v0.0.4
2024/04/23 17:14:25 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe get -d -v
go: downloading github.com/go-chi/chi/v5 v5.0.12
go: downloading golang.org/x/sync v0.7.0
go: downloading github.com/yuin/goldmark v1.7.1
go: downloading github.com/fxamacker/cbor/v2 v2.6.0
go: downloading github.com/smallstep/go-attestation v0.4.4-0.20240109183208-413678f90935
go: downloading github.com/go-logr/logr v1.4.1
2024/04/23 17:15:00 [INFO] Build environment ready
2024/04/23 17:15:00 [INFO] Building Caddy
2024/04/23 17:15:00 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe mod tidy -e
go: downloading github.com/stretchr/testify v1.9.0
go: downloading github.com/google/go-tpm-tools v0.4.2
go: downloading github.com/frankban/quicktest v1.14.4
go: downloading github.com/aws/aws-sdk-go-v2/config v1.26.6
go: downloading github.com/aws/aws-sdk-go-v2/service/kms v1.27.9
go: downloading cloud.google.com/go/kms v1.15.5
go: downloading github.com/aws/aws-sdk-go-v2 v1.24.1
go: downloading google.golang.org/api v0.157.0
go: downloading cloud.google.com/go v0.111.0
go: downloading github.com/aws/aws-sdk-go-v2/credentials v1.16.16
go: downloading github.com/aws/smithy-go v1.19.0
go: downloading github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7
go: downloading github.com/aws/aws-sdk-go-v2/service/sts v1.26.7
go: downloading github.com/aws/aws-sdk-go-v2/service/sso v1.18.7
go: downloading github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3
go: downloading github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11
go: downloading github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10
go: downloading cloud.google.com/go/iam v1.1.5
go: downloading google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10
go: downloading github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10
go: downloading golang.org/x/oauth2 v0.16.0
2024/04/23 17:16:05 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe build -o ./caddy.exe -ldflags -w -s -trimpath
2024/04/23 17:19:14 [INFO] Build complete: .\caddy.exe
2024/04/23 17:19:14 [INFO] Cleaning up temporary folder: buildenv_2024-04-23-1713.25185395
$ ./caddy list-modules --versions
admin.api.load v2.7.6-0.20240423131257-868af6a06229
admin.api.metrics v2.7.6-0.20240423131257-868af6a06229
admin.api.pki v2.7.6-0.20240423131257-868af6a06229
admin.api.reverse_proxy v2.7.6-0.20240423131257-868af6a06229
caddy.adapters.caddyfile v2.7.6-0.20240423131257-868af6a06229
caddy.config_loaders.http v2.7.6-0.20240423131257-868af6a06229
caddy.filesystems v2.7.6-0.20240423131257-868af6a06229
caddy.listeners.http_redirect v2.7.6-0.20240423131257-868af6a06229
caddy.listeners.proxy_protocol v2.7.6-0.20240423131257-868af6a06229
caddy.listeners.tls v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.append v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.console v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.filter v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.filter.cookie v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.filter.delete v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.filter.hash v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.filter.ip_mask v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.filter.query v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.filter.regexp v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.filter.rename v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.filter.replace v2.7.6-0.20240423131257-868af6a06229
caddy.logging.encoders.json v2.7.6-0.20240423131257-868af6a06229
caddy.logging.writers.discard v2.7.6-0.20240423131257-868af6a06229
caddy.logging.writers.file v2.7.6-0.20240423131257-868af6a06229
caddy.logging.writers.net v2.7.6-0.20240423131257-868af6a06229
caddy.logging.writers.stderr v2.7.6-0.20240423131257-868af6a06229
caddy.logging.writers.stdout v2.7.6-0.20240423131257-868af6a06229
caddy.storage.file_system v2.7.6-0.20240423131257-868af6a06229
events v2.7.6-0.20240423131257-868af6a06229
http v2.7.6-0.20240423131257-868af6a06229
http.authentication.hashes.bcrypt v2.7.6-0.20240423131257-868af6a06229
http.authentication.providers.http_basic v2.7.6-0.20240423131257-868af6a06229
http.encoders.gzip v2.7.6-0.20240423131257-868af6a06229
http.encoders.zstd v2.7.6-0.20240423131257-868af6a06229
http.handlers.acme_server v2.7.6-0.20240423131257-868af6a06229
http.handlers.authentication v2.7.6-0.20240423131257-868af6a06229
http.handlers.copy_response v2.7.6-0.20240423131257-868af6a06229
http.handlers.copy_response_headers v2.7.6-0.20240423131257-868af6a06229
http.handlers.encode v2.7.6-0.20240423131257-868af6a06229
http.handlers.error v2.7.6-0.20240423131257-868af6a06229
http.handlers.file_server v2.7.6-0.20240423131257-868af6a06229
http.handlers.headers v2.7.6-0.20240423131257-868af6a06229
http.handlers.invoke v2.7.6-0.20240423131257-868af6a06229
http.handlers.log_append v2.7.6-0.20240423131257-868af6a06229
http.handlers.map v2.7.6-0.20240423131257-868af6a06229
http.handlers.metrics v2.7.6-0.20240423131257-868af6a06229
http.handlers.push v2.7.6-0.20240423131257-868af6a06229
http.handlers.request_body v2.7.6-0.20240423131257-868af6a06229
http.handlers.reverse_proxy v2.7.6-0.20240423131257-868af6a06229
http.handlers.rewrite v2.7.6-0.20240423131257-868af6a06229
http.handlers.static_response v2.7.6-0.20240423131257-868af6a06229
http.handlers.subroute v2.7.6-0.20240423131257-868af6a06229
http.handlers.templates v2.7.6-0.20240423131257-868af6a06229
http.handlers.tracing v2.7.6-0.20240423131257-868af6a06229
http.handlers.vars v2.7.6-0.20240423131257-868af6a06229
http.ip_sources.static v2.7.6-0.20240423131257-868af6a06229
http.matchers.client_ip v2.7.6-0.20240423131257-868af6a06229
http.matchers.expression v2.7.6-0.20240423131257-868af6a06229
http.matchers.file v2.7.6-0.20240423131257-868af6a06229
http.matchers.header v2.7.6-0.20240423131257-868af6a06229
http.matchers.header_regexp v2.7.6-0.20240423131257-868af6a06229
http.matchers.host v2.7.6-0.20240423131257-868af6a06229
http.matchers.method v2.7.6-0.20240423131257-868af6a06229
http.matchers.not v2.7.6-0.20240423131257-868af6a06229
http.matchers.path v2.7.6-0.20240423131257-868af6a06229
http.matchers.path_regexp v2.7.6-0.20240423131257-868af6a06229
http.matchers.protocol v2.7.6-0.20240423131257-868af6a06229
http.matchers.query v2.7.6-0.20240423131257-868af6a06229
http.matchers.remote_ip v2.7.6-0.20240423131257-868af6a06229
http.matchers.vars v2.7.6-0.20240423131257-868af6a06229
http.matchers.vars_regexp v2.7.6-0.20240423131257-868af6a06229
http.precompressed.br v2.7.6-0.20240423131257-868af6a06229
http.precompressed.gzip v2.7.6-0.20240423131257-868af6a06229
http.precompressed.zstd v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.client_ip_hash v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.cookie v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.first v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.header v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.ip_hash v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.least_conn v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.query v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.random v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.random_choose v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.round_robin v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.uri_hash v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.selection_policies.weighted_round_robin v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.transport.fastcgi v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.transport.http v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.upstreams.a v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.upstreams.multi v2.7.6-0.20240423131257-868af6a06229
http.reverse_proxy.upstreams.srv v2.7.6-0.20240423131257-868af6a06229
pki v2.7.6-0.20240423131257-868af6a06229
tls v2.7.6-0.20240423131257-868af6a06229
tls.ca_pool.source.file v2.7.6-0.20240423131257-868af6a06229
tls.ca_pool.source.http v2.7.6-0.20240423131257-868af6a06229
tls.ca_pool.source.inline v2.7.6-0.20240423131257-868af6a06229
tls.ca_pool.source.lazy v2.7.6-0.20240423131257-868af6a06229
tls.ca_pool.source.pki_intermediate v2.7.6-0.20240423131257-868af6a06229
tls.ca_pool.source.pki_root v2.7.6-0.20240423131257-868af6a06229
tls.ca_pool.source.storage v2.7.6-0.20240423131257-868af6a06229
tls.certificates.automate v2.7.6-0.20240423131257-868af6a06229
tls.certificates.load_files v2.7.6-0.20240423131257-868af6a06229
tls.certificates.load_folders v2.7.6-0.20240423131257-868af6a06229
tls.certificates.load_pem v2.7.6-0.20240423131257-868af6a06229
tls.certificates.load_storage v2.7.6-0.20240423131257-868af6a06229
tls.client_auth.verifier.leaf v2.7.6-0.20240423131257-868af6a06229
tls.get_certificate.http v2.7.6-0.20240423131257-868af6a06229
tls.get_certificate.tailscale v2.7.6-0.20240423131257-868af6a06229
tls.handshake_match.local_ip v2.7.6-0.20240423131257-868af6a06229
tls.handshake_match.remote_ip v2.7.6-0.20240423131257-868af6a06229
tls.handshake_match.sni v2.7.6-0.20240423131257-868af6a06229
tls.issuance.acme v2.7.6-0.20240423131257-868af6a06229
tls.issuance.internal v2.7.6-0.20240423131257-868af6a06229
tls.issuance.zerossl v2.7.6-0.20240423131257-868af6a06229
tls.leaf_cert_loader.file v2.7.6-0.20240423131257-868af6a06229
tls.leaf_cert_loader.folder v2.7.6-0.20240423131257-868af6a06229
tls.leaf_cert_loader.pem v2.7.6-0.20240423131257-868af6a06229
tls.leaf_cert_loader.storage v2.7.6-0.20240423131257-868af6a06229
tls.permission.http v2.7.6-0.20240423131257-868af6a06229
tls.stek.distributed v2.7.6-0.20240423131257-868af6a06229
tls.stek.standard v2.7.6-0.20240423131257-868af6a06229

  Standard modules: 121

caddy.listeners.layer4 v0.0.0-20231204181340-78853879f667
layer4 v0.0.0-20231204181340-78853879f667
layer4.handlers.echo v0.0.0-20231204181340-78853879f667
layer4.handlers.proxy v0.0.0-20231204181340-78853879f667
layer4.handlers.proxy_protocol v0.0.0-20231204181340-78853879f667
layer4.handlers.socks5 v0.0.0-20231204181340-78853879f667
layer4.handlers.subroute v0.0.0-20231204181340-78853879f667
layer4.handlers.tee v0.0.0-20231204181340-78853879f667
layer4.handlers.throttle v0.0.0-20231204181340-78853879f667
layer4.handlers.tls v0.0.0-20231204181340-78853879f667
layer4.matchers.http v0.0.0-20231204181340-78853879f667
layer4.matchers.ip v0.0.0-20231204181340-78853879f667
layer4.matchers.local_ip v0.0.0-20231204181340-78853879f667
layer4.matchers.not v0.0.0-20231204181340-78853879f667
layer4.matchers.proxy_protocol v0.0.0-20231204181340-78853879f667
layer4.matchers.socks4 v0.0.0-20231204181340-78853879f667
layer4.matchers.socks5 v0.0.0-20231204181340-78853879f667
layer4.matchers.ssh v0.0.0-20231204181340-78853879f667
layer4.matchers.tls v0.0.0-20231204181340-78853879f667
layer4.matchers.xmpp v0.0.0-20231204181340-78853879f667
layer4.proxy.selection_policies.first v0.0.0-20231204181340-78853879f667
layer4.proxy.selection_policies.ip_hash v0.0.0-20231204181340-78853879f667
layer4.proxy.selection_policies.least_conn v0.0.0-20231204181340-78853879f667
layer4.proxy.selection_policies.random v0.0.0-20231204181340-78853879f667
layer4.proxy.selection_policies.random_choose v0.0.0-20231204181340-78853879f667
layer4.proxy.selection_policies.round_robin v0.0.0-20231204181340-78853879f667
tls.handshake_match.alpn v0.0.0-20231204181340-78853879f667

  Non-standard modules: 27

  Unknown modules: 0

As you can see, depending on an older Caddy did not break the build and produced an executable with caddy@master.

That said, you seem to be emotionally charged over the subject. I'm not the only co-maintainer of this repo, so I'll leave it to the other maintainers who want to jump in. I am a user of this module, so I still care.

@IceCodeNew IceCodeNew removed the request for review from mholt April 23, 2024 14:37
@IceCodeNew
Copy link
Collaborator Author

IceCodeNew commented Apr 23, 2024

As you can see, depending on an older Caddy did not break the build and produced an executable with caddy@master.

That said, you seem to be emotionally charged over the subject. I'm not the only co-maintainer of this repo, so I'll leave it to the other maintainers who want to jump in. I am a user of this module, so I still care.

I see, thanks for taking time sharing your experience and knowledge. I might still be poking around to see if I can come up with a better idea, and I will try my best to not disturb you.

@IceCodeNew IceCodeNew marked this pull request as draft April 23, 2024 14:37
@IceCodeNew IceCodeNew changed the title Bump: github.com/caddyserver/caddy/v2@20240419194313-d00824f4a648 pin quic-go version Apr 23, 2024
@mholt
Copy link
Owner

mholt commented Apr 23, 2024

Thanks for the discussion, I tend to agree with @mohammed90 -- but I hope this will not be an issue soon as we release Caddy v2.8.

@IceCodeNew IceCodeNew closed this Jun 2, 2024
@IceCodeNew IceCodeNew deleted the update-quic-go branch June 2, 2024 08:59
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.

None yet

3 participants