-
Notifications
You must be signed in to change notification settings - Fork 191
Document compiler backport nomination/review/decision procedure and process #848
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
base: master
Are you sure you want to change the base?
Conversation
- There are at least **3** compiler team members who vote for approve/reject (i.e. a "**strong | ||
decision outcome**"), and there are no outstanding votes in the opposite direction, then the | ||
backport nomination can be considered to be approved/accepted **by the next compiler triage | ||
meeting**. | ||
- Example: if **3** compiler team members vote **approve**, **1** member vote **don't know**, then | ||
the backport nomination is considered accepted by the next compiler triage meeting. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Discussion:
- Is
N = 3
a good minimum threshold for async backport polls? - Does the
N = 3
need to include>= 1
compiler lead?
A *synchronous* beta/stable backport nomination **may** be considered accepted/rejected **if and | ||
only if** (during the weekly triage meeting): | ||
|
||
- There are sufficient engagement during the backport decision discussion (**at least 2** compiler | ||
team members are present, including **at least 1** compiler team lead), and no significant | ||
disagreements. | ||
- The compiler lead will make the call to accept/reject/postpone the backport nomination. | ||
- A [compiler-ops member](./operations.md) or any compiler team member should leave a comment | ||
announcing the backport decision and backlink to the triage meeting decision message / async | ||
backport decision thread and adjust `{beta,stable}-{nominated,accepted}` labels as suitable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Discussion:
- Is
N = 2
a good minimum threshold for sync backport polls?
So, a few thoughts. I appreciate your effort to explain the topic exhaustively but this feels ... quite a lot of text for what the backport workflow actually is. I would like to review it to see if we can cut some foliage. Second point: I think it's a bit premature at this time to set in stone, with this level of detail, the number of votes to approve backports. Let's not make it look like it's a binary thing (approved or not). During triage meetings only people attending the meeting vote so it's random how many votes we can have. So, yes, let's make some assumptions (n=3 or n=2) but let's be flexible. I'd say we let people evaluate (async) the backport but the I will post on Zulip that we are starting to run this experiment and ask T-compiler members to help with the voting. |
Yes, if there's any way to cut how verbose it is (or idk add some TL;DR), please do leave suggestions!
Yeah we can leave off the concrete numbers. I only Picked Something™ because they were obvious gaps. Re. the specific approvals, it was mostly because release found it hard to determine if sth was actually approved or not (for the async workflow). But this isn't a problem if we double-check during sync triage meetings anyway, and specifically adjust the backport-accepted labels! |
Tip
Part of a meta-effort to document our team policies and processes, cf. #all-hands-2025 > team processes and policies session.
As part of the async compiler backport experiment, I noticed we didn't really have any concrete docs on how compiler handles backport nominations and decisions (esp. the async process that we're experimenting with now, but also the sync process).
How to determine when a decision point was reached for async backport nominations was discussed in Do backport nominations async? zulip thread. Quoting @davidtwco for the async backport process:
In this PR, I took the liberty to pick:
N >= 3
"strong" approve/reject votes with no votes in opposite direction.**N >= 2
"strong" approve/reject votes, whereN
includes at least one compiler lead.I also took the liberty to document a fallback backport decision procedure for compiler leads
r? @davidtwco (and @wesleywiser)
cc @apiraino (compiler-ops 😁)
cc @cuviper (since you raised the "it's hard (for release team) to determine when to know compiler has reached a backport decision" point with me :D)
cc @rust-lang/release
Rendered