-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
flutter/plugins
#6117Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: contributor-productivityTeam-specific productivity, code health, technical debt.Team-specific productivity, code health, technical debt.packageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.team-infraOwned by Infrastructure teamOwned by Infrastructure team
Description
Currently flutter/plugins uses whatever the latest stable and master are when running tests. This means that:
- We are subject to out-of-band breakages due to Flutter changes (engine, framework, tool, and Dart have all broken us in the past).
- Re-running tests (e.g., due to flake) can actually change what is being tested, because it's not hermetic. We've had cases where we tried re-running a flaky test, only to have a
flutterchange break us in the meantime, causing it to be impossible to ever make that test pass for that commit (because fixing such breakage often requires a commit in flutter/plugins). This is especially problematic for our auto-publish, which can only run when all tests are green.
To prevent this, we should use pinned versions of master and stable, with auto-rollers that update them to the latest versions on a regular basis. The master version would be expected to commit more or less all the time, as with the flutter/engine->flutter/flutter roller, while the stable version would usually not need to do anything.
/cc @godofredoc Are there pointers to what's involved in setting up an auto-roller? (The read-from-a-pinned-version for CI is something I could implement pretty easily.)
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: contributor-productivityTeam-specific productivity, code health, technical debt.Team-specific productivity, code health, technical debt.packageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.team-infraOwned by Infrastructure teamOwned by Infrastructure team