diff --git a/docs/triage/Infra-Triage.md b/docs/triage/Infra-Triage.md new file mode 100644 index 0000000000..462966bccc --- /dev/null +++ b/docs/triage/Infra-Triage.md @@ -0,0 +1,169 @@ +# Flutter Infra Team Triage + +_Canonical Link: [flutter.dev/to/team-infra](https://flutter.dev/to/team-infra)._ + +This doc details how to triage and work on issues marked [`team-infra`][]. + +[`team-infra`]: https://github.com/flutter/flutter/issues?q=is%3Aissue%20state%3Aopen%20label%3Ateam-infra + +--- + +The _infrastructure_ sub-team works a bit differently than our externally +facing product, as it is producing (and maintaining) infrastructure _for_ +Flutter, which includes tools and services that are open source but are **not +supported for external use**. + +As a result, our process _differs_ from the general [issue hygiene](../contributing/issue_hygiene/) and [issue triage](README.md): + +- We [own](#ownership) _general_ infrastructure, and decline other requests +- We use [_priority_ labels](#priorities) to mean specific things +- We accept [contributions](#contributing) in a more limited fashion +- We [close issues](#we-prefer-closing-issues) we do not plan to address and + will not accept contributions on + +This process allows us to have a more organized handle on the number of open +issues potentially affecting the team's velocity, including critical components +like release health. + +Table of contents: + +- [Triage](#triage) +- [Ownership](#ownership) +- [Priorities](#priorities) + - [P0](#p0) + - [P1](#p1) + - [P2](#p2) + - [P3](#p3) +- [We prefer closing issues](#we-prefer-closing-issues) +- [Contributing](#contributing) +- [Communication](#communication) + - [How to contact us](#how-to-contact-us) + +## Triage + +Links: + +- [P0 list](https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Ateam-infra+label%3AP0+sort%3Aupdated-asc) +- [Cocoon PRs](https://github.com/flutter/cocoon/pulls) +- [GoB CLs](https://flutter-review.googlesource.com/q/status:open+-is:wip) +- [Incoming issue list](https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Ateam-infra%2Cfyi-infra+-label%3Atriaged-infra+no%3Aassignee+-label%3A%22will+need+additional+triage%22+sort%3Aupdated-asc) +- [Latest updated issue list](https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Ateam-infra%2Cfyi-infra+sort%3Aupdated-desc) + +## Ownership + +The infra sub-team owns _general_ infrastructure that is often shared or used +across the Flutter project, but _not all_ testing and or tooling infrastructure; +that is, unless the tool is mentioned below, we may decline or direct you at +another sub-team: + +- General CI/CD issues affecting [flutter/flutter](https://github.com/flutter/flutter) + or [flutter/packages](https://github.com/flutter/packages) +- The [dashboard](https://flutter-dashboard.appspot.com/) +- Anything in [flutter/cocoon](https://github.com/flutter/cocoon), + [flutter/recipes](https://flutter.googlesource.com/recipes/), and + [flutter/infra](https://flutter.googlesource.com/infra/) +- _Some_ of the general infrastructure in [`dev/**`](../../dev) + +## Priorities + +Our prioritization is _similar_ to [team-wide priorities](../contributing/issue_hygiene/README.md#priorities), +but with a few more specifics. Unless you work _on_ the infra team, we ask you +do not add or change priority labels. + +### [P0](https://github.com/flutter/flutter/issues?q=state%3Aopen%20label%3Ateam-infra%20label%3AP0) + +An **emergency** that needs to be addressed ASAP as there is no reasonable +workaround. + +P0s are worked on actively, with an update shared with the core team at least +once a week, and supercede _all_ other priorities (i.e. are a "stop work" order +on other issues). + +Examples might include: + +- PRs cannot be submitted +- Updating a PR, or pushing blank commits, do not trigger presubmits +- A serious security or privacy vulnerability in a deployed release + +### [P1](https://github.com/flutter/flutter/issues?q=state%3Aopen%20label%3Ateam-infra%20label%3AP1) + +An important change that would significantly improve productivity for the team, +or significantly improve reliability of the infrastructure (causing less P0 and +P1 issues). + +If an issue has not been pre-aligned with the team, or does not have a sponsor +from another team that will be immediately responsible for a feature or bug fix, +then P1 is _not_ suitable. + +Examples might include: + +- PRs can only be submitted with workarounds +- Presubmits or postsubmits across the board have degraded in speed or + reliability + +### [P2](https://github.com/flutter/flutter/issues?q=state%3Aopen%20label%3Ateam-infra%20label%3AP2) + +A change we agree with, but do not have bandwidth for. + +An individual _could_ meaningfully make progress on this issue, and we would review it. If there are no volunteers, it may never be completed. + +_See also: [contributing](#contributing)._ + +### [P3](https://github.com/flutter/flutter/issues?q=state%3Aopen%20label%3Ateam-infra%20label%3AP3) + +A change we agree with, but would require significant maintenance. + +While an individual _could_ meaningfully make progress on this issue, we would +_not_ review and accept it, as the cost of maintaining it is beyond what we can +currently sustain. + +Our own team's discretion is used for what P3 issues are left open, and which +are [closed as not planned](#we-prefer-closing-issues). + +_See also: [contributions](#contributions)._ + +## We prefer closing issues + +[Unlike the external Flutter product](../contributing/issue_hygiene/README.md#closing-issues), +we do not accept contributions on all issues, and run the `team-infra` label more +like an operations team; that is, if an issue is unlikely to be addressed or +does not meet the [priorities criteria](#priorities) above, we often will close +the issue as _not planned_. + +An issue closed as _not planned_ does not mean the issue does not have validity, +or that a subsequent more fleshed out issue or request would get more attention, +it just represents the limited bandwidth and capability of the team responsible. + +We encourage you/your team to manage your own "wishlist" of items, which could +be in the format of a github issue (but _not_ tagged `team-infra`), a gist, +a github project, a Google doc, or another format, and to +[share it with us](#how-to-contact-us). + +_See also: [contributing](#contributing)._ + +## Contributing + +This sub-team has a more limited contributions policy than other parts of the +project, as we build and support tools that are **not supported** as part of the +Flutter product, including internal CI/CD and tooling. + +In general, [P2](#p2) issues are a great way to contribute, as they have already +been actively vetted as "this is important to us" and "we would accept a PR or +PRs that address this bug or feature request". + +For other issues, if you are part of the core Flutter team, please +[contact us](#how-to-contact-us). + +## Communication + +The team primarily uses GitHub and internal Google chat for communication, which +is unavailable to non-Google employees. For issues that are important to the +broader community, we use [Discord](https://discord.com/channels/608014603317936148/608116355836805126) +and [flutter-announce@](https://groups.google.com/g/flutter-announce) as needed. + +### How to contact us + +If you work at Google, see [go/flutter-infra-team](http://goto.google.com/flutter-infra-team). + +Otherwise, see [#hackers-infra](https://discord.com/channels/608014603317936148/608021351567065092) +on Discord. Note responses may be infrequent. diff --git a/docs/triage/README.md b/docs/triage/README.md index ba2888ff04..f269e0392a 100644 --- a/docs/triage/README.md +++ b/docs/triage/README.md @@ -263,11 +263,7 @@ In addition, consider these issues that fall under another team's triage, but ar ### Infrastructure team (`team-infra`) -- [P0 list](https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Ateam-infra+label%3AP0+sort%3Aupdated-asc) -- [Cocoon PRs](https://github.com/flutter/cocoon/pulls) -- [GoB CLs](https://flutter-review.googlesource.com/q/status:open+-is:wip) -- [Incoming issue list](https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Ateam-infra%2Cfyi-infra+-label%3Atriaged-infra+no%3Aassignee+-label%3A%22will+need+additional+triage%22+sort%3Aupdated-asc) -- [Latest updated issue list](https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Ateam-infra%2Cfyi-infra+sort%3Aupdated-desc) +See the [Flutter Infra Team Triage](./Infra-Triage.md) page. ### iOS and macOS platform team (`team-ios` and `team-macos`)