Sitelet https://github.com/flutter/rfc/pull/26
Skip to content

Update Test Exemption Process - #26

Open
eyebrowsoffire wants to merge 3 commits into
flutter:mainfrom
eyebrowsoffire:test_exemption_process
Open

eyebrowsoffire wants to merge 3 commits into
flutter:mainfrom
eyebrowsoffire:test_exemption_process

Conversation

@eyebrowsoffire

Copy link
Copy Markdown

A document for discussion on how to update our test exemption process.

Tracking issue: flutter/flutter#00000

Pre-launch Checklist

  • I read RFC 000.0001: Taxonomy and followed the file and path naming and metadata standards.
  • I read RFC 000.0002: Process and confirmed this proposal meets the threshold for a full RFC.
  • I read and agree to the Code of Conduct.
  • I signed the CLA.
  • I have linked an issue from flutter/flutter with the label design doc.
  • All existing and new tests are passing.
  • I have enabled "Allow edits from maintainers" on this PR so the bot can automatically assign an RFC number (or I will run dart run bin/assign_rfc_number.dart locally when instructed).

If you need help, consider asking for advice on the #hackers channel on Discord.

@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.

This is awesome thank you!

Comment thread rfc/000.0000-test-exemption-process.md Outdated

* Change the comment posted in the PR to accurately match the process according to the solution we choose.
* The bot should add a `missing-tests` label if a PR is missing tests, and keep the state of that label up-to-date which each push. That is to say, the label should be removed if a subsequent push adds tests, or if the change no longer touches code which requires tests.
* Whoever is responsible for granting test exemptions is responsible for adding a `test-exempt` label. This will allow the test exemption process to be more auditable, since the GitHub history will reflect who added the label.

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.

Possible, but probably unlikely, any flutter-hacker will be able to apply this label.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

This is true. However, I'm personally more of a fan of gradually adding restrictions for things like this rather than making things completely air-tight out of the gate. If it turns out that every member of flutter-hackers technically having the capability of adding the test-exempt is something that people end up abusing, we can consider being more strict with this. But I'd imagine that we can hope people would act in good faith, especially because the audit log at least keeps them somewhat honest here.

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.

I was going to make the same argument as Kate: anyone with write access to add or remove these labels. But we'll have a paper trail. Will we have tools for auditing that paper trail? something we could run during org triage (or any other triage designated owner)?

Comment thread rfc/000.0000-test-exemption-process.md Outdated
created: 2026-09-24T00:00:00Z
updated: 2026-09-24T00:00:00Z
tags:
- 000-meta

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.

000 is for RFC Process & Templates - how to change the current RFC and design process. Maybe we just add a simple "Policy" group.

Comment thread rfc/000.0000-test-exemption-process.md Outdated

## Overview

If a PR needs an exemption from our testing guidelines, those exemptions are currently granted by a `@test-exemption-reviewer` role on Discord. Originally, this responsibility was managed by `@Hixie`. Upon his departure from the team, the role was taken over by `@stuartmorgan`, who is also leaving. With his departure, we are looking at reworking this system to be more sustainable and distribute this responsibility more broadly so as to avoid a single point of failure.

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.

Nit: Could read as "Originally this responsibility was managed by a single engineer. This represents an unacceptable bus factor." <... we're looking at reworking...>

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

My original draft actually used the term "bus factor" but I changed that because (1) it's kind of a jargony term that not everyone knows and (2) it's actually kind of morbid and it felt weird putting into a doc.

I think the short history here of who has carried the torch for this role is useful. I also don't really consider it "unacceptable" as we've lived with this single point of failure for many years, but it can definitely be improved. Everyone I've talked to about this is already open to the idea of adjusting the policy here, so I don't think we need to use needlessly aggressive language to get our point across. The doc is really just about the pros and cons of our different options moving forward.

@stuartmorgan-g stuartmorgan-g Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't think it matters enough to rewrite the text, but FWIW just to capture the history here: there have been between one and three (I think that was the max) engineers active in the role at various times. Hixie and I were both actively granting exceptions for a while, for example.

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.

sgtm

Comment thread test/taxonomy_test.dart

* **000:** RFC Process & Templates
* **010:** Governance & Steering Committees
* **010:** General Team Process & Policy

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.

you should update 000.00001 as well.


If a PR needs an exemption from our testing guidelines, those exemptions are currently granted by a `@test-exemption-reviewer` role on Discord. Originally, this responsibility was managed by `@Hixie`. Upon his departure from the team, the role was taken over by `@stuartmorgan-g`, who is also leaving. With his departure, we are looking at reworking this system to be more sustainable and distribute this responsibility more broadly so as to avoid a single point of failure.

## Possible solutions

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.

Before this lands, we should express an opinion of which route we're taking.

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.

4 participants