Azure / azure-sdk-tools

Tools repository leveraged by the Azure SDK team.
MIT License
110 stars 175 forks source link

Automatic Mgmt Plane Namespace Reviews #7607

Open ronniegeraghty opened 7 months ago

ronniegeraghty commented 7 months ago

Remove the manual processes around our MGMT Plane Namespace Reviews using API View.

Current Manual Process:

  1. Service partner team opens a github issue using the issue template in the azure-sdk or azure-sdk-pr repo, depending on if they've gone public with their service. Using the issue template, they provide details on their service, a link to the API Spec for their mgmt plane APIs and proposals for the namespaces for each tier 1 mgmt plane language.
  2. Arthur Ma reviews the API Spec and the proposed namespaces and gives his approval if the names look good. If he has objections with the names, those objections are left as comments on the issues, and he and the partner team work through the objections in the issue comments. If new namespaces are agreed upon after objections, the main description of the issue is updated to reflect to new proposed namespaces.
  3. An FYI email is sent out to our architect team. The email contains a link to the github issue, a link to the mgmt plane API spec and the proposed namespaces for each language. The architects have 1 week to make any objections. If no objections are made within the week the names are considered approved and the issue is updated with a comment stating so and is closed. If the architects have objections those are passed along to the partner team via the github issue. If the architects and the partner team come to a disagreement, an email thread is opened between the two groups for them to discuss further. If the two groups aren't getting anywhere in the email thread, an SDK Architecture Board Review meeting is scheduled for them. Follow up meetings are scheduled if needed. Once the architects' objections are resolved, the names are approved.

New Proposal:

When a service team starts a release plan for the first release of their mgmt plane libraries they are prompted to fill out a form where the propose the namespaces for each language. This page should also provide them with the naming patterns for each language and should perform so basic linting on the proposed namespaces (for example: no namespaces should use capital letters besides .NET and the namespaces should all contain their proper language prefix, or perhaps just show the prefix and have a text box just for the end of the namespace). After filling out this form a new API View listing type is created where the namespaces for each language are shown. The API View listing is then assigned to Arthur for review. The page should allow reviewers to leave comments on the specific language names or the names as a whole. This page should also share the API Spec link. Once Arthurs given his approval the review is then assigned to the language architects where they can leave comment etc. If the review has approvals from 1 architect from each language, then the names should be approved, or if the review has been up for 1 week with not comments it should be auto approved. If the review has been up for a week up it has unresolved comments from the architects, it should remain up until those comments are resolved.

ladonnaq commented 6 months ago

7622 is duplicate of this issue. Closed it and kept this one. Here is the info from other issue for reference.


We'd like to come up with a automate process for Data Plane Namespace Reviews. One of the main purposes of this work will be to let partner teams get their namespace approved sooner and have an official record of the approved namespaces.

Current process: Partner teams schedule an intro meeting with the arch board where they must bring at least 1 API View listing for 1 language library. At the intro meeting the partner team and architects discuss and come to an agreement on the names. The proposed namespace for the one language that has an API View listing can be approved in API View. Issues with the current process we'd like to solve: Partner teams must wait until their intro meeting to get feedback from the architects on their proposed namespaces. The approved namespaces are not recorded anywhere besides the meeting recording, which is hard to parse through. We will now start recording the naming decisions in the meeting's github issue. The current system doesn't account for the partner team needing to discuss the architects' proposals with their larger team after the intro meet. Requirements: Architects must see proposed namespaces for all languages to ensure consistency across languages while adhering to language naming patterns, allowing for changes suggested by language architects.