|
| 1 | +# Flutter Infra Team Triage |
| 2 | + |
| 3 | +_Canonical Link: [flutter.dev/to/team-infra](https://flutter.dev/to/team-infra)._ |
| 4 | + |
| 5 | +This doc details how to triage and work on issues marked [`team-infra`][]. |
| 6 | + |
| 7 | +[`team-infra`]: https://github.com/flutter/flutter/issues?q=is%3Aissue%20state%3Aopen%20label%3Ateam-infra |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +The _infrastructure_ sub-team works a bit differently than our externally |
| 12 | +facing product, as it is producing (and maintaining) infrastructure _for_ |
| 13 | +Flutter, which includes tools and services that are open source but are **not |
| 14 | +supported for external use**. |
| 15 | + |
| 16 | +As a result, our process _differs_ from the general [issue hygiene](../contributing/issue_hygiene/) and [issue triage](README.md): |
| 17 | + |
| 18 | +- We [own](#ownership) _general_ infrastructure, and decline other requests |
| 19 | +- We use [_priority_ labels](#priorities) to mean specific things |
| 20 | +- We accept [contributions](#contributing) in a more limited fashion |
| 21 | +- We [close issues](#we-prefer-closing-issues) we do not plan to address and |
| 22 | + will not accept contributions on |
| 23 | + |
| 24 | +This process allows us to have a more organized handle on the number of open |
| 25 | +issues potentially affecting the team's velocity, including critical components |
| 26 | +like release health. |
| 27 | + |
| 28 | +Table of contents: |
| 29 | + |
| 30 | +- [Triage](#triage) |
| 31 | +- [Ownership](#ownership) |
| 32 | +- [Priorities](#priorities) |
| 33 | + - [P0](#p0) |
| 34 | + - [P1](#p1) |
| 35 | + - [P2](#p2) |
| 36 | + - [P3](#p3) |
| 37 | +- [We prefer closing issues](#we-prefer-closing-issues) |
| 38 | +- [Contributing](#contributing) |
| 39 | +- [Communication](#communication) |
| 40 | + - [How to contact us](#how-to-contact-us) |
| 41 | + |
| 42 | +## Triage |
| 43 | + |
| 44 | +Links: |
| 45 | + |
| 46 | +- [P0 list](https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Ateam-infra+label%3AP0+sort%3Aupdated-asc) |
| 47 | +- [Cocoon PRs](https://github.com/flutter/cocoon/pulls) |
| 48 | +- [GoB CLs](https://flutter-review.googlesource.com/q/status:open+-is:wip) |
| 49 | +- [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) |
| 50 | +- [Latest updated issue list](https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Ateam-infra%2Cfyi-infra+sort%3Aupdated-desc) |
| 51 | + |
| 52 | +## Ownership |
| 53 | + |
| 54 | +The infra sub-team owns _general_ infrastructure that is often shared or used |
| 55 | +across the Flutter project, but _not all_ testing and or tooling infrastructure; |
| 56 | +that is, unless the tool is mentioned below, we may decline or direct you at |
| 57 | +another sub-team: |
| 58 | + |
| 59 | +- General CI/CD issues affecting [flutter/flutter](https://github.com/flutter/flutter) |
| 60 | + or [flutter/packages](https://github.com/flutter/packages) |
| 61 | +- The [dashboard](https://flutter-dashboard.appspot.com/) |
| 62 | +- Anything in [flutter/cocoon](https://github.com/flutter/cocoon), |
| 63 | + [flutter/recipes](https://flutter.googlesource.com/recipes/), and |
| 64 | + [flutter/infra](https://flutter.googlesource.com/infra/) |
| 65 | +- _Some_ of the general infrastructure in [`dev/**`](../../dev) |
| 66 | + |
| 67 | +## Priorities |
| 68 | + |
| 69 | +Our prioritization is _similar_ to [team-wide priorities](../contributing/issue_hygiene/README.md#priorities), |
| 70 | +but with a few more specifics. Unless you work _on_ the infra team, we ask you |
| 71 | +do not add or change priority labels. |
| 72 | + |
| 73 | +### [P0](https://github.com/flutter/flutter/issues?q=state%3Aopen%20label%3Ateam-infra%20label%3AP0) |
| 74 | + |
| 75 | +An **emergency** that needs to be addressed ASAP as there is no reasonable |
| 76 | +workaround. |
| 77 | + |
| 78 | +P0s are worked on actively, with an update shared with the core team at least |
| 79 | +once a week, and supercede _all_ other priorities (i.e. are a "stop work" order |
| 80 | +on other issues). |
| 81 | + |
| 82 | +Examples might include: |
| 83 | + |
| 84 | +- PRs cannot be submitted |
| 85 | +- Updating a PR, or pushing blank commits, do not trigger presubmits |
| 86 | +- A serious security or privacy vulnerability in a deployed release |
| 87 | + |
| 88 | +### [P1](https://github.com/flutter/flutter/issues?q=state%3Aopen%20label%3Ateam-infra%20label%3AP1) |
| 89 | + |
| 90 | +An important change that would significantly improve productivity for the team, |
| 91 | +or significantly improve reliability of the infrastructure (causing less P0 and |
| 92 | +P1 issues). |
| 93 | + |
| 94 | +If an issue has not been pre-aligned with the team, or does not have a sponsor |
| 95 | +from another team that will be immediately responsible for a feature or bug fix, |
| 96 | +then P1 is _not_ suitable. |
| 97 | + |
| 98 | +Examples might include: |
| 99 | + |
| 100 | +- PRs can only be submitted with workarounds |
| 101 | +- Presubmits or postsubmits across the board have degraded in speed or |
| 102 | + reliability |
| 103 | + |
| 104 | +### [P2](https://github.com/flutter/flutter/issues?q=state%3Aopen%20label%3Ateam-infra%20label%3AP2) |
| 105 | + |
| 106 | +A change we agree with, but do not have bandwidth for. |
| 107 | + |
| 108 | +An individual _could_ meaningfully make progress on this issue, and we would review it. If there are no volunteers, it may never be completed. |
| 109 | + |
| 110 | +_See also: [contributing](#contributing)._ |
| 111 | + |
| 112 | +### [P3](https://github.com/flutter/flutter/issues?q=state%3Aopen%20label%3Ateam-infra%20label%3AP3) |
| 113 | + |
| 114 | +A change we agree with, but would require significant maintenance. |
| 115 | + |
| 116 | +While an individual _could_ meaningfully make progress on this issue, we would |
| 117 | +_not_ review and accept it, as the cost of maintaining it is beyond what we can |
| 118 | +currently sustain. |
| 119 | + |
| 120 | +Our own team's discretion is used for what P3 issues are left open, and which |
| 121 | +are [closed as not planned](#we-prefer-closing-issues). |
| 122 | + |
| 123 | +_See also: [contributions](#contributions)._ |
| 124 | + |
| 125 | +## We prefer closing issues |
| 126 | + |
| 127 | +[Unlike the external Flutter product](../contributing/issue_hygiene/README.md#closing-issues), |
| 128 | +we do not accept contributions on all issues, and run the `team-infra` label more |
| 129 | +like an operations team; that is, if an issue is unlikely to be addressed or |
| 130 | +does not meet the [priorities criteria](#priorities) above, we often will close |
| 131 | +the issue as _not planned_. |
| 132 | + |
| 133 | +An issue closed as _not planned_ does not mean the issue does not have validity, |
| 134 | +or that a subsequent more fleshed out issue or request would get more attention, |
| 135 | +it just represents the limited bandwidth and capability of the team responsible. |
| 136 | + |
| 137 | +We encourage you/your team to manage your own "wishlist" of items, which could |
| 138 | +be in the format of a github issue (but _not_ tagged `team-infra`), a gist, |
| 139 | +a github project, a Google doc, or another format, and to |
| 140 | +[share it with us](#how-to-contact-us). |
| 141 | + |
| 142 | +_See also: [contributing](#contributing)._ |
| 143 | + |
| 144 | +## Contributing |
| 145 | + |
| 146 | +This sub-team has a more limited contributions policy than other parts of the |
| 147 | +project, as we build and support tools that are **not supported** as part of the |
| 148 | +Flutter product, including internal CI/CD and tooling. |
| 149 | + |
| 150 | +In general, [P2](#p2) issues are a great way to contribute, as they have already |
| 151 | +been actively vetted as "this is important to us" and "we would accept a PR or |
| 152 | +PRs that address this bug or feature request". |
| 153 | + |
| 154 | +For other issues, if you are part of the core Flutter team, please |
| 155 | +[contact us](#how-to-contact-us). |
| 156 | + |
| 157 | +## Communication |
| 158 | + |
| 159 | +The team primarily uses GitHub and internal Google chat for communication, which |
| 160 | +is unavailable to non-Google employees. For issues that are important to the |
| 161 | +broader community, we use [Discord](https://discord.com/channels/608014603317936148/608116355836805126) |
| 162 | +and [flutter-announce@](https://groups.google.com/g/flutter-announce) as needed. |
| 163 | + |
| 164 | +### How to contact us |
| 165 | + |
| 166 | +If you work at Google, see [go/flutter-infra-team](http://goto.google.com/flutter-infra-team). |
| 167 | + |
| 168 | +Otherwise, see [#hackers-infra](https://discord.com/channels/608014603317936148/608021351567065092) |
| 169 | +on Discord. Note responses may be infrequent. |
0 commit comments