Azure / Azure/azure-dev

Version the extension contract and lock down GA.

Open
#9,663 0 comments 0 reactions 1 assignee Claimed by @vhvb1989 View on GitHub
area/extensions enhancement
Dominant language
Go
Stars
569
Forks
364
Avg merge
2d 19h
Merged PRs (30d)
136

Description

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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.