Skip to content

Version the extension contract and lock down GA. #9663

Description

@tg-msft

Now that we've GA'ed extensions, I think we should lock down the contract and start versioning our .proto files by doing something like:

  1. Move the current .proto files to somewhere like /extensions/proto/v1 so they're easy to discover. We could also maybe consider /schemas/extensions/proto/v1 instead of we wanted all of our contracts to live in one spot.
  2. Change the name of the package in those .proto files from azdext to something more like azd.extensions.v1.
  3. Copy v1 to a sibling v2beta and change the package names to azd.extensions.v2.
  4. Remove telemetry.proto from v1 since it was added last night and should only exist in v2beta for now.
  5. Add a linting rule that runs buf breaking to make sure v2beta only adds to v1. Maybe consider a CODEOWNERS line that requires explicit approval from a handful of people if you touch anything in the v1 folder since that's now GA.
  6. Change azdext to generate off v2beta.

If people really hate moving the .proto files, then I think we can just do the v1 / v2beta versioning in the current /cli/azd/grpc/proto folder. We should also double check that's the right way to version GRPC because I've never gone deep on the sharp edges there.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions