TL;DR

  • Buf でモジュールを作るときは、基本的に buf lint のルールに従えばよい。
  • パッケージ名には組織、目的、バージョンの 3 つを入れ、ファイルパスはパッケージ名と一致させる。

内容

パッケージ名の構成

パッケージ名には、組織、目的、バージョンの 3 つの要素を入れる。

  • 組織: ユーザ名や組織名(例: google)
  • 目的: システム名やプロダクト名(例: google.bigtable、google.datastore、google.pubsub、google.spanner)。関連するモジュールが複数あれば、google.cloud.compute、google.cloud.kms のようにグループにまとめてもよい
  • バージョン: v1 や alpha1 などのバージョン番号

ファイルパスの構成

ファイルパスはパッケージ名と一致させる必要がある。たとえば foo.bar.v1 というパッケージなら、ディレクトリは次の構成にする。

.
└── foo
    └── bar
        └── v1
            └── example.proto

一致していないと、buf lint のルールに引っかかってエラーになる。

キーワード

関連