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

Add golden test review process to release cycle #144835

Open
gaaclarke opened this issue Mar 8, 2024 · 7 comments
Open

Add golden test review process to release cycle #144835

gaaclarke opened this issue Mar 8, 2024 · 7 comments
Assignees
Labels
c: proposal A detailed proposal for a change to Flutter P1 High-priority issues at the top of the work list team-engine Owned by Engine team triaged-engine Triaged by Engine team

Comments

@gaaclarke
Copy link
Member

Currently, when we create release builds of the engine, the golden image test results are not checked (automated or manually). Some of them are not even executed, only certain invocations of "run_tests.py" are used.

We'd like to have confidence that our cherry-picks are not causing some failure, so ideally the golden tests would be executed and checked.

The golden image results can not be naively uploaded to skia gold because skia gold has a consistent timeline that checks against one branch. Comparing a golden from a release branch to the main branch would confuse skia gold and lead to situations where there is no correct course forward.

A potential solution would be to create new tests related to the release branch. For example aiks_foo_test.png could become aiks_foo_test.png.v12_34_5 for release 12.32.5. The tests would first be uploaded with zero cherry-picks and blanket approved. Those images will then serve as the basis from which cherry-pick golden results will be compared.

cc @zanderso @matanlurey

@gaaclarke gaaclarke added c: proposal A detailed proposal for a change to Flutter team-engine Owned by Engine team labels Mar 8, 2024
@jonahwilliams jonahwilliams added P2 Important issues not at the top of the work list triaged-engine Triaged by Engine team labels Mar 12, 2024
@zanderso zanderso added P1 High-priority issues at the top of the work list and removed P2 Important issues not at the top of the work list labels Mar 13, 2024
@matanlurey matanlurey self-assigned this Mar 13, 2024
@chinmaygarde
Copy link
Member

From the Impeller Weekly: The next steps were to append the release name (branch?) to the test to create a new variant for each release.

@matanlurey
Copy link
Contributor

The proposal has steeped for a few weeks and doesn't seem to have strong objection, so I'll start working on this.

auto-submit bot pushed a commit to flutter/engine that referenced this issue Mar 29, 2024
…51739)

Work towards flutter/flutter#144835.

Doc (_sorry, internal only_): [go/flutter-engine-goldens-workflow](http://goto.google.com/flutter-engine-goldens-workflow).

This implements the majority of the proposed workflow, that is, optionally having a plain-text version at the root of the directory, and using it to apply a unique suffix we can review in release branches. As it stands, this is a NO-OP outside of tests (it will have no impact, and can be ignored).

What's missing before using this feature in release branches:

- Optimization work with the infra team (not sure if blocking or not):
  flutter/flutter#145842
- A dry-run of this with the release team to make sure it works as intended

@gaaclarke As implemented, I _think_ we don't need anything special for [`dir_contents_diff`](https://github.com/flutter/engine/blob/b0d3663f439fd97c32bf4d46b9004c97841c43b8/tools/dir_contents_diff), but maybe I'm wrong - I think only the _test_ names are being changed, not the names on disk.

/cc @zanderso as well.
@matanlurey
Copy link
Contributor

Filed #146078 to ask for infra support since I did not get a response on Discord.

@matanlurey
Copy link
Contributor

@gaaclarke Is this effectively closed?

@matanlurey matanlurey removed their assignment May 6, 2024
@gaaclarke
Copy link
Member Author

Yes, we have a way that we can do golden test reviews, we've done a trial run to prove that it works. The only outstanding work may be for any documentation surrounding releases to get updated, if they exist. It may be worth mentioning to Chris in case he knows of anything that should be updated.

@matanlurey
Copy link
Contributor

I hesitate to add a lot of extra things on Chris' place right now, but at the same time this is pretty important for us to land Impeller and keep the quality high. @christopherfujino or @itsjustkevin could we help update the release documentation, if any?

Quick summary for the uninitiated: https://github.com/flutter/engine/tree/main/testing/skia_gold_client#release-testing

@gaaclarke
Copy link
Member Author

Or just point us to the documentation and we can update it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: proposal A detailed proposal for a change to Flutter P1 High-priority issues at the top of the work list team-engine Owned by Engine team triaged-engine Triaged by Engine team
Projects
None yet
Development

No branches or pull requests

5 participants