Skip to content

chore(ci): add buf breaking checks for protobuf APIs #573

@3Hren

Description

@3Hren

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 documented breaking against git ref).
  • New workflow job or extend proto-lint.yml with buf 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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions