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
  • Prepare agenda content
    • Add T-compiler and libs-impl to unlabelled T-compiler and libs-impl issues
    • Assign priority to unprioritized issues with "I-prioritize" label
    • Process MCPs/FCPs
  • 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 unassigned P-high regressions
    • Summarize I-nominated issues
  • Final reviews
    • Check toolstate
    • Check performance stats
    • Nominate issues
    • Re-sync and check the agenda right before the meeting

Follow ups from previous meeting

  • Remove I-nominated tags of already discussed issues. For that check previous week agenda and Zulip meeting
  • Accept beta nominated and stable nominated backports that have been accepted during the meeting.
  • Decline beta nominated and stable nominated backports that have been declined during the meeting.
  • Notify WG leads about next week's checkins
  • 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, Unassigned P-high regressions and Nominated issues.

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.

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 removing I-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.

Remove to-announce from MCPs/FCPs

As a quick reminder:

MCP = Major Change Proposal FCP = Final Comment Period

Remove all to-announce MCPs as they were already added in the agenda in their corresponding place.

Remove all to-announce FCPs from rust repo, compiler-team repo and forge repo as they were already added in the agenda in their corresponding place.

For now fix announcements output manually. Remove the nonsense no fcps this time lines when there are proposals already filled or when those lines are just repeated.

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

Figure out which working groups' check-ins follow. 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>
The @*WG-prioritization* have done pre-triage in #**t-compiler/wg-prioritization/alerts**
@*WG-prioritization* have 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:

  • Notify the appropriate groups

  • Push them forward, if possible

  • Assign if possible

  • Add P-criticals and unassigned P-highs 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

Check toolstate

Check toolstate for tool breakage and notify teams in the corresponding channels.

Check performance stats

Check perf regressions and notify involved actors.

Nominate P-high issues

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.