teleport/buf.work.yaml

5 lines
49 B
YAML
Raw Normal View History

Use to Buf to lint, format and generate api/ protos (#15856) Change the proto layout of `api/` to a more standard setup, allowing the use of modern tools (like Buf) to format/lint (and maybe, one day, generate sources). The new layout looks like this: ``` api/ proto/ <- root of protos and proto imports teleport/ <- base package for Teleport protos (akin to "google/" or "gogoproto/") legacy/ <- root of "legacy" protos (most linters disabled) client/ proto/ types/ events/ webauthn/ wrappers/ ``` Non-legacy `api/` protos are expected to follow this layout: ``` api/ proto/ teleport/ mynewpackage/ <- package name v1/ <- protos explicitly versioned gen/ proto/ <- root for generated sources (multi-language possible, separate from hand-written code) go/ mynewpackage/ v1 <- generate Go sources go here. ``` Some outstanding issues, like lack of `go_package` declarations and non-standard import paths (`import "github.com/gravitational/teleport/.../some.proto"`) are fixed. Legacy protos still have irregular package declarations. It's possible to fix that, but it's a bit harder to reason about, as generated sources change in possibly-meaningful ways. Future iterations could change legacy packages to match the directory structure and apply a similar change to protos within lib/ packages, but this seems sufficient for a first step. * Add Buf to buildbox * Unify API protos under Buf * Fix proto generation * Reformat protos * Update generated protos * Generate protos using Buf * Appease linter * Review: make sure gogo protobuf versions are in sync * Clean leftovers from previous attempts * Fix operator/Makefile * Rename internal make gRPC targets to `*/host` * Sort `make fix-license` targets (nit)
2022-08-26 18:11:38 +00:00
version: v1
directories:
- api/proto
- proto