Vendor Go dependencies - #45
Conversation
Pin all Go dependencies in the vendor directory so builds are reproducible without network access and dependency versions are explicitly tracked in the repository. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
dorkitude
left a comment
There was a problem hiding this comment.
I validated this PR at 02183c6: go test -mod=vendor ./..., go vet -mod=vendor ./..., and go mod verify all pass. It also merges cleanly with current master, and a fresh go mod vendor produces no vendor diff.
The blocking concern is maintenance: this adds 342,009 lines across 780 files (about 14 MB), after which normal Go commands automatically prefer vendor/, but the PR adds no documented dependency-update workflow or automated stale-vendor check. A future go.mod change can therefore leave the repository building against stale checked-in sources. Before adopting vendoring, please add a focused contributor workflow and an automated check equivalent to regenerating vendor and requiring a clean diff. The PR should also explain why checked-in vendor is needed in addition to the existing go.sum pinning and Nix vendorHash; that tradeoff is what justifies the permanent repository cost.
Summary
vendor/directory usinggo mod vendorTest plan
go build -mod=vendor ./...succeedsgo vet -mod=vendor ./...passes🤖 Generated with Claude Code