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.

関連

出典