-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Motivation
Protobuf definitions define the public gRPC contract. Without automated breaking-change detection, incompatible edits can merge and silently break external clients, operators, and older binaries.
Current state
CI already runs proto formatting (clang-format) and a custom Go-based linter (.github/workflows/proto-lint.yml). There is no buf workspace or buf breaking gate yet.
Scope
Introduce buf breaking in CI: compare the working tree (or PR head) against a reference revision (e.g. origin/main or a tagged snapshot) and fail the job on wire-incompatible changes. Add a root buf.yaml (and related config) covering repository .proto sources while excluding vendored trees such as subprojects/ if needed.
Possible solution
- Add
buf.yaml/buf.lock(or documentedbreakingagainst git ref). - New workflow job or extend
proto-lint.ymlwithbuf breaking(official action or install). - Document local invocation for contributors.
Definition of done
A PR that introduces a breaking proto change without an explicit compatibility story fails CI; maintainers can run the same check locally; exclusions and roots are documented.
Alternatives
Host modules on Buf Schema Registry later; keep git-based breaking only for v1.