For fully bazel repositories, buf build may not be possible to use for some variety of reasons (in our case, we're using a many repo setup and have to account for complexities like bazel-generated files, we do not want to publish packages to multiple places.)
While it is easy to just use buf breaking anyway by constructing the image file using proto_descriptor_set, this is not spelled out in a user-friendly way and requires a bit of playing connect the dots ("oh a buf image is just an extended proto file descriptor, and I can build one of those through other means.")
It'd likely be helpful for other end users if this was made clearer in rules_buf's documentation.
On our end, we solved our build integration using a finalizer macro to create the lockfile image and apply linting, and have our own in-house lint to enforce the use of said finalizer macro.
For fully bazel repositories, buf build may not be possible to use for some variety of reasons (in our case, we're using a many repo setup and have to account for complexities like bazel-generated files, we do not want to publish packages to multiple places.)
While it is easy to just use buf breaking anyway by constructing the image file using
proto_descriptor_set, this is not spelled out in a user-friendly way and requires a bit of playing connect the dots ("oh a buf image is just an extended proto file descriptor, and I can build one of those through other means.")It'd likely be helpful for other end users if this was made clearer in rules_buf's documentation.
On our end, we solved our build integration using a finalizer macro to create the lockfile image and apply linting, and have our own in-house lint to enforce the use of said finalizer macro.