caddy: pin unmerged WebTransport PR #7669 via --replace, with snapshot versioning#5
Open
passcod wants to merge 1 commit into
Open
caddy: pin unmerged WebTransport PR #7669 via --replace, with snapshot versioning#5passcod wants to merge 1 commit into
passcod wants to merge 1 commit into
Conversation
passcod
force-pushed
the
caddy-webtransport-build
branch
from
July 1, 2026 11:19
d1da789 to
460085f
Compare
passcod
force-pushed
the
caddy-webtransport-build
branch
from
July 1, 2026 11:22
460085f to
5f76a86
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 Switches the Caddy build from a fixed upstream release (
v2.11.4) to stock Caddymasterwith the unmerged WebTransport PR (#7669) injected via--replace, and introduces an apt-monotonic snapshot version scheme.Why
We want Caddy to terminate/reverse-proxy WebTransport on the same HTTP/3 socket it already serves (to expose an HTTP backend over WT with self-signed, hash-pinned certs where WebPKI/custom-CA trust isn't feasible). That capability is #7669, which isn't in any tagged release yet. We already carry the certmagic fd-passing fix the same way, so this just adds a second
--replace.I verified #7669 applies to current
masterwith no conflicts, and that the resulting tree builds, vets, and adaptsenable_webtransportcorrectly.How the patch is sourced
#7669is unmerged, so its commits live only on the author's fork. We pin the exact PR-head commit (CADDY_REFin the workflow), rather than track a branch:go.sumrecords its hash, so a force-push / rebase / delete on the source can't silently change what we build, and integrity is guaranteed.CADDY_REFin a PR here — same model as the certmagic pin.CADDY_REPO.Versioning
Builds are versioned
{base}+git{count}.{sha}-bes{rev}, e.g.2.11.4+git25.13a4c3f4-bes1:{base}+git{count}.{sha}describes the upstream master commit #7669 sits on (merge-base), so the count is immune to the size/shape of the PR's own commits.+sorts after the base release, so our snapshot supersedes stock upstream in apt;{base}advances on its own as upstream tags new releases on the master line.-bes{rev}(BES_REV) is our packaging/patch revision, bumped when the patch or packaging changes but the upstream base hasn't moved.Workflow header comments document which knob to turn when, and how to unwind each patch: once #7669 ships in a release, drop the
versionjob + the caddy--replaceand revert to a plainxcaddy build vX.Y.Z; the certmagic--replace(now pinned to the v0.25.4 release, which carries certmagic#380) drops once the Caddy we build requires certmagic >= v0.25.4.Verified
The version-derivation logic, run against the canonical repo + the pinned #7669 commit, yields
2.11.4+git25.13a4c3f4-bes1and confirms the commit is reachable. The full CI run is unproven here (no runner), but there is no longer any external prerequisite for it to succeed.