Azure / azure-sdk-tools

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

RP Name service tree metadata in ADO is often incorrect (Committed for dilithium-2H) #7503

Open ladonnaq opened 8 months ago

ladonnaq commented 8 months ago

Requirement: The logic that ingest the service tree metadata for ARM RP Namespace needs to be redesigned because there are inaccurate RP names for around 20% of the products in ADO. Also, ARM will start allowing service partners to have sub-RPs, which will be the RP name + resource type. Today this information is entered into service tree. There needs to be a redesign of the logic so that the RP name and resource types metadata is retrieved, and the user selects the RP name and resource type from a drop-down menu during onboarding.

Background:
The ARM Namespace metadata contains information on all ARM namespaces, including Private and Test. Services can have multiple ARM namespace so there can be metadata for one or more ARM namespace in service team. The current logic seems to be returning the most current RP Namespace (most recent date). However, this is not always the RP namespace the namespace we want in dataverse or ADO. The RP Namespace field should be the value of the RP that enables the product and that value can change from Private Preview to Public Preview/GA. Also, ARM is going to allow sub-RPs, so we need to also retrieve the resource types.

Initial thoughts on possible approach (need design/requirement work session to refine requirements and discuss approach)

RP/ARM Namespace Metadata in Service Tree

maririos commented 7 months ago

@ladonnaq I lack the context here, Who uses the RP Name and for what? we don't have any dependency on it in our apps or in the specs repo logic

ladonnaq commented 7 months ago

@ladonnaq I lack the context here, Who uses the RP Name and for what? we don't have any dependency on it in our apps or in the specs repo logic

  1. The RP name is related to the namespace for the ARM REST API Spec. In service tree, a product often maps to many services.
  2. The service that owns the RP is the one that also owns the ARM REST API.
  3. In our specs repo the folder name is the RP Namespace. The API Specs in that folder will be used to generate the SDK package (which you know).
  4. From a release plan perspective, we want the release plans to be associated with the service and the ARM REST APIs that enable it. If we don't capture the RP mapping to products, then our data will not be accurate.
  5. For example, Migrate has 2 RP namespaces. Sometimes a product will only be enabled by one, other times by both.
    image
  6. Another example is when a new product is enabled by data plane and management REST APIs. I have seen several scenarios where the product is enabled by the REST APIs for Service xyz and the data plane REST APIs of a different service (which typically owns the new product).
maririos commented 7 months ago

From a release plan perspective, we want the release plans to be associated with the service and the ARM REST APIs that enable it. If we don't capture the RP mapping to products, then our data will not be accurate.

We have the PR, so we know the directory. why do we need to RP? like again. nothing in here suggest there is automation or a process that needs the name of the RP

maririos commented 7 months ago

I understand the RP is important. I don't understand why it is important for the Release Planner or the dashboard. If this is just a copy of the data in Service Tree, why can't the person who needs it (who?) goes and looks there?