Background
The exclude_plugin_* tag list that defines the authbridge-lite build is currently duplicated in four places:
Plus prose in authbridge/CLAUDE.md and the root CLAUDE.md.
All four code copies agree today. The concern (raised by @mrsabath and @huang195 during review of #850, both non-blocking) is drift risk: a missing exclude tag fails open — the plugin silently compiles in, the binary just gets bigger — so a copy that drifts produces a -lite tarball that no longer matches the authbridge-lite image with no build error.
Timing matters here:
Proposal
Extract the list to one location that all four consumers read:
- Option A: a repo-level env var / composite action set once in a shared file.
- Option B: a
.github/lite-tags or similar file that shell / workflows / prose all reference.
- Option C: derive from the plugin registry directly in build tooling (harder — plugins declare themselves via
//go:build !exclude_plugin_<name> markers; a small go run step could enumerate them).
Non-blocking on any one PR; the next person to add or remove a plugin from the lite set is the one who pays.
Related
Background
The
exclude_plugin_*tag list that defines theauthbridge-litebuild is currently duplicated in four places:.github/workflows/ci.yaml:110-111.github/workflows/build.yaml:59.github/workflows/release-binaries.yaml:55(added in build: 👷 Add variants to release binaries #850)authbridge/local-build-and-test.shPlus prose in
authbridge/CLAUDE.mdand the rootCLAUDE.md.All four code copies agree today. The concern (raised by @mrsabath and @huang195 during review of #850, both non-blocking) is drift risk: a missing exclude tag fails open — the plugin silently compiles in, the binary just gets bigger — so a copy that drifts produces a
-litetarball that no longer matches theauthbridge-liteimage with no build error.Timing matters here:
exclude_plugin_lineage— one more tag to keep in sync across four locations.Proposal
Extract the list to one location that all four consumers read:
.github/lite-tagsor similar file that shell / workflows / prose all reference.//go:build !exclude_plugin_<name>markers; a smallgo runstep could enumerate them).Non-blocking on any one PR; the next person to add or remove a plugin from the lite set is the one who pays.
Related
exclude_plugin_lineage)