Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a flutter roller for flutter/plugins #93811

Closed
stuartmorgan opened this issue Nov 17, 2021 · 3 comments · Fixed by flutter/plugins#6117
Closed

Implement a flutter roller for flutter/plugins #93811

stuartmorgan opened this issue Nov 17, 2021 · 3 comments · Fixed by flutter/plugins#6117
Assignees
Labels
P2 Important issues not at the top of the work list package flutter/packages repository. See also p: labels. team Infra upgrades, team productivity, code health, technical debt. See also team: labels. team-infra Owned by Infrastructure team

Comments

@stuartmorgan
Copy link
Contributor

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 flutter change 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.)

@stuartmorgan stuartmorgan added team Infra upgrades, team productivity, code health, technical debt. See also team: labels. plugin team-infra Owned by Infrastructure team P1 High-priority issues at the top of the work list labels Nov 17, 2021
@godofredoc
Copy link
Contributor

This is what skia auto-rollers do with the engine->framework and plugins->framework. Sending an email to the skia team to get more details.

stuartmorgan added a commit to flutter/plugins that referenced this issue Jan 14, 2022
This uses a pinned version from a file instead of `master` when checking out Flutter for `master` channel testing in Cirrus. Currently it's a static version, but this will be updated by an auto-roller.

This uses a version of `master` from several days ago to avoid the current tree breakage due to flutter/flutter#96661

This will not affect LUCI tests; that will require a separate recipe change.

Part of flutter/flutter#93811
@stuartmorgan stuartmorgan added P2 Important issues not at the top of the work list and removed P1 High-priority issues at the top of the work list labels Jan 18, 2022
@stuartmorgan
Copy link
Contributor Author

stuartmorgan commented Jan 18, 2022

This is now implemented for flutter/plugins for master, for Cirrus tests. Still to do:

  • LUCI
  • The same thing for stable (We have had an out-of-band breakage from a stable release before, but it's much less common.
  • If all goes well, duplicating it over to flutter/packages

stuartmorgan added a commit to stuartmorgan/plugins that referenced this issue Jan 19, 2022
Update LUCI to match recent Cirrus change, using a pinned version of
master instead of latest master.

Part of flutter/flutter#93811
stuartmorgan added a commit to stuartmorgan/packages that referenced this issue Jan 25, 2022
Updates to match the recent change in flutter/plugins, to use a pinned
version of master instead of the latest version. This uses the last
version of master that passed post-submit tests due to a current
out-of-band failure in golden tests.

This affects both the Cirrus tests and the Windows LUCI tests.

Part of flutter/flutter#93811
stuartmorgan added a commit to stuartmorgan/packages that referenced this issue Jan 25, 2022
Creates a target file for a Flutter master pin autoroller. This is
currently unused, but creating it allows setting up the autoroller.

Prepares for flutter#554

Part of flutter/flutter#93811
stuartmorgan added a commit to flutter/packages that referenced this issue Jan 25, 2022
Creates a target file for a Flutter master pin autoroller. This is
currently unused, but creating it allows setting up the autoroller.

Prepares for #554

Part of flutter/flutter#93811
stuartmorgan added a commit to flutter/plugins that referenced this issue Jan 27, 2022
Update LUCI to match recent Cirrus change, using a pinned version of
master instead of latest master.

Part of flutter/flutter#93811
stuartmorgan added a commit to flutter/packages that referenced this issue Jan 27, 2022
Updates to match the recent change in flutter/plugins, to use a pinned
version of master instead of the latest version. This uses the last
version of master that passed post-submit tests due to a current
out-of-band failure in golden tests.

This affects both the Cirrus tests and the Windows LUCI tests.

Part of flutter/flutter#93811
stuartmorgan added a commit to stuartmorgan/plugins that referenced this issue Jul 18, 2022
Switch from using the the latest stable version to using a pinned stable
version, just as we do for master.

Fixes flutter/flutter#93811
Fixes the flutter/plugins half of flutter/flutter#106900
@stuartmorgan stuartmorgan self-assigned this Jul 18, 2022
@github-actions
Copy link

github-actions bot commented Aug 2, 2022

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 2, 2022
@flutter-triage-bot flutter-triage-bot bot added the package flutter/packages repository. See also p: labels. label Jul 5, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
P2 Important issues not at the top of the work list package flutter/packages repository. See also p: labels. team Infra upgrades, team productivity, code health, technical debt. See also team: labels. team-infra Owned by Infrastructure team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants