Operations

"Operations" is a part of the Compiler Team that takes care of organizational and maintenance work and in general help things moving forward. T-compiler ops lives on Zulip under #t-compiler/ops.

Here is a list of recurring tasks. Ideally run through this list every week. If there are blockers or doubts, after having acquired the right context, don't hesitate to ping people around. Contributors are the best resource of the project (and we want to be mindful of their time) and are always helpful.

You can trigger a discussion about a specific topic, issue or pull request by opening a new topic on Zulip in #t-compiler or, if it needs consensus and more focus from the team, it can be labeled I-compiler-nominated and will be discussed in a meeting (see section Meetings).

Issues hygiene

Prioritization for T-compiler

See here how to prioritization works.

Some useful filters when looking at regressions.

PRs hygiene

Things to do a week before the release:

After the release

Meetings

T-compiler has two kinds of meetings: triage and design meetings. Triage meetings happen weekly on Thursdays (you can subscribe to the Team Compiler calendar from this repository ), there is a tool to generate most of the meeting's agenda (see Triage meetings for details). Design meetings proposals are advanced on the T-compiler repository and scheduled during recurrent steering meetings (where the next design meetings are scheduled). Design meetings also need an agenda and a bit of work to summarize the topic and bring together documentation, invite relevant people and so on.

Weekly triage meeting

First, ensure that relevant issues are labelled as T-compiler:

..and that prioritization has been completed. Regressions labeled with I-prioritize are signaling that a priority assessment is waiting. When this label is added to an issue, the triagebot sends a notification to the #t-compiler/prioritization/alerts Zulip channel.

Ideally, all T-compiler issues with a I-prioritize label should have a priority assigned, or strive to reach this goal: sometimes different factors are blocking issues from being assigned a priority label, either because the report or the context is unclear or because cannot be reproduced and an MCVE would help. Don't hesitate to ask for clarifications to the issue reporter or to other contributors.

Review stable, beta and nightly and try to ensure they are assigned when possible.

The final step prior to generating the agenda is to accept Major Change Proposals (MCP), this is usually automated. MCPs that have been in the Final Comment Period (FCP) phase (identified by having the final-comment-period label) for more than ten days can be accepted. If an MCP has no unresolved concerns (look for the has-concerns label), you can remove the final-comment-period label, add the major-change-accepted label and close the issue.

Finally, the meeting agenda can be generated. Clone and build triagebot and run:

$ cargo run --bin prioritization-agenda

Copy the content into a new HackMD in the "Rust Lang Compiler Team" space. The tool will also download the latest weekly compiler triage logs. In case it didn't work out, manually copy the most recent performance triage logs (doing a bit of cleanup, removing anything that won't display well in Zulip)

Add additional manual details to the agenda:

About two hours prior to the meeting, announce and share the completed agenda in the Zulip thread for the upcoming meeting (creating it if it does not already exist):

Hello @*T-compiler/meeting*, triage meeting in about 2h.
Pre-triage done in #**t-compiler/prioritization/alerts**.
Meeting agenda [on HackMD](https://hackmd.io/aaabbbccc123456)

It is always recommended to re-run the generator and copy any new details over to the agenda as issue statuses on GitHub may have changed.

After the meeting, there are a few closing tasks:

P-high issues triage meeting

About every 6 months we review the queue of open issues labeled with P-high (here the list of past meetings): goal of this meeting is to re-evaluate the priority of these P-high issues, which for a reason or another could be downgraded (too many P-high issues lingering for too long becomes background noise and shadows the real high-priority ones).

We use this tool to generate the agenda.

Triage meetings notes are then uploaded on HackMD.

Rest of the world

These filters are for checking what's happening in other teams

Useful tips

Github Issues Dashboard

You can utilize the GitHub Issues Dashboard to create custom filters. The filters allow you to aggregate both issues and PRs from multiple repositories, and allows applying advanced filters. See https://github.blog/changelog/2025-04-02-github-issues-dashboard-updates/.

Example custom filters

Mostly intended for rust-lang/rust

Filter Description
repo:rust-lang/rust label:P-critical is:open Open P-critical issues
repo:rust-lang/rust label:T-compiler label:P-high is:open Open P-high T-compiler issues
repo:rust-lang/rust label:needs-triage -label:relnotes Untriaged issues
repo:rust-lang/rust label:regression-untriaged Untriaged regressions
repo:rust-lang/rust label:proposed-final-comment-period Issues/PRs with on-going FCP
repo:rust-lang/rust label:proposed-final-comment-period label:T-compiler Issues/PRs with on-going T-compiler FCP
repo:rust-lang/rust label:I-prioritize Unprioritized issues
repo:rust-lang/rust label:needs-triage label:relnotes-tracking-issue Untriaged/unedited relnotes issues
repo:rust-lang/rfcs label:T-compiler is:pr is:open RFCs concerning T-compiler
repo:rust-lang/rfcs label:T-compiler label:proposed-final-comment-period RFCs concerning T-compiler with on-going FCP