Triage Priorities for Dart Migration tool

This document describes the relative priorities for bugs filed under the area-migration tag in GitHub as in this search. While there are always exceptions to any rule, in general try to align our priorities with these definitions.

To triage bugs, search for area-migration bugs that are not currently triaged and for each bug, mark priority based on how closely it matches with the below constraints.

Migration tool triage priorities

Descriptions here use terms and definitions from the end of this document. If your bug doesn't precisely match one of these, consider how impactful it is compared to examples given here and pick a priority reflecting that.

P0

  • Crashes that can't be worked around by --ignore-exceptions, typical impact or widespread.
  • Crashes that can be worked around by --ignore-exceptions, widespread.

P1

  • Crashes that can be worked around by --ignore-exceptions, typical impact.
  • An enhancement required for critical milestones for key users, or that has significant evidence gathered indicating a positive impact if implemented.
  • A problem that is significantly impairing a key user's ability to migrate their code.

P2

  • Crashes, edge case.
  • An enhancement with typical impact that doesn't fit the criteria above but would still be significantly beneficial to users (i.e. more than just a “would be nice” feature).
  • A problem with typical impact that doesn‘t fit the criteria above, but impairs users’ ability to migrate their code.

P3

  • Crashes, theoretical.
  • An enhancement that doesn't fit the criteria above.
  • A problem that doesn‘t fit the criteria above, but impairs users’ ability to migrate their code.

Terms and definitions

Terms describing impact

  • “widespread” - Impact endemic throughout the ecosystem, or at least far enough that this is impacting multiple key users.
  • “typical impact” - Known to impact a key user, or likely to impact a significant percentage of all users. Issues are assumed to have typical impact unless we have evidence otherwise.
  • “edge cases” - Impacting only small parts of the ecosystem. For example, one package, or one key user with a workaround. Note this is an edge case from the perspective of the ecosystem vs. language definition. Note that since the migration tool is still in an early adoption phase, if a bug has only been reported by one user, that‘s not sufficient evidence that it’s an edge case. To be considered an edge case, we need to have a concrete reason to suspect that the bug is caused by an unusual pattern in the user's source code, or unusual user behavior.
  • “theoretical” - Something that we think is unlikely to happen in the wild and there's no evidence for it happening in the wild.

Other terms

  • “key users” - Flutter, Pub, Fuchsia, Dart, Google3, 1P