Skip to content

new(vitessio/vitess): horizontally-scalable MySQL (CNCF graduated)#13090

Merged
jhheider merged 5 commits into
pkgxdev:mainfrom
tannevaled:new/vitess
Jun 11, 2026
Merged

new(vitessio/vitess): horizontally-scalable MySQL (CNCF graduated)#13090
jhheider merged 5 commits into
pkgxdev:mainfrom
tannevaled:new/vitess

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

Summary

Adds a pkgx pantry recipe for Vitess — a CNCF-graduated database clustering system for horizontal scaling of MySQL, used in production at YouTube, Slack, GitHub, HubSpot and others.

  • Source: https://github.com/vitessio/vitess/archive/refs/tags/{{version.tag}}.tar.gz
  • Drives the build via make build (not raw go build) so upstream's ldflag-driven version embedding (tools/build_version_flags.sh) and CGO defaults stay consistent with what Vitess ships.
  • NOVTADMINBUILD=1 skips the VTAdmin web UI subbuild (would otherwise need Node + npm).
  • BUILD_GIT_REV / BUILD_GIT_BRANCH are honored by build_version_flags.sh to inject build info without a real git history — but build.env still calls git config core.hooksPath, so we bootstrap a throwaway repo (git init -q + empty commit) before invoking make.
  • build.skip: fix-patchelf — pure-Go static binaries, no need to patchelf.
  • provides: enumerates the ~21 main binaries actually emitted to bin/ per go/cmd/* in the upstream tree (vtgate, vtctld, vttablet, mysqlctl, mysqlctld, vtorc, vtcombo, vtexplain, vtbackup, vtbench, vtclient, vtctl, vtctlclient, vtctldclient, vttestserver, vttlstest, vtaclcheck, topo2topo, zk, zkctl, zkctld).

Test plan

  • CI builds successfully on +linux/x86-64, +linux/aarch64, +darwin/x86-64, +darwin/aarch64
  • vtgate --version test step prints Version: <semver> ... and matches {{version}}
  • vtctldclient --version runs cleanly

🤖 Generated with Claude Code

tannevaled and others added 2 commits May 29, 2026 17:45
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
YAML treats `{` as the start of a flow-mapping. Without quoting, the
parser bails on `{{prefix}}/bin/...` with "did not find expected '-'
indicator". Quoting forces a plain scalar.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
tannevaled and others added 3 commits May 30, 2026 08:57
Previous `provides:` listed 21 binaries but `make build` (via
`go build ./go/...`) actually produces 24 — vtadmin (Go API server),
rulesctl, and vtgateclienttest were being built and copied to
{{prefix}}/bin by the existing `find bin ... -exec cp` line, but
not declared in provides:.

Adds the 3 missing entries and groups provides: by function for
readability. NOVTADMINBUILD=1 is kept (gates the React web UI
which needs node.js+npm, not the Go binary) but now the recipe's
header comment explains explicitly what it does and what it
doesn't, so future maintainers don't think we're trimming the
admin tooling.

Test step gains smoke-checks for the 3 newly-declared binaries.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The smoke check `$B --help 2>&1 | head -1` failed with exit 141
(SIGPIPE). vtgateclienttest is a test harness — it prints a
description and exits non-zero on --help, and the `head -1` pipe
closes early, hitting the binary with SIGPIPE on the way out.

Wrap the smoke loop in `set +e` and ignore the pipe exit so we
just verify the binaries are on PATH and produce output.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@jhheider jhheider merged commit 51e606f into pkgxdev:main Jun 11, 2026
8 checks passed
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.

2 participants