Azure / Azure/azure-rest-api-specs
[EngSys] Enable "development" and "staging" branches for co-development of large specs
- Dominant language
- TypeSpec
- Stars
- 3.1k
- Forks
- 5.9k
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 424
Description
Request from the foundry team:
> We have a branch `foundry/dev` where service teams can quickly iterate over the spec of the features/apis they are adding. This can be used for generation of the service contracts used in the service.
>
> In a second branch `foundry/stage`, we maintain all parts of the spec that are deemed ready and are available for third parties to call (be that PuPr, PrPr, or GA). Here we periodically snap and open a Pull Request to get the changes reviewed and merged into main.
>
> In terms of gates, the most important part is that we want to restrict flow into `foundry/stage`, so we would need PR gates requiring a single approver from my team to merge the PR. No gates are required for the `foundry/dev` branch.
>
> Updates from main into both branches should be managed by my team, so we would need to allow the team to bypass the merge rules for the protected branch.
This is similar to our existing `release-*` branches, which already struggle because GitHub doesn't make it easy to both:
* allow merges from parent
* require PRs with approval for all other changes
But let's see if we can find a solution once and for all.
Contributor guide
Assessment
This issue has not been assessed yet.