-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add the ARM review labels only after NewAPIVersionRequired is addressed #6076
Comments
@bdefoy I have some clarifying questions. Re:
If I understand correctly, you are asking for it to be made clearer to the PR submitter what is the meaning of the
If I understand correctly, the idea here is that as long as the And you also don't want to see the
OK, so this is basically part of the instructions the PR submitter should follow when addressing the |
It looks like we already have a bot comment for this label. E.g., Azure/azure-rest-api-specs#24010 (comment). The comment mentions that a new API version should be added and why, but it should also tell the PR author that the ARM review will not continue until that is addressed. Also, yes, they should need to
Yes,
Exactly.
Yes 👍 cc @rkmanda |
@konrad-jamrozik I made some edits to my previous comment based on feedback from Roopesh. In summary, the bot should:
|
@bdefoy can you check my understanding of how things work below? It goes a bit out of scope of this issue, but I am trying to wrap around my head around the broader workflow. Here are some scenarios, based on your guidance and on this diagram: Scenario A, "ARM changes required, no new API version required", as currently implementedNote the current implementation of scenario A is also how things should work.
Scenario B, "New ARM API version required", as it should work
Scenario B, "New ARM API version required", as currently implemented
Invariants (sanity checks)There are some invariants that should always hold true. I am considering adding some of invariant checks in the source code, and emitting a warning if they are violated, as an additional method of verifying if the logic is correct. These invariants are to hold after the automation processed all labelling updates after given set of commits has been pushed to a PR.
|
Yes, these steps are correct and working as intended in the workflow.
I believe it already is automated. The PRs you see in that query are exceptions, so there might be a bug in this part of the workflow. However, as I'm writing this, I only see 16 PRs with both
Agreed, but once again 14 of 2,800+, so a small number.
👍
All the steps here look right to me, but I am not sure about this one. Searching through the PRs, it does look like it is the case where both labels stay on the PR when the breaking change is approved. However, I'm not sure if that's intentional or not. I think it is fine if that is the way it works. This also reminds me that there is another label,
Yes, this seems accurate to what is currently happening. Also to note here, I believe it is more common the case that breaking changes are not approved. So, it's common that the PR author is publishing more commits to address the breaking changes while the
These all look accurate to me. The only exceptions to these I can think of are when there are either mistakes by people manually editing labels or bugs in the automation.
The only exception for the above is if for some reason the automation fails to add/remove these labels, then some reviewer may want to manually add/remove them.
The only exception for the above is if the ARM reviewer or the PR author make a mistake. So, both author and reviewer should be able to add or remove. E.g., the PR author might remove the label without first addressing the reviewer's comments.
Above looks good.
Yes to above, except for what I wrote earlier (not sure if both
👍
Above seems correct, but this is commonly not the case for PRs at the moment. Also, I think the check that adds |
@bdefoy re // If exists both "BreakingChangeReviewRequired" and "NewApiVersionRequired",remove the "NewApiVersionRequired"
if (BreakingChangeLabels.every((l) => labelToEmit.includes(l))) {
labelToEmit = labelToEmit.filter((l) => l !== "NewApiVersionRequired");
} The diagram says: Update 5/23/2023@bdefoy I believe we most likely want to treat This is because:
|
@bdefoy I think we should add the following:
Do you agree with the above? |
I grokked the code a bit more and I have a few interesting insights. How adding
|
@weshaggard @rkmanda @bdefoy please have a look at the PR, thx! :) |
The change has been deployed to production. Details here. |
As a part of the automation, it should be made clear that the author needs to follow up with the
NewAPIVersionRequired
action label to create a new API version before moving on to the ARM API review. Only after theNewAPIVersionRequired
label is addressed should theWaitForARMfeedback
label be added, making the PR actionable for the ARM reviewers.Additionally, when the
NewApiVersionRequired
label is added by automation, it should remove theWaitForARMFeedback
label, add theARMChangesRequested
label, and add a comment for the PR Author to remove theARMChangesRequested
label once they have created a new API version or obtained an exception from the Breaking Changes Review Board.The text was updated successfully, but these errors were encountered: