Skip to content

Auto-create tracking issues for accepted MCPs #892

Open
@fmease

Description

@fmease

For context, a pre-MCP discussion happened over here: rust-lang/triagebot#2067.

Proposal

I propose that triagebot should automatically create a T-compiler tracking issue over at rust-lang/rust for accepted (compiler) MCPs once their waiting period has passed (either right before or right after automatically closing the MCP).

Motivation: It would make it less likely for accepted MCPs to fall into oblivion which is a confirmed issue that's been discussed in the past (#t-compiler > Unimplemented MCPs? @ 💬; from 2024). For example, I don't even know if we have an accurate and up to date list of accepted but still unimplemented MCPs (I remember that there were motions to compile such a lists some time ago).

Additionally, I tentatively propose the introduction of a label called suppress-auto-tracking (bikesheddable name) to suppress the creation of such a tracking issue which the author can apply at their discretion if they consider a tracking issue to be overkill for their specific MCP for whatever reason (e.g., in case they already have an accompanying implementation PR over at r-l/r and it's clear that that single PR is sufficient to fully realize the MCP). Of course, users with insufficient privileges ought to be allowed to add it via triagebot's labeling commands.

One small issue of triagebot-created issues is the fact that MCP authors who don't have at least GitHub write rights can't modify its description (e.g., to post updates). However, triagebot could simply auto-ping the MCP seconder (who has to have these permissions) in the newly created tracking issue (and optionally all people listed in the MCP section titled Mentors or Reviewers). They can then keep modifying the issue description on behalf of the insufficiently privileged user according to the "update comments" they post in the GH issue.


How should the generated tracking issue look like, roughly? Here's a quick mockup:

  • Title: Tracking issue for MCP <NUMBER>: <TITLE>
    • NUMBER: The issue number in the rust-lang/compiler-team repo.
    • TITLE: The title of the MCP.
  • Labels: C-tracking-issue + T-compiler + B-MCP-approved + S-tracking-unimplemented
  • Assignee: (Maybe) the author of the MCP.

Description:

This is a tracking issue for [MCP {number}](https://github.com/rust-lang/compiler-team/issues/{number}).

### About tracking issues

Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however *not* meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.
Discussion comments will get marked as off-topic or deleted.
Repeated discussions on the tracking issue may lead to the tracking issue getting locked.

### Steps

- [ ] Implement the MCP
- [ ] Adjust documentation

### Unresolved questions

*None so far.*

### Implementation history

*Empty so far.*

Mentors or Reviewers

Process

The main points of the Major Change Process are as follows:

  • File an issue describing the proposal.
  • A compiler team member or contributor who is knowledgeable in the area can second by writing @rustbot second.
    • Finding a "second" suffices for internal changes. If however, you are proposing a new public-facing feature, such as a -C flag, then full team check-off is required.
    • Compiler team members can initiate a check-off via @rfcbot fcp merge on either the MCP or the PR.
  • Once an MCP is seconded, the Final Comment Period begins. If no objections are raised after 10 days, the MCP is considered approved.

You can read more about Major Change Proposals on forge.

Metadata

Metadata

Assignees

No one assigned

    Labels

    T-compilerAdd this label so rfcbot knows to poll the compiler teamfinal-comment-periodThe FCP has started, most (if not all) team members are in agreementmajor-changeA proposal to make a major change to rustc

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions