Prioritization WG - Procedure
This document details the procedure the WG-prioritization follows to fill the agenda for the weekly meeting of T-compiler
.
The working group focuses mainly on triaging T-compiler
and libs-impl
bugs, deciding if bugs are critical (potential release blockers) or not and building the agenda for the most important things T-compiler
needs to discuss.
General issues review process
- Check the status of the issue
- Try moving it forward if possible (ex. stimulate further comments from the issue author or a reviewer)
- Ask for more info if it's needed
- Is there an MCVE for the issue already?
- Check if it's a regression and label it accordingly (
regression-*
labels) - Figure out the area the issue belongs and label it accordingly (
A-*
labels) - Ping notify groups or relevant teams
- Assign if possible
- Nominate the issue if it needs to be discussed
The procedure in detail
High level overview:
- Follow ups from previous meeting
- Remove
I-nominated
tags of already discussed issues - Notify @pnkfelix about not properly tagged stable/beta-nominated issues
- Create the next meeting agenda using the weekly agenda template
- Remove
- Prepare agenda content
- Add
T-compiler
andlibs-impl
to unlabelled T-compiler and libs-impl issues - Assign priority to unprioritized issues with "I-prioritize" label
- Process MCPs/FCPs
- Add
- Generate Agenda
- Run cli to generate agenda
- Fill agenda announcements
- Add performance logs
- Notify the team about the meeting
- Figure out which WGs need to check-in
- Notify @T-compiler/meeting about the meeting on Zulip
- Add details to the Agenda
- Summarize stable/beta nominations
- Summarize PR's waiting on team
- Summarize
P-critical
and unassignedP-high
regressions - Summarize I-nominated issues
- Final reviews
- Nominate more issues if needed
- Re-sync and check the agenda right before the meeting
Follow ups from previous meeting
- Remove
to-announce
MCPs, only the ones that we've added to the agenda and not the ones that may have showed up between we've built the agenda and we execute this step. - Remove
to-announce
FCPs from rust repo, compiler-team repo and forge repo, only the ones that we've added to the agenda and not the ones that may have showed up between we've built the agenda and we execute this step. - Accept
beta nominated
andstable nominated
backports that have been accepted during the meeting. - Decline
beta nominated
andstable nominated
backports that have been declined during the meeting. - Remove
I-nominated
tags of already discussed issues. For that check previous week agenda and Zulip meeting - Create an empty agenda using our template, as soon as our Thursday's weekly meeting ends. After creating the meeting change document permissions to Write -> Owners.
- Copy content from last week's agenda that is still pending. The relevant sections are
PRs waiting on team
,P-critical
,P-high regressions
andNominated issues
. - Notify WG leads about next week's checkins
Prepare agenda content
Add T-compiler
and libs-impl
labels
Add T-compiler
and libs-impl
labels to corresponding issues that are missing these labels.
- No team assigned unprioritized I-prioritize
- No team assigned stable nominations
- No team assigned beta nominations
- No team assigned I-nominated
- No team assigned PR's waiting on team
Assign priority to unprioritized issues with "I-prioritize" label
We need all I-prioritize T-compiler
and all I-prioritize libs-impl
to be actually prioritized. To do so, we add one of the P-critical
, P-high
, P-medium
or P-low
labels and remove I-prioritize
and also add a text such as:
Assigning
P-XXX
as discussed as part of the Prioritization Working Group procedure and removingI-prioritize
.
The procedure here follows the General issues review process.
Note: triagebot automatically creates a topic and notify @WG-prioritization members once an issue is labelled with I-prioritize
Note #2: These lists should typically be empty when we are close to the meeting.
Note #3: we should not have unprioritized regressions (stable, beta and nightly) and ideally regressions should have an assignee.
Accept MCPs
Accept all MCPs that have been on final-comment-period
for 10 or more days. Basically check that final-comment-period
label was added more than 10 days ago.
To accept, remove final-comment-period
, add major-change-accepted
and close the issue.
Generate Agenda
Run cli to generate agenda
Run triagebot's prioritization cli to generate the agenda.
For that you need to clone https://github.com/rust-lang/triagebot if you haven't done so already.
You need to export your GITHUB_API_TOKEN
on Linux that's typically done by adding
export GITHUB_API_TOKEN=<your key>
to your ~/.profile
file.
And then run:
$ cargo run --bin prioritization-agenda
Copy the content of the generated agenda into the agenda on HackMD.
Fill agenda announcements
Check the compiler calendar to see if there's an outstanding event to announce and add it to the agenda.
Add performance logs
Add Triage Logs to the agenda.
Notify the team about the meeting
Create [weekly meeting] YYYY-MM-DD #54818
topic in #t-compiler/meetings
Zulip's stream and send the following messages:
Hi @*T-compiler/meeting*; the triage meeting will happen tomorrow at <time:YYYY-MM-DDT14:00:00+00:00>
*WG-prioritization* has done pre-triage in #**t-compiler/wg-prioritization/alerts**
@*WG-prioritization* has prepared the [meeting agenda](link_to_hackmd_agenda)
We will have checkins from *WG-X* and *WG-Y*
@**person1** do you have something you want to share about @*WG-X*?
@**person2** do you have something you want to share about @*WG-Y*?
Add details to the Agenda
Summarize stable/beta nominations
- Add them to the agenda explaining:
- Who the author of the PR is
- Who the assignee is
- Which issue fixes, it is a regression? what's the priority?
- Why was it nominated
- Add other important details
Note: triagebot automatically creates a topic and notify @WG-prioritization members requesting addition to the agenda.
Summarize PR's waiting on team
These are PRs waiting for some decision by our team (T-compiler
or libs-impl
).
Try to follow the General issues review process.
We should:
- Add them to the agenda explaining:
- Who the author of the PR is
- Who the assignee is
- What is the issue waiting for
- Add other important details
- Explicitly nominate any issue that can be quickly resolved in a triage meeting.
Note: triagebot automatically creates a topic and notify @WG-prioritization members requesting addition to the agenda.
Summarize P-critical
and unassigned P-high
regressions
Try to follow the General issues review process.
We should:
-
Push them forward, if possible
-
Assign if possible
-
Add
P-critical
s and unassignedP-high
s to the agenda explaining:- If it's assigned or not and to whom
- Does it needs MCVE and/or bisection?
- Are there identified culprits?
- Do already have a PR open that fixes the issue?
- Add other important details
Note: triagebot automatically creates a topic and notify @WG-prioritization members requesting addition to the agenda.
Summarize I-nominated issues
Issues labeled with I-nominated
are important issues that we decide deserve discussion during the weekly meeting.
Try to follow the General issues review process.
We should:
- Check if these issues were already discussed and in that case remove
I-nominated
label - Check if each issue is worth being discussed
- Add them to the agenda explaining:
- Who the assignee is
- Is this an issue or a PR: if an issue, does it have a PR that fixes it?
- Why was it nominated
- Add other important details
Note: triagebot automatically creates a topic and notify @WG-prioritization members requesting addition to the agenda.
Final reviews
Nominate more issues if needed
Check how packed the agenda looks like and if there's room for more nominations.
Re-sync and check the agenda right before the meeting
Re-run the script and re-synchronize contents of the agenda with new information.