TL;DR
Protocol Buffers のスキーマの破壊的変更を検知する Buf CLI のコマンド。
仕組み
変更前の状態を --against で指定し、今のスキーマと比べる。たとえば Git でコミットした状態と比べるときは .git を指定する。
設定は、ほかのコマンドと同じく buf.yaml に書く。use で検知に使うルールを指定でき、指定しなければ FILE が使われる。
version: v2
breaking:
use:
- WIRE
- FILE_NO_DELETE例
コミット済みの proto ファイルで、enum の値 CONDITION_RAINY = 2; をコメントアウトしてから実行すると、削除が検知される。
$ buf breaking proto --against '.git'
proto/radish/weather/v1/weather.proto:5:1:Previously present enum value "2" on enum "Condition" was deleted.