Skip to content

docs(rfc): add RFC 000.0002 Flutter RFC Review & Decision Process - #4

Open
jtmcdole wants to merge 4 commits into
rfc000.001from
rfc000.002
Open

docs(rfc): add RFC 000.0002 Flutter RFC Review & Decision Process#4
jtmcdole wants to merge 4 commits into
rfc000.001from
rfc000.002

Conversation

@jtmcdole

Copy link
Copy Markdown
Member

Establish the review, socialization, and decision-making lifecycle for
Flutter Requests for Comments (RFCs) to disentangle high-level
architectural decision-making from code review across Flutter-owned
repositories.

Key elements established:

  • Self-contained threshold criteria distinguishing One-Pagers, Two-Pagers,
    and mandatory Full Design Docs / RFCs.
  • Clear roles for Author, Shepherd, Subsystem Tech Leads (TLs), the Flutter
    TLs group, and Flutter Leads.
  • 3-stage review lifecycle: Proposal & Draft PR (AAA.000), Socialization
    & The Dash Forum, and Asynchronous Approvals.
  • Optional Final Comment Period (FCP) for cooling off without stalling
    uncontroversial consensus.
  • Pre-merge sequential numbering constraint guaranteeing that AAA.000
    never lands in main and rejected designs never burn sequential numbers.
  • Federated escalation path to the Flutter TLs group for deadlock resolution.

Fixes: #3


Stack created with GitHub Stacks CLIGive Feedback 💬

@jtmcdole

Copy link
Copy Markdown
Member Author

TODO: make sure to have wording around "no pocket vetos"

@Piinks Piinks left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread rfc/000.0002-flutter-rfc-review-process.md
* **Subsystem Tech Leads (TLs)**: The technical leads overseeing the domains touched by the proposal.
* Flutter TLs **SHOULD** know about designs touching their systems.
* Formal sign-off requires approval from the primary Subsystem TL (or an appointed member) and affected secondary domain TLs (or their appointed members).
* **Flutter TLs Group**: The collective body of Flutter Tech Leads (`flutter-tls`). Serves as the first-line escalation path for deadlocks.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could make flutter-tls a GitHub team that is taggable, assignable for reviews?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sounds like a good idea.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caveat: the members of this team would be visible.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But not their email - just their github account? That seems "fine" given you could figure that out from PRs, comments, and social media?

Note over Author,Forum: Stage 2: Socialization & Feedback
Author->>Repo: Async review via GitHub PR comments
opt Needs Broader Visibility / Contentious
Author->>Forum: Book 45-min Dash Forum slot (>=7 days lead time)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dash Forum is only currently mentioned in the design doc page I linked above. It is only accessible by members of the org (right now, flutter-hackers), folks not in flutter-hackers (or in the future, on the contributor ladder) cannot attend or present. do we want to change this? How do we manage acces?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If someone writes an RFC that is complex enough that it gets through some TLs - I think we'd be OK inviting said person to present at the forum. The real question is: What if they cannot or will not present? I would vote for the Shepherd to step in and make a decision on presenting or not.

Thoughts?

Comment thread rfc/000.002-flutter-rfc-review-process.md Outdated
Comment thread rfc/000.002-flutter-rfc-review-process.md Outdated
Comment thread rfc/000.0002-flutter-rfc-review-process.md
1. **Required Approvals**:
* The proposal **MUST** receive a formal GitHub PR **Approve** from the Shepherd.
* The proposal **MUST** receive a formal GitHub PR **Approve** from at least one Subsystem TL representing each secondary subsystem listed under `tags:`.
2. **Sequential Number Allocation (Pre-Merge Requirement)**:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I imagine folks will deviate from this in all sorts of ways. Any linting we could do?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we'll write a github action.

Comment thread rfc/000.002-flutter-rfc-review-process.md Outdated
* **Two-Pagers**: Projects with broader scope that consume other teams' APIs or subsystems in new ways without altering their public API/ABI contracts. These **SHOULD** be handled via GitHub Discussions or lightweight design docs with informal alignment between team TLs. Authors **MAY** optionally author these as lightweight RFCs if they seek broader community feedback, but a formal RFC is not required unless system boundaries or contracts change.

### 2. MUST Require an RFC (Full Design Docs)
A proposal **MUST** go through the RFC process if it meets any of the following criteria:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there any changes to infrastructure or Flutter contributor workflows that would need an RFC?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. E.g. external embedders would be a GREAT rfc.

* **Subsystem Tech Leads (TLs)**: The technical leads overseeing the domains touched by the proposal.
* Flutter TLs **SHOULD** know about designs touching their systems.
* Formal sign-off requires approval from the primary Subsystem TL (or an appointed member) and affected secondary domain TLs (or their appointed members).
* **Flutter TLs Group**: The collective body of Flutter Tech Leads (`flutter-tls`). Serves as the first-line escalation path for deadlocks.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sounds like a good idea.

Comment thread rfc/000.002-flutter-rfc-review-process.md Outdated
Establish the review, socialization, and decision-making lifecycle for
Flutter Requests for Comments (RFCs) to disentangle high-level
architectural decision-making from code review across Flutter-owned
repositories.

Key elements established:
- Self-contained threshold criteria distinguishing One-Pagers, Two-Pagers,
  and mandatory Full Design Docs / RFCs.
- Clear roles for Author, Shepherd, Subsystem Tech Leads (TLs), the Flutter
  TLs group, and Flutter Leads.
- 3-stage review lifecycle: Proposal & Draft PR (AAA.000), Socialization
  & The Dash Forum, and Asynchronous Approvals.
- Optional Final Comment Period (FCP) for cooling off without stalling
  uncontroversial consensus.
- Pre-merge sequential numbering constraint guaranteeing that AAA.000
  never lands in main and rejected designs never burn sequential numbers.
- Federated escalation path to the Flutter TLs group for deadlock resolution.

Fixes: #3
@jtmcdole

Copy link
Copy Markdown
Member Author

Big fan.

Note to follow up on:

This is a non-blocking note right? As in "land this, and then we update all these other places"?

@jtmcdole
jtmcdole requested review from Piinks and zanderso August 29, 2026 00:09
@jtmcdole jtmcdole changed the title docs(rfc): add RFC 000.002 Flutter RFC Review & Decision Process docs(rfc): add RFC 000.0002 Flutter RFC Review & Decision Process Aug 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Define RFC review process

3 participants