From df904d653ceafefb1bd2e145e75f35a5974c4dce Mon Sep 17 00:00:00 2001 From: Summer Warren Date: Thu, 22 Jan 2026 16:47:54 -0800 Subject: [PATCH 1/3] Add instruction to normalize package name --- .../azsdk-tools/sdk-details-in-release-plan.instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md b/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md index c88a598ed1a9..c7c2d69d3fce 100644 --- a/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md +++ b/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md @@ -8,7 +8,7 @@ description: 'Identify languages configured in the TypeSpec project and add it t - For Java and Python, use `emitter-output-dir` for package name if it exists. Otherwise use `package-dir` to get the package name as fallback approach. - For .NET, use namespace property to get package name. - For JavaScript, use `packagedetails:name` property to get package name. - - For Go, use module name and remove `github.com/Azure/azure-sdk-for-go/` to get package name + - For Go, use module name and remove `github.com/Azure/azure-sdk-for-go/` to get package name. If the Go package name doesn't start with `sdk/`, automatically normalize it to the format `sdk/resourcemanager//`. 3. Map the language name in emitter to one of the following in Pascal case(except .NET): - .NET - Java From 7a1a160211484ca1aae3c79a6fa6aa5909b4972c Mon Sep 17 00:00:00 2001 From: Summer Warren Date: Thu, 29 Jan 2026 10:49:55 -0800 Subject: [PATCH 2/3] Add javascript validation --- .../azsdk-tools/sdk-details-in-release-plan.instructions.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md b/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md index c7c2d69d3fce..a4ff107a5f27 100644 --- a/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md +++ b/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md @@ -8,7 +8,7 @@ description: 'Identify languages configured in the TypeSpec project and add it t - For Java and Python, use `emitter-output-dir` for package name if it exists. Otherwise use `package-dir` to get the package name as fallback approach. - For .NET, use namespace property to get package name. - For JavaScript, use `packagedetails:name` property to get package name. - - For Go, use module name and remove `github.com/Azure/azure-sdk-for-go/` to get package name. If the Go package name doesn't start with `sdk/`, automatically normalize it to the format `sdk/resourcemanager//`. + - For Go, use module name and remove `github.com/Azure/azure-sdk-for-go/` to get package name. 3. Map the language name in emitter to one of the following in Pascal case(except .NET): - .NET - Java @@ -36,6 +36,9 @@ description: 'Identify languages configured in the TypeSpec project and add it t **Success Criteria**: Release plan exists or user informed to create one. # Step 3: Update Release Plan with SDK Information +> **(MANDATORY - DO NOT SKIP) ALWAYS validate all package names against the format rules before calling any update tool, even if the user provides SDK details directly. Auto-correct and inform the user of invalid package names.** +> - **JavaScript**: Must start with `@azure/` +> - **Go**: Must start with `sdk/` **Goal**: Update the release plan with the languages and package names identified in Step 1. 1. Use `azsdk_update_sdk_details_in_release_plan` to update the release plan work item with the JSON object created in Step 1. 2. Confirm successful update of the release plan with the SDK information and summary of languages and package names. From 8b07bdc151c951503b55e8fe3a117167d3cb8dd2 Mon Sep 17 00:00:00 2001 From: Summer Warren Date: Fri, 30 Jan 2026 11:07:04 -0800 Subject: [PATCH 3/3] Add examples --- .../sdk-details-in-release-plan.instructions.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md b/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md index a4ff107a5f27..bbf8b4841196 100644 --- a/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md +++ b/eng/common/instructions/azsdk-tools/sdk-details-in-release-plan.instructions.md @@ -36,9 +36,16 @@ description: 'Identify languages configured in the TypeSpec project and add it t **Success Criteria**: Release plan exists or user informed to create one. # Step 3: Update Release Plan with SDK Information -> **(MANDATORY - DO NOT SKIP) ALWAYS validate all package names against the format rules before calling any update tool, even if the user provides SDK details directly. Auto-correct and inform the user of invalid package names.** +> **(MANDATORY - DO NOT SKIP) ALWAYS validate all package names against the format rules AND the examples table before calling any update tool, even if the user provides SDK details directly. Auto-correct and inform the user of invalid package names.** > - **JavaScript**: Must start with `@azure/` > - **Go**: Must start with `sdk/` +> +> **Valid package name examples (compare against these to catch invalid formats):** +> | Language | Valid | Invalid | +> |----------|-------|---------| +> | JavaScript | `@azure/arm-compute` | `arm-compute`, `azure/arm-compute`,`@azure-arm-compute` | +> | Go (management plane) | `sdk/resourcemanager/compute/armcompute` | `sdk/armcompute`, `/sdk/compute`, `github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute` | + **Goal**: Update the release plan with the languages and package names identified in Step 1. 1. Use `azsdk_update_sdk_details_in_release_plan` to update the release plan work item with the JSON object created in Step 1. 2. Confirm successful update of the release plan with the SDK information and summary of languages and package names.