Azure / Azure/azure-rest-api-specs
Support multi-project namespace approval in a single spec PR
- Dominant language
- TypeSpec
- Stars
- 3.1k
- Forks
- 5.9k
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 424
Description
## Summary
When a spec PR modifies multiple TypeSpec projects (e.g., data-plane + mgmt-plane for a service rename), the namespace approval workflow should detect and display namespaces from all projects, not just the last one processed.
## Current Behavior
The namespace detection uses a flat `{ language: namespace }` map. When two projects define the same languages (e.g., both have dotnet, java, python, typescript, go), the second project's namespaces overwrite the first. Only the last-processed project's namespaces appear in the bot comment.
## Expected Behavior
- Bot comment shows namespaces grouped per project
- Each project's namespaces require independent approval
- Commit status blocks merge until all projects' namespaces are approved
## When This Happens
Rare but real — typically during service renames or reorgs where a team updates namespaces across both data-plane and mgmt-plane projects in one PR.
## Workaround
Split into separate PRs (one per TypeSpec project).
## Related
- PR: https://github.com/Azure/azure-rest-api-specs/pull/44085
- Review comment: https://github.com/Azure/azure-rest-api-specs/pull/44085#discussion_r3478799290
Contributor guide
Research direction
Start with the namespace approval workflow and review PR 44085, especially the linked review discussion, to trace namespace detection, the bot comment, and commit status handling. Done means namespaces from every project appear grouped by project, each can be approved independently, and the status blocks merging until all approvals are complete.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github
- Domain
- ci-cd
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100