diff --git a/.agents/skills/run-devicelab-with-led/SKILL.md b/.agents/skills/run-devicelab-with-led/SKILL.md new file mode 100644 index 0000000000000..c64af2abaa4d9 --- /dev/null +++ b/.agents/skills/run-devicelab-with-led/SKILL.md @@ -0,0 +1,66 @@ +--- +name: run-devicelab-with-led +description: Run DeviceLab tests for Flutter PRs using LUCI's `led` CLI tool. Use when asked to run, launch, try, or deflake a post-submit or devicelab test against a PR using `led`. +--- + + + +# Running DeviceLab Tests with `led` + +This skill guides running post-submit and DeviceLab tests for pull requests (PRs) using LUCI's `led` CLI tool. For additional context, see [docs/infra/Running-Devicelab-Tests-For-PR.md](../../../docs/infra/Running-Devicelab-Tests-For-PR.md). + +## Prerequisites + +1. **`led` tool**: Must be installed (via `depot_tools`) and available in your `PATH`. Verify via `led auth-info`. +2. **SSO authentication**: Verify valid SSO / LOAS credentials via `gcertstatus` or `glogin status`. If expired, instruct the user to run `glogin` or `gcert`. +3. **`recipes` repository** (when including `led edit-recipe-bundle`): If testing local recipe changes or recipe-only PRs, commands containing `led edit-recipe-bundle` must be executed from the root of a local checkout of the Flutter [`recipes`](https://flutter.googlesource.com/recipes) repository (`git clone https://flutter.googlesource.com/recipes`). + +## Workflow + +### 1. Gather Inputs based on PR Type + +Collect the following required arguments: +* **`PR_NUMBER`**: The pull request number (e.g., `123456`). +* **`PRESUBMIT_TEST`**: The exact name of the LUCI staging builder to run (e.g., `Windows_mokey hot_mode_dev_cycle_win__benchmark` or `Mac_ios microbenchmarks_ios`). + +### 2. Execute `led` Pipeline + +If you are using `led edit-recipe-bundle` to test local recipe modifications, navigate to the root of your local `recipes` repository checkout (`$CWD` is packaged by `led edit-recipe-bundle`). If only testing without recipe edits, `led edit-recipe-bundle` can either be run from a `recipes` checkout or omitted. + +Run the command pipeline corresponding to the PR type: + +#### Command + +```bash +led get-builder 'luci.flutter.staging:PRESUBMIT_TEST' \ + | led edit -pa git_ref='refs/pull/PR_NUMBER/head' \ + | led edit -pa git_url='https://github.com/flutter/flutter' \ + | led edit-recipe-bundle \ + | led launch +``` + +### 3. Report Launched Task Details + +`led launch` outputs details about the launched build, including Swarming / LUCI task links. Provide the resulting URL to the user so they can track execution progress and examine logs. + +## Example + +- **User Prompt**: "Run the devicelab test `Windows_mokey hot_mode_dev_cycle_win__benchmark` for framework PR 12345 with led." +- **Action**: Run the `led` command (navigate to local `recipes/` directory if using `led edit-recipe-bundle` for local recipe edits): + ```bash + led get-builder 'luci.flutter.staging:Windows_mokey hot_mode_dev_cycle_win__benchmark' \ + | led edit -pa git_ref='refs/pull/12345/head' \ + | led edit -pa git_url='https://github.com/flutter/flutter' \ + | led edit-recipe-bundle \ + | led launch + ``` diff --git a/.ci.yaml b/.ci.yaml index d8f3a738f017c..deb6e0a7779fe 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -59,7 +59,8 @@ platform_properties: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] os: Ubuntu cores: "8" @@ -82,7 +83,8 @@ platform_properties: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] os: Ubuntu cores: "8" @@ -106,7 +108,8 @@ platform_properties: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] os: Ubuntu cores: "8" @@ -119,7 +122,8 @@ platform_properties: [ {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "curl", "version": "version:8.20.0"} + {"dependency": "curl", "version": "version:8.20.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] os: Ubuntu cores: "8" @@ -131,7 +135,8 @@ platform_properties: [ {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "curl", "version": "version:8.20.0"} + {"dependency": "curl", "version": "version:8.20.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] os: Linux device_type: "Pixel 7 Pro" @@ -142,7 +147,8 @@ platform_properties: [ {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "curl", "version": "version:8.20.0"} + {"dependency": "curl", "version": "version:8.20.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] os: Linux device_type: "mokey" @@ -153,7 +159,8 @@ platform_properties: [ {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "curl", "version": "version:8.20.0"} + {"dependency": "curl", "version": "version:8.20.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] os: Linux device_type: "SM-S921U1" @@ -256,7 +263,8 @@ platform_properties: [ {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] os: Mac-15.7 cpu: x86 @@ -267,7 +275,8 @@ platform_properties: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] os: Mac-15.7 cpu: arm64 @@ -346,7 +355,8 @@ platform_properties: [ {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] os: Windows-10 device_type: "mokey" @@ -379,7 +389,8 @@ targets: [ {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "curl", "version": "version:8.20.0"} + {"dependency": "curl", "version": "version:8.20.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "android", "linux", "mokey"] @@ -413,7 +424,8 @@ targets: [ {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "gh_cli", "version": "version:2.8.0-2-g32256d38"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] - name: Linux_android_emu android views @@ -436,7 +448,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab","hostonly"] @@ -460,7 +473,8 @@ targets: {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "1_5" @@ -478,7 +492,8 @@ targets: {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "2_5" @@ -496,7 +511,8 @@ targets: {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "3_5" @@ -514,7 +530,8 @@ targets: {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "4_5" @@ -532,7 +549,8 @@ targets: {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "5_5" @@ -680,6 +698,21 @@ targets: - DEPS - dartdoc_options.yaml + - name: Linux snippets + recipe: flutter/flutter_drone + bringup: true + timeout: 30 + properties: + tags: > + ["framework", "hostonly", "shard", "linux"] + shard: snippets + runIf: + - dev/snippets/** + - dev/bots/** + - .ci.yaml + - engine/** + - DEPS + - name: Linux engine_dependency_proxy_test recipe: devicelab/devicelab_drone timeout: 60 @@ -687,7 +720,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -732,7 +766,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["firebaselab"] @@ -821,7 +856,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: framework_tests subshard: slow @@ -853,7 +889,8 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "ninja", "version": "version:1.9.0"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "android_sdk", "version": "version:37v2"} + {"dependency": "android_sdk", "version": "version:37v2"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: framework_tests subshard: misc @@ -861,7 +898,7 @@ targets: ["framework", "hostonly", "shard", "linux"] runIf: - dev/** - - examples/api/** + - examples/** - packages/flutter/** - packages/flutter_driver/** - packages/integration_test/** @@ -928,7 +965,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -950,7 +988,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -972,7 +1011,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -994,7 +1034,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -1017,7 +1058,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -1040,7 +1082,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -1063,7 +1106,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -1086,7 +1130,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -1110,7 +1155,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -1134,7 +1180,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -1157,7 +1204,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] # TODO(fujino): delete once propagation from # https://github.com/flutter/flutter/issues/158521 completes. @@ -1184,7 +1232,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "windows"] @@ -1321,7 +1370,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -1383,7 +1433,8 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:37v2"} + {"dependency": "android_sdk", "version": "version:37v2"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "linux"] @@ -1402,7 +1453,8 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ninja", "version": "version:1.9.0"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "1_7" @@ -1430,7 +1482,8 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ninja", "version": "version:1.9.0"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "2_7" @@ -1458,7 +1511,8 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ninja", "version": "version:1.9.0"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "3_7" @@ -1486,7 +1540,8 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ninja", "version": "version:1.9.0"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "4_7" @@ -1514,7 +1569,8 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ninja", "version": "version:1.9.0"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "5_7" @@ -1542,7 +1598,8 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ninja", "version": "version:1.9.0"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "6_7" @@ -1570,7 +1627,8 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ninja", "version": "version:1.9.0"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "7_7" @@ -1601,7 +1659,8 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ninja", "version": "version:1.9.0"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: android_preview_tool_integration_tests tags: > @@ -1627,7 +1686,8 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ninja", "version": "version:1.9.0"}, - {"dependency": "open_jdk", "version": "version:17"} + {"dependency": "open_jdk", "version": "version:17"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: android_java17_tool_integration_tests tags: > @@ -1649,7 +1709,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:11"} + {"dependency": "open_jdk", "version": "version:11"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] task_name: android_java11_dependency_smoke_tests tags: > @@ -1675,7 +1736,8 @@ targets: {"dependency": "open_jdk", "version": "version:17"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] task_name: android_java17_dependency_smoke_tests tags: > @@ -1701,7 +1763,8 @@ targets: {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, - {"dependency": "ninja", "version": "version:1.9.0"} + {"dependency": "ninja", "version": "version:1.9.0"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_tests_commands subshard: 1_1 @@ -1723,7 +1786,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_tests subshard: general @@ -1745,7 +1809,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_tests subshard: widget_preview_scaffold @@ -1781,7 +1846,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] - name: Linux_android_emu_vulkan_stable android_hardware_smoke_vulkan_tests @@ -1806,7 +1872,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] - name: Linux_android_emu_vulkan_stable android_hardware_smoke_vulkan_instrumented_tests @@ -1833,7 +1900,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] - name: Linux web_benchmarks_canvaskit @@ -2240,143 +2308,6 @@ targets: - engine/** - DEPS - - name: Linux web_skwasm_tests_2 - recipe: flutter/flutter_drone - bringup: true - timeout: 45 - properties: - dependencies: >- - [ - {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, - {"dependency": "goldctl", "version": "git_revision:031e93819017b95c3f2dfe463189c7b8d02f2f83"} - ] - shard: web_skwasm_tests - subshard: "2" - tags: > - ["framework", "hostonly", "shard", "linux"] - test_timeout_secs: "2700" - runIf: - - dev/** - - packages/** - - bin/** - - .ci.yaml - - engine/** - - DEPS - - - name: Linux web_skwasm_tests_3 - recipe: flutter/flutter_drone - bringup: true - timeout: 45 - properties: - dependencies: >- - [ - {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, - {"dependency": "goldctl", "version": "git_revision:031e93819017b95c3f2dfe463189c7b8d02f2f83"} - ] - shard: web_skwasm_tests - subshard: "3" - tags: > - ["framework", "hostonly", "shard", "linux"] - test_timeout_secs: "2700" - runIf: - - dev/** - - packages/** - - bin/** - - .ci.yaml - - engine/** - - DEPS - - - name: Linux web_skwasm_tests_4 - recipe: flutter/flutter_drone - bringup: true - timeout: 45 - properties: - dependencies: >- - [ - {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, - {"dependency": "goldctl", "version": "git_revision:031e93819017b95c3f2dfe463189c7b8d02f2f83"} - ] - shard: web_skwasm_tests - subshard: "4" - tags: > - ["framework", "hostonly", "shard", "linux"] - test_timeout_secs: "2700" - runIf: - - dev/** - - packages/** - - bin/** - - .ci.yaml - - engine/** - - DEPS - - - name: Linux web_skwasm_tests_5 - recipe: flutter/flutter_drone - bringup: true - timeout: 45 - properties: - dependencies: >- - [ - {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, - {"dependency": "goldctl", "version": "git_revision:031e93819017b95c3f2dfe463189c7b8d02f2f83"} - ] - shard: web_skwasm_tests - subshard: "5" - tags: > - ["framework", "hostonly", "shard", "linux"] - test_timeout_secs: "2700" - runIf: - - dev/** - - packages/** - - bin/** - - .ci.yaml - - engine/** - - DEPS - - - name: Linux web_skwasm_tests_6 - recipe: flutter/flutter_drone - bringup: true - timeout: 45 - properties: - dependencies: >- - [ - {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, - {"dependency": "goldctl", "version": "git_revision:031e93819017b95c3f2dfe463189c7b8d02f2f83"} - ] - shard: web_skwasm_tests - subshard: "6" - tags: > - ["framework", "hostonly", "shard", "linux"] - test_timeout_secs: "2700" - runIf: - - dev/** - - packages/** - - bin/** - - .ci.yaml - - engine/** - - DEPS - - - name: Linux web_skwasm_tests_7_last - recipe: flutter/flutter_drone - bringup: true - timeout: 45 - properties: - dependencies: >- - [ - {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, - {"dependency": "goldctl", "version": "git_revision:031e93819017b95c3f2dfe463189c7b8d02f2f83"} - ] - shard: web_skwasm_tests - subshard: "7_last" - tags: > - ["framework", "hostonly", "shard", "linux"] - test_timeout_secs: "2700" - runIf: - - dev/** - - packages/** - - bin/** - - .ci.yaml - - engine/** - - DEPS - name: Linux web_tool_tests recipe: flutter/flutter_drone @@ -3938,7 +3869,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "1_5" @@ -3960,7 +3892,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "2_5" @@ -3982,7 +3915,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "3_5" @@ -4004,7 +3938,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "4_5" @@ -4026,7 +3961,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "5_5" @@ -4043,7 +3979,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "1_5" @@ -4060,7 +3997,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "2_5" @@ -4077,7 +4015,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "3_5" @@ -4094,7 +4033,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "4_5" @@ -4111,7 +4051,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "5_5" @@ -4322,7 +4263,8 @@ targets: {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "android_sdk", "version": "version:37v2"} + {"dependency": "android_sdk", "version": "version:37v2"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: framework_tests subshard: misc @@ -4330,7 +4272,7 @@ targets: ["framework", "hostonly", "shard", "mac"] runIf: - dev/** - - examples/api/** + - examples/** - packages/flutter/** - packages/flutter_driver/** - packages/integration_test/** @@ -4353,7 +4295,8 @@ targets: {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "android_sdk", "version": "version:37v2"} + {"dependency": "android_sdk", "version": "version:37v2"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: framework_tests subshard: misc @@ -4361,7 +4304,7 @@ targets: ["framework", "hostonly", "shard", "mac"] runIf: - dev/** - - examples/api/** + - examples/** - packages/flutter/** - packages/flutter_driver/** - packages/integration_test/** @@ -4410,7 +4353,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "mac"] @@ -4458,7 +4402,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "mac"] @@ -4478,7 +4423,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "mac"] @@ -4498,7 +4444,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "mac"] @@ -4519,7 +4466,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "mac"] @@ -4602,7 +4550,8 @@ targets: [ {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"} + {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "mac"] @@ -4666,7 +4615,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "mac"] @@ -4686,7 +4636,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "windows"] @@ -4814,7 +4765,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "1_10" @@ -4840,7 +4792,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "2_10" @@ -4866,7 +4819,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "3_10" @@ -4892,7 +4846,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "4_10" @@ -4918,7 +4873,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "5_10" @@ -4944,7 +4900,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "6_10" @@ -4970,7 +4927,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "7_10" @@ -4996,7 +4954,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "8_10" @@ -5022,7 +4981,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "9_10" @@ -5048,7 +5008,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, - {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "10_10" @@ -5073,7 +5034,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_tests_commands subshard: 1_1 @@ -5088,7 +5050,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_tests_commands subshard: 1_1 @@ -5103,7 +5066,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_tests subshard: general @@ -5463,13 +5427,17 @@ targets: ["devicelab", "ios", "mac"] task_name: route_test_ios - - name: Mac_ios flavors_test_ios + - name: Mac flavors_test_ios recipe: devicelab/devicelab_drone presubmit: false timeout: 60 properties: + dependencies: >- + [ + {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"} + ] tags: > - ["devicelab", "ios", "mac"] + ["devicelab", "hostonly", "mac"] task_name: flavors_test_ios - name: Mac_arm64_ios flutter_gallery_ios__compile @@ -5585,40 +5553,60 @@ targets: ["devicelab", "ios", "mac"] task_name: integration_test_test_ios - - name: Mac_ios integration_ui_ios_driver + - name: Mac integration_ui_ios_driver recipe: devicelab/devicelab_drone + bringup: true presubmit: false timeout: 60 properties: + dependencies: >- + [ + {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"} + ] tags: > - ["devicelab", "ios", "mac"] + ["devicelab", "hostonly", "mac"] task_name: integration_ui_ios_driver - - name: Mac_ios integration_ui_ios_frame_number + - name: Mac integration_ui_ios_frame_number recipe: devicelab/devicelab_drone + bringup: true presubmit: false timeout: 60 properties: + dependencies: >- + [ + {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"} + ] tags: > - ["devicelab", "ios", "mac"] + ["devicelab", "hostonly", "mac"] task_name: integration_ui_ios_frame_number - - name: Mac_ios integration_ui_ios_keyboard_resize + - name: Mac integration_ui_ios_keyboard_resize recipe: devicelab/devicelab_drone + bringup: true presubmit: false timeout: 60 properties: + dependencies: >- + [ + {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"} + ] tags: > - ["devicelab", "ios", "mac"] + ["devicelab", "hostonly", "mac"] task_name: integration_ui_ios_keyboard_resize - - name: Mac_ios integration_ui_ios_textfield + - name: Mac integration_ui_ios_textfield recipe: devicelab/devicelab_drone + bringup: true presubmit: false timeout: 60 properties: + dependencies: >- + [ + {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"} + ] tags: > - ["devicelab", "ios", "mac"] + ["devicelab", "hostonly", "mac"] task_name: integration_ui_ios_textfield - name: Mac_x64 ios_app_with_extensions_test @@ -6166,7 +6154,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "1_9" @@ -6183,7 +6172,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "2_9" @@ -6200,7 +6190,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "3_9" @@ -6217,7 +6208,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "4_9" @@ -6234,7 +6226,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "5_9" @@ -6251,7 +6244,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "6_9" @@ -6268,7 +6262,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "7_9" @@ -6285,7 +6280,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "8_9" @@ -6302,7 +6298,8 @@ targets: {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: build_tests subshard: "9_9" @@ -6387,7 +6384,8 @@ targets: {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "vs_build", "version": "version:vs2019"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "android_sdk", "version": "version:37v2"} + {"dependency": "android_sdk", "version": "version:37v2"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: framework_tests subshard: misc @@ -6395,7 +6393,7 @@ targets: ["framework", "hostonly", "shard", "windows"] runIf: - dev/** - - examples/api/** + - examples/** - packages/flutter/** - packages/flutter_driver/** - packages/integration_test/** @@ -6419,7 +6417,8 @@ targets: {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, {"dependency": "vs_build", "version": "version:vs2019"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "android_sdk", "version": "version:37v2"} + {"dependency": "android_sdk", "version": "version:37v2"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: framework_tests subshard: misc @@ -6506,7 +6505,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "windows"] @@ -6551,7 +6551,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "windows"] @@ -6571,7 +6572,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "windows"] @@ -6591,7 +6593,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "windows"] @@ -6613,7 +6616,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "windows"] @@ -6660,7 +6664,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "windows"] @@ -6680,7 +6685,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "windows"] @@ -6700,7 +6706,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] tags: > ["devicelab", "hostonly", "windows"] @@ -6865,7 +6872,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "1_10" @@ -6891,7 +6899,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "2_10" @@ -6917,7 +6926,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "3_10" @@ -6943,7 +6953,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "4_10" @@ -6969,7 +6980,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "5_10" @@ -6995,7 +7007,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "6_10" @@ -7021,7 +7034,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "7_10" @@ -7047,7 +7061,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "8_10" @@ -7073,7 +7088,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "9_10" @@ -7099,7 +7115,8 @@ targets: {"dependency": "chrome_and_driver", "version": "version:145.0.7632.117"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_integration_tests subshard: "10_10" @@ -7123,7 +7140,8 @@ targets: [ {"dependency": "android_sdk", "version": "version:37v2"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_tests_commands subshard: 1_2 @@ -7147,7 +7165,8 @@ targets: [ {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "vs_build", "version": "version:vs2019"} + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_tests_commands subshard: 2_2 @@ -7169,7 +7188,8 @@ targets: dependencies: >- [ {"dependency": "android_sdk", "version": "version:37v2"}, - {"dependency": "open_jdk", "version": "version:21"} + {"dependency": "open_jdk", "version": "version:21"}, + {"dependency": "gradle_dists", "version": "8.4-bin:8.13-rc-1-bin:8.14-bin:9.3.1-bin:9.3.1-all"} ] shard: tool_tests subshard: general @@ -7240,6 +7260,20 @@ targets: ] task_name: windows_home_scroll_perf__timeline_summary + - name: Windows windows_text_shadow_perf__timeline_summary + recipe: devicelab/devicelab_drone + presubmit: false + bringup: true + timeout: 60 + properties: + tags: > + ["devicelab", "hostonly", "windows"] + dependencies: >- + [ + {"dependency": "vs_build", "version": "version:vs2019"} + ] + task_name: windows_text_shadow_perf__timeline_summary + - name: Windows_arm64 windows_home_scroll_perf__timeline_summary recipe: devicelab/devicelab_drone presubmit: false @@ -7280,6 +7314,21 @@ targets: ] task_name: windows_desktop_impeller + - name: Windows windows_engine_integration_golden_test + recipe: devicelab/devicelab_drone + presubmit: false + bringup: true + timeout: 60 + properties: + tags: > + ["devicelab", "hostonly", "windows"] + dependencies: >- + [ + {"dependency": "vs_build", "version": "version:vs2019"}, + {"dependency": "goldctl", "version": "git_revision:c845c41b9b81bfcb11f2f0ab17b5b2386d634c31"} + ] + task_name: windows_engine_integration_golden_test + - name: Windows texture_impeller_windows recipe: devicelab/devicelab_drone presubmit: false @@ -7596,6 +7645,12 @@ targets: bringup: true timeout: 60 properties: + dependencies: >- + [ + {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, + {"dependency": "cmake", "version": "build_id:8787856497187628321"}, + {"dependency": "ninja", "version": "version:1.9.0"} + ] tags: > ["devicelab", "hostonly", "linux"] task_name: windowing_test_linux diff --git a/.gemini/styleguide.md b/.gemini/styleguide.md index b8a71a120e923..b095a5f134b68 100644 --- a/.gemini/styleguide.md +++ b/.gemini/styleguide.md @@ -29,6 +29,10 @@ flutter/flutter repository. It is based on the more comprehensive official - **Search for counter-examples**: Identify scenarios or edge cases that the proposed code does not handle. If a counter-example is found, propose a test case to demonstrate the gap. - **Suggest simplification and refactoring**: Assess whether the code can be made simpler or refactored to enhance readability and maintainability. +### What Not to Report + +- **Do not report syntax errors**: Leave the detection of syntax errors to the analyzer. The review agent should focus on higher-level concerns such as logic, design, and maintainability rather than issues that automated tooling already catches. + ## General Philosophy - **Optimize for readability**: Code is read more often than it is written. diff --git a/.github/ISSUE_TEMPLATE/09_feature.yml b/.github/ISSUE_TEMPLATE/09_feature.yml deleted file mode 100644 index ccce3f7890a3d..0000000000000 --- a/.github/ISSUE_TEMPLATE/09_feature.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Create an umbrella issue -description: As a contributor, I would like to create an umbrella issue for a -feature to be added to the feature tracker. -title: '☂️ ' -projects: ["flutter/82"] -body: - - type: input - id: design_doc - attributes: - label: Design Doc - description: Add a design doc if there is one for this feature. - - type: textarea - id: description - attributes: - label: Description - description: Please describe the feature you are adding. - validations: - required: true - - type: textarea - id: tracking_issues - attributes: - label: Tracking Issues - description: List of issues associated with this feature. - validations: - required: true diff --git a/.github/ISSUE_TEMPLATE/09_wasm.yml b/.github/ISSUE_TEMPLATE/09_wasm.yml new file mode 100644 index 0000000000000..b0c2e35e218e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/09_wasm.yml @@ -0,0 +1,60 @@ +name: Report a Flutter WebAssembly (Wasm) issue +description: | + You hit a compilation, packaging, or runtime blocker while targeting WebAssembly (Wasm) in Flutter Web. +labels: ['platform-web', 'e: wasm', 'c: tfw4'] +body: + - type: markdown + attributes: + value: | + Thank you for testing Flutter Web with WebAssembly! 🚀 + Please provide relevant build logs, browser details, and package dependencies so engineering leads can rapidly triage your issue. + - type: textarea + id: build_command_output + attributes: + label: Build Command & Compile Logs + description: | + Paste the exact build command (e.g., `flutter build web --wasm`) and any resulting terminal errors or stack traces. **Note: If reporting a runtime bug where compilation succeeded cleanly, simply list your build command without full terminal output.** + placeholder: | + $ flutter build web --wasm + Target wasm_module failed: ... + render: shell + validations: + required: true + - type: input + id: browser_version + attributes: + label: Target Browser & Version + description: Specify the browser and version where the Wasm runtime or visual bug occurred (e.g., Chrome 145.0.0.0, Safari 18.2). **Optional if reporting a compilation or build failure.** + placeholder: Chrome 145.0 + validations: + required: false + - type: textarea + id: blocking_packages + attributes: + label: Blocking Packages / Dependencies + description: | + List any third-party packages from your `pubspec.yaml` causing Wasm compilation failures or missing FFI bindings. Leave blank if standard SDK code. + placeholder: | + package:sqlite3_web 2.1.0 + package:js_bindings 1.4.2 + validations: + required: false + - type: textarea + id: reproduction_steps + attributes: + label: Steps to reproduce & Actual Behavior + description: Provide specific code snippets or minimal reproduction steps describing what went wrong versus expected results. If reporting a runtime exception, include console DevTools stack traces here. + placeholder: | + 1. Create default demo app with `--wasm` flag. + 2. Import package X and call `init()`. + 3. Observe console exception in browser DevTools. + validations: + required: true + - type: textarea + id: flutter_doctor + attributes: + label: Flutter Doctor Output + description: Paste the complete output of `flutter doctor -v` from your local terminal. + render: shell + validations: + required: true diff --git a/.github/labeler.yml b/.github/labeler.yml index 0353541bf2961..ba01674f4c24a 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -50,7 +50,7 @@ 'd: api docs': - changed-files: - any-glob-to-any-file: - - examples/api/**/* + - packages/flutter/examples/api/**/* 'd: docs/': - changed-files: @@ -61,6 +61,7 @@ - changed-files: - any-glob-to-any-file: - examples/**/* + - packages/flutter/examples/**/* 'e: embedder': - changed-files: @@ -138,7 +139,6 @@ framework: - packages/flutter_localizations/**/* - packages/flutter_test/**/* - packages/integration_test/**/* - - examples/api/**/* - docs/about/**/* - docs/contributing/**/* - docs/libraries/**/* diff --git a/.github/workflows/freeze.yml b/.github/workflows/freeze.yml index 7927f4d07e500..f69b46b250d11 100644 --- a/.github/workflows/freeze.yml +++ b/.github/workflows/freeze.yml @@ -22,6 +22,9 @@ jobs: name: Check Code Freeze runs-on: ubuntu-latest if: ${{ github.repository == 'flutter/flutter' }} + permissions: + contents: read + pull-requests: write steps: - name: Check for changes in frozen folders @@ -32,23 +35,50 @@ jobs: token: ${{ github.token }} filters: | frozen: + - 'packages/flutter/examples/api/lib/material/**' + - 'packages/flutter/examples/api/lib/cupertino/**' + - 'packages/flutter/examples/api/test/material/**' + - 'packages/flutter/examples/api/test/cupertino/**' - 'packages/flutter/lib/src/material/**' - 'packages/flutter/lib/src/cupertino/**' - 'packages/flutter/test/material/**' - 'packages/flutter/test/cupertino/**' - - 'examples/api/lib/material/**' - - 'examples/api/lib/cupertino/**' - - 'examples/api/test/material/**' - - 'examples/api/test/cupertino/**' - 'packages/flutter/lib/fix_data/fix_cupertino.yaml' - 'packages/flutter/lib/fix_data/fix_material/**' - 'packages/flutter/test_fixes/material/**' - 'packages/flutter/test_fixes/cupertino/**' + - name: Comment on frozen changes + if: github.event_name != 'merge_group' && steps.filter.outputs.frozen == 'true' && !contains(github.event.pull_request.labels.*.name, 'override code freeze') + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + github-token: ${{ github.token }} + script: | + const issueNumber = context.issue.number; + const comments = await github.paginate(github.rest.issues.listComments, { + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + }); + const issueUrl = 'https://github.com/flutter/flutter/issues/188444'; + const alreadyCommented = comments.some(comment => + comment.body && comment.body.includes(issueUrl) + ); + if (!alreadyCommented) { + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + body: 'This pull request contains changes to Material or Cupertino, which are currently frozen in this repository.\n\n' + + 'Changes should be made in `material_ui` and/or `cupertino_ui` in the [flutter/packages](https://github.com/flutter/packages) repository.\n\n' + + 'Please refer to https://github.com/flutter/flutter/issues/188444 for instructions.', + }); + } + - name: Fail on frozen changes if: github.event_name != 'merge_group' && steps.filter.outputs.frozen == 'true' && !contains(github.event.pull_request.labels.*.name, 'override code freeze') run: | echo "Error: Code changes detected during the current code freeze." - echo "If this is a critical fix that must land, please file an issue for team-design." - echo "Info: https://github.com/flutter/flutter/issues/184093" + echo "Changes to Material and Cupertino should be made in material_ui and/or cupertino_ui in the flutter/packages repository." + echo "Info: https://github.com/flutter/flutter/issues/188444" exit 1 diff --git a/.github/workflows/tree-analyze.yml b/.github/workflows/tree-analyze.yml index 3f1ac02ccc92d..93f8fbc83eef6 100644 --- a/.github/workflows/tree-analyze.yml +++ b/.github/workflows/tree-analyze.yml @@ -33,6 +33,7 @@ jobs: uses: ./.github/actions/wait-for-engine-build with: github-token: ${{ secrets.GITHUB_TOKEN }} + check-name: 'Linux linux_host_engine,Linux linux_android_debug_engine' - uses: ./.github/actions/composite-flutter-setup diff --git a/DEPS b/DEPS index 1666d37147f40..7deaee1ad3888 100644 --- a/DEPS +++ b/DEPS @@ -10,13 +10,12 @@ vars = { 'android_git': 'https://android.googlesource.com', 'chromium_git': 'https://chromium.googlesource.com', - 'swiftshader_git': 'https://swiftshader.googlesource.com', 'dart_git': 'https://dart.googlesource.com', 'flutter_git': 'https://flutter.googlesource.com', 'skia_git': 'https://skia.googlesource.com', 'llvm_git': 'https://llvm.googlesource.com', 'dart_ai_rev': '9c96bfe5f091c9451eff5b59c9bffeb2e806b875', - 'skia_revision': 'f73c4510d12da77512253d3a00d72275b45427c7', + 'skia_revision': 'd07795eebb11219c638399981a60e9a6ff6052b3', # Do not download the Emscripten SDK by default. # This prevents us from downloading the Emscripten toolchain for builds @@ -56,24 +55,24 @@ vars = { # updated revision list of existing dependencies. You will need to # gclient sync before and after update deps to ensure all deps are updated. # updated revision list of existing dependencies. - 'dart_revision': 'c3acfc2479f6eae42f7cbafe5e5518a2dd757b81', + 'dart_revision': 'ad45e1b3210985c57bdb99960c77659050f4eebb', # WARNING: DO NOT EDIT MANUALLY # The lines between blank lines above and below are generated by a script. See create_updated_flutter_deps.py 'dart_binaryen_rev': '9926156a583cec3d22d521232b31c70fa9a87dc1', - 'dart_boringssl_rev': '22a0079b189c391b95689813a41982ce11876f0a', - 'dart_core_rev': 'fe516ee1b38cc60e7a8c6e082c337037a043d782', + 'dart_boringssl_rev': '7017746ef9f887c9005f035d9bd88974d53fd48f', + 'dart_core_rev': '4a5ae2bc9db1f39fac071f1a6fade64bd155f734', 'dart_devtools_rev': '21f1838f3a9b138ac377efb953ca5a53c8832e75', - 'dart_ecosystem_rev': 'edfdb3b4063b9034b708144633a700204f865f43', - 'dart_http_rev': '5d94ef52582867e077bf41c3fa20fb8b1d1d834e', + 'dart_ecosystem_rev': 'ed9c592c1d35106c0a8a52044426515017a60646', + 'dart_http_rev': 'a9176ac97402a42e1b275a26eb20a9deaec92184', 'dart_i18n_rev': 'e1b5a798f8922bb27bbc6d858748ece6f9a19f02', 'dart_perfetto_rev': '13ce0c9e13b0940d2476cd0cff2301708a9a2e2b', 'dart_protobuf_rev': '91efb90f437bb6a30e6726c3369a2fcb9bba06e7', - 'dart_pub_rev': 'ec276d10a7fa0f6c6ec005340fb9ad29f3b012d0', + 'dart_pub_rev': '7654d523a42e764fad77c9e7b63a9686b88c9323', 'dart_sync_http_rev': '6666fff944221891182e1f80bf56569338164d72', - 'dart_tools_rev': 'b827a6e38b934232c7f7b8728a5aef6165e7df2d', + 'dart_tools_rev': 'd644cdabe20233a344fc0eb1f5cbd1cc3388ad9d', 'dart_vector_math_rev': 'cf3b5db7340d317dd3489e5a35434b408020a852', - 'dart_web_rev': '12a9ca2ebc08f5a6f2d69aebc7daa1f5a2e6a431', + 'dart_web_rev': '6b84f811cd67a5fd05f4dac24cb56542bcfc92e4', 'dart_webdriver_rev': '3a711ebb36871eac997c5d5d2429f7414873dc63', 'dart_webkit_inspection_protocol_rev': '762115a971d1968bc940454ad1e88d506d8c5640', @@ -186,7 +185,6 @@ vars = { "upstream_shelf": "https://github.com/dart-lang/shelf.git", "upstream_skia": "https://skia.googlesource.com/skia.git", "upstream_sqlite": "https://github.com/sqlite/sqlite.git", - "upstream_SwiftShader": "https://swiftshader.googlesource.com/SwiftShader.git", "upstream_tar": "https://github.com/simolus3/tar.git", "upstream_test": "https://github.com/dart-lang/test.git", "upstream_usage": "https://github.com/dart-lang/usage.git", @@ -201,7 +199,7 @@ vars = { # The version / instance id of the cipd:chromium/fuchsia/test-scripts which # will be used altogether with fuchsia-sdk to setup the build / test # environment. - 'fuchsia_test_scripts_version': '1frGe_KltAJKkeyPgy4cDJqScCYVYSpC9sJfjflcvl4C', + 'fuchsia_test_scripts_version': 'KaOq3EE4qJ9fnaaaKznmHAZs9wyn-LdK_h52KEQv2KgC', # The version / instance id of the cipd:chromium/fuchsia/gn-sdk which will be # used altogether with fuchsia-sdk to generate gn based build rules. @@ -224,7 +222,6 @@ allowed_hosts = [ 'flutter.googlesource.com', 'llvm.googlesource.com', 'skia.googlesource.com', - 'swiftshader.googlesource.com', ] deps = { @@ -342,7 +339,7 @@ deps = { Var('dart_git') + '/dart_style.git@dfdf6420c7ea923d28edef3f11e89b4ff23d03bf', 'engine/src/flutter/third_party/dart/third_party/pkg/dartdoc': - Var('dart_git') + '/dartdoc.git@ac96918074974dcd4ea20f764f17090f58c1e428', + Var('dart_git') + '/dartdoc.git@8be851e2bfc5e4cfc0c7ec6f64b1a89699bf6456', 'engine/src/flutter/third_party/dart/third_party/pkg/ecosystem': Var('dart_git') + '/ecosystem.git' + '@' + Var('dart_ecosystem_rev'), @@ -357,7 +354,7 @@ deps = { Var('dart_git') + '/leak_tracker.git@f5620600a5ce1c44f65ddaa02001e200b096e14c', 'engine/src/flutter/third_party/dart/third_party/pkg/native': - Var('dart_git') + '/native.git@046f63d1d89cd9954623bfa2df9c69d1a395375e', + Var('dart_git') + '/native.git@ae2fa39d12465cb415fb57e1aa03f8f4c0dc682f', 'engine/src/flutter/third_party/dart/third_party/pkg/protobuf': Var('dart_git') + '/protobuf.git' + '@' + Var('dart_protobuf_rev'), @@ -366,7 +363,7 @@ deps = { Var('dart_git') + '/pub.git' + '@' + Var('dart_pub_rev'), 'engine/src/flutter/third_party/dart/third_party/pkg/shelf': - Var('dart_git') + '/shelf.git@6918a7690946044b4098e9f6735439044c676e13', + Var('dart_git') + '/shelf.git@fb3f931d2c158d794e83c1b76b7be4b625db3c28', 'engine/src/flutter/third_party/dart/third_party/pkg/sync_http': Var('dart_git') + '/sync_http.git' + '@' + Var('dart_sync_http_rev'), @@ -375,7 +372,7 @@ deps = { Var('dart_git') + '/external/github.com/simolus3/tar.git@13479f7c2a18f499e840ad470cfcca8c579f6909', 'engine/src/flutter/third_party/dart/third_party/pkg/test': - Var('dart_git') + '/test.git@bd92e633e7f05edc3301865bdc00d1ae181cb1f1', + Var('dart_git') + '/test.git@55b186ddcad50fe4808226e0b681875dda6dd123', 'engine/src/flutter/third_party/dart/third_party/pkg/tools': Var('dart_git') + '/tools.git' + '@' + Var('dart_tools_rev'), @@ -544,7 +541,7 @@ deps = { Var('flutter_git') + '/third_party/pyyaml.git' + '@' + '03c67afd452cdff45b41bfe65e19a2fb5b80a0e8', 'engine/src/flutter/third_party/swiftshader': - Var('swiftshader_git') + '/SwiftShader.git' + '@' + '794b0cfce1d828d187637e6d932bae484fbe0976', + Var('flutter_git') + '/third_party/swiftshader.git' + '@' + '1be9f83618f8ba258431c0c13d7a083eb193df11', 'engine/src/flutter/third_party/angle': Var('flutter_git') + '/third_party/angle' + '@' + 'cc08479fbcc181697fa837069ce1103c58c15528', @@ -833,7 +830,7 @@ deps = { 'packages': [ { 'package': 'fuchsia/sdk/core/linux-amd64', - 'version': '_J8wM3kyQpLN9wvRD5upBr9L1g5TCYF3Oc8P0m3QeZMC' + 'version': 'G3M0_OC-NACckIiVgFyftqUoCFlVblBmLtYUlWlkFFoC' } ], 'condition': 'download_fuchsia_deps and not download_fuchsia_sdk', diff --git a/TESTOWNERS b/TESTOWNERS index f84904777efe9..c631152cc7b95 100644 --- a/TESTOWNERS +++ b/TESTOWNERS @@ -156,7 +156,6 @@ /dev/devicelab/bin/tasks/integration_ui_driver.dart @bkonyi @flutter/tool /dev/devicelab/bin/tasks/integration_ui_frame_number.dart @jtmcdole @flutter/engine /dev/devicelab/bin/tasks/integration_ui_keyboard_resize.dart @bkonyi @flutter/tool -/dev/devicelab/bin/tasks/integration_ui_screenshot.dart @bkonyi @flutter/tool /dev/devicelab/bin/tasks/integration_ui_textfield.dart @bkonyi @flutter/tool /dev/devicelab/bin/tasks/microbenchmarks.dart @jtmcdole @flutter/engine /dev/devicelab/bin/tasks/native_assets_android.dart @dcharkes @flutter/android @@ -210,7 +209,6 @@ /dev/devicelab/bin/tasks/integration_ui_ios_driver.dart LongCatIsLooong @flutter/tool /dev/devicelab/bin/tasks/integration_ui_ios_frame_number.dart @jtmcdole @flutter/engine /dev/devicelab/bin/tasks/integration_ui_ios_keyboard_resize.dart @LongCatIsLooong @flutter/engine -/dev/devicelab/bin/tasks/integration_ui_ios_screenshot.dart @LongCatIsLooong @flutter/tool /dev/devicelab/bin/tasks/integration_ui_ios_textfield.dart @LongCatIsLooong @flutter/tool /dev/devicelab/bin/tasks/ios_app_with_extensions_test.dart @hellohuanlin @flutter/tool /dev/devicelab/bin/tasks/ios_defines_test.dart @vashworth @flutter/tool @@ -331,7 +329,9 @@ /dev/devicelab/bin/tasks/windowing_test_macos.dart @knopp @flutter/desktop /dev/devicelab/bin/tasks/windowing_test_windows.dart @mattkae @flutter/desktop /dev/devicelab/bin/tasks/windows_desktop_impeller.dart @jonahwilliams @flutter/engine +/dev/devicelab/bin/tasks/windows_engine_integration_golden_test.dart @b-luk @flutter/engine /dev/devicelab/bin/tasks/windows_home_scroll_perf__timeline_summary.dart @jonahwilliams @flutter/engine +/dev/devicelab/bin/tasks/windows_text_shadow_perf__timeline_summary.dart @gaaclarke @flutter/engine /dev/devicelab/bin/tasks/windows_startup_test.dart @loic-sharma @flutter/desktop ## Host only framework tests @@ -339,6 +339,8 @@ # Linux docs_generate_release # Linux docs_publish /dev/bots/docs.sh @Piinks @flutter/framework +# Linux snippets +/dev/snippets @dkwingsmt @flutter/framework # Linux packages_autoroller /dev/conductor/core @christopherfujino @flutter/tool # Linux web_e2e_test @@ -373,6 +375,7 @@ # coverage @christopherfujino @flutter/infra # customer_testing @Piinks @flutter/framework # docs @Piinks @flutter/framework +# snippets @Piinks @flutter/framework # flutter_packaging @christopherfujino @flutter/infra # flutter_plugins @stuartmorgan-g @flutter/plugin # framework_tests @Piinks @flutter/framework diff --git a/analysis_options.yaml b/analysis_options.yaml index 74a5e1e3b0eeb..74bb48dbae333 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,6 +1,16 @@ include: analysis_options_common.yaml +# Note: Analyzer plugins (such as flutter_analyzer_plugin) must be configured +# directly in each subpackage's analysis_options.yaml (with the appropriate +# relative depth) rather than at the repository root. The Dart analyzer resolves +# plugin paths relative to the subpackage directory evaluating the options, so +# relative plugin paths cannot be inherited from root options. + analyzer: + errors: + # This error code will no longer be reported here. Until dart rolls in, we need to just ignore the issue. + # ignore: unrecognized_error_code + plugins_in_inner_options: ignore exclude: - "bin/cache/**" # Ignore protoc generated files diff --git a/bin/internal/flutter_packages.version b/bin/internal/flutter_packages.version index a6ebf2a65b6f0..277daccf98d0d 100644 --- a/bin/internal/flutter_packages.version +++ b/bin/internal/flutter_packages.version @@ -1 +1 @@ -5351d8c0f8df210f09d79aea5960a5d48ceb44af +a3e763e60321146e9f79571ca917c824b25e62ce diff --git a/bin/internal/update_dart_sdk.ps1 b/bin/internal/update_dart_sdk.ps1 index 318ef62add853..111a34e92210a 100644 --- a/bin/internal/update_dart_sdk.ps1 +++ b/bin/internal/update_dart_sdk.ps1 @@ -49,10 +49,16 @@ if ($engineRealm) { # It's important to use the native Dart SDK as the default target architecture # for Flutter Windows builds depend on the Dart executable's architecture. +# FLUTTER_HOST_ARCH can be set as an override to force download for the specified architecture. +# PROCESSOR_ARCHITECTURE is a standard Windows env var indicating host CPU architecture. $dartZipNameX64 = "dart-sdk-windows-x64.zip" $dartZipNameArm64 = "dart-sdk-windows-arm64.zip" $dartZipName = $dartZipNameX64 -if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { +if ($env:FLUTTER_HOST_ARCH -eq "arm64") { + $dartZipName = $dartZipNameArm64 +} elseif ($env:FLUTTER_HOST_ARCH -eq "x64") { + $dartZipName = $dartZipNameX64 +} elseif ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { $dartSdkArm64Url = "$dartSdkBaseUrl/flutter_infra_release/flutter/$engineVersion/$dartZipNameArm64" Try { Invoke-WebRequest -Uri $dartSdkArm64Url -UseBasicParsing -Method Head | Out-Null diff --git a/bin/internal/update_dart_sdk.sh b/bin/internal/update_dart_sdk.sh index 41f419112e1f4..cf306f0c1cd11 100755 --- a/bin/internal/update_dart_sdk.sh +++ b/bin/internal/update_dart_sdk.sh @@ -61,8 +61,11 @@ if [ ! -f "$ENGINE_STAMP" ] || [ "$ENGINE_VERSION" != "$(< "$ENGINE_STAMP")" ]; exit 1 } - # `uname -m` may be running in Rosetta mode, instead query sysctl - if [ "$OS" = 'Darwin' ]; then + if [ -n "$FLUTTER_HOST_ARCH" ]; then + # FLUTTER_HOST_ARCH can be set to override the host architecture detection. + ARCH="$FLUTTER_HOST_ARCH" + elif [ "$OS" = 'Darwin' ]; then + # `uname -m` may be running in Rosetta mode, instead query sysctl # Allow non-zero exit so we can do control flow set +e # -n means only print value, not key diff --git a/dev/a11y_assessments/lib/main.dart b/dev/a11y_assessments/lib/main.dart index 2c03117319764..2f47a8530b3f5 100644 --- a/dev/a11y_assessments/lib/main.dart +++ b/dev/a11y_assessments/lib/main.dart @@ -42,7 +42,7 @@ final ThemeData _highContrastDarkTheme = _buildTheme( ); class App extends StatelessWidget { - const App({super.key, this.initialTags = const {Tag.batch2}}); + const App({super.key, this.initialTags = const {Tag.batch3}}); final Set initialTags; diff --git a/dev/a11y_assessments/lib/use_cases/bottom_app_bar.dart b/dev/a11y_assessments/lib/use_cases/bottom_app_bar.dart new file mode 100644 index 0000000000000..3aaf4b79a571e --- /dev/null +++ b/dev/a11y_assessments/lib/use_cases/bottom_app_bar.dart @@ -0,0 +1,73 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; + +import '../utils.dart'; +import 'use_cases.dart'; + +class BottomAppBarUseCase extends UseCase { + BottomAppBarUseCase(); + + @override + String get name => 'BottomAppBar'; + + @override + String get route => '/bottom-app-bar'; + + @override + List get tags => [Tag.batch3, Tag.core]; + + @override + Widget build(BuildContext context) => const MainWidget(); +} + +class MainWidget extends StatefulWidget { + const MainWidget({super.key}); + + @override + State createState() => MainWidgetState(); +} + +class MainWidgetState extends State { + final String pageTitle = getUseCaseName(BottomAppBarUseCase()); + String _selectedAction = 'None'; + + void _onItemTapped(String action) { + setState(() { + _selectedAction = action; + }); + ScaffoldMessenger.of(context).hideCurrentSnackBar(); + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Tapped: $action'))); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Semantics(headingLevel: 1, child: Text('$pageTitle Demo'))), + bottomNavigationBar: BottomAppBar( + child: Row( + children: [ + IconButton( + tooltip: 'Open menu', + icon: const Icon(Icons.menu), + onPressed: () => _onItemTapped('Menu'), + ), + IconButton( + tooltip: 'Search', + icon: const Icon(Icons.search), + onPressed: () => _onItemTapped('Search'), + ), + IconButton( + tooltip: 'Favorite', + icon: const Icon(Icons.favorite), + onPressed: () => _onItemTapped('Favorite'), + ), + ], + ), + ), + body: Center(child: Text('Selected: $_selectedAction')), + ); + } +} diff --git a/dev/a11y_assessments/lib/use_cases/check_box.dart b/dev/a11y_assessments/lib/use_cases/check_box.dart new file mode 100644 index 0000000000000..1864e8b77e0e9 --- /dev/null +++ b/dev/a11y_assessments/lib/use_cases/check_box.dart @@ -0,0 +1,55 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; +import '../utils.dart'; +import 'use_cases.dart'; + +class CheckBoxUseCase extends UseCase { + CheckBoxUseCase(); + + @override + String get name => 'CheckBox'; + + @override + String get route => '/check-box'; + + @override + List get tags => [Tag.batch3, Tag.core]; + + @override + Widget build(BuildContext context) => _MainWidget(); +} + +class _MainWidget extends StatefulWidget { + @override + State<_MainWidget> createState() => _MainWidgetState(); +} + +class _MainWidgetState extends State<_MainWidget> { + bool _checked = false; + + String pageTitle = getUseCaseName(CheckBoxUseCase()); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Semantics(headingLevel: 1, child: Text('$pageTitle Demo'))), + body: ListView( + children: [ + Checkbox( + value: _checked, + semanticLabel: 'Enabled checkbox', + onChanged: (bool? value) { + setState(() { + _checked = value!; + }); + }, + ), + const Checkbox(value: false, semanticLabel: 'Disabled checkbox', onChanged: null), + ], + ), + ); + } +} diff --git a/dev/a11y_assessments/lib/use_cases/dropdown_menu.dart b/dev/a11y_assessments/lib/use_cases/dropdown_menu.dart new file mode 100644 index 0000000000000..2de0c02f8eb7a --- /dev/null +++ b/dev/a11y_assessments/lib/use_cases/dropdown_menu.dart @@ -0,0 +1,69 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; +import '../utils.dart'; +import 'use_cases.dart'; + +class DropdownMenuUseCase extends UseCase { + DropdownMenuUseCase(); + + @override + String get name => 'DropdownMenu'; + + @override + String get route => '/dropdown-menu'; + + @override + List get tags => [Tag.batch3, Tag.core]; + + @override + Widget build(BuildContext context) => const _MainWidget(); +} + +class _MainWidget extends StatelessWidget { + const _MainWidget(); + + static const List _kOptions = ['apple', 'banana', 'lemon']; + static final List> _kMenuEntries = _kOptions + .map>( + (String name) => DropdownMenuEntry(value: name, label: name), + ) + .toList(); + + @override + Widget build(BuildContext context) { + final String pageTitle = getUseCaseName(DropdownMenuUseCase()); + return Scaffold( + appBar: AppBar(title: Semantics(headingLevel: 1, child: Text('$pageTitle Demo'))), + body: ListView( + padding: const EdgeInsets.all(24.0), + children: [ + Semantics( + label: 'Enabled dropdown menu', + child: DropdownMenu( + key: const Key('enabled dropdown menu'), + label: const Text('Fruit'), + expandedInsets: EdgeInsets.zero, + initialSelection: _kOptions.first, + dropdownMenuEntries: _kMenuEntries, + ), + ), + const SizedBox(height: 24.0), + Semantics( + label: 'Disabled dropdown menu', + child: DropdownMenu( + key: const Key('disabled dropdown menu'), + label: const Text('Fruit'), + expandedInsets: EdgeInsets.zero, + enabled: false, + initialSelection: _kOptions.first, + dropdownMenuEntries: _kMenuEntries, + ), + ), + ], + ), + ); + } +} diff --git a/dev/a11y_assessments/lib/use_cases/menu_anchor.dart b/dev/a11y_assessments/lib/use_cases/menu_anchor.dart new file mode 100644 index 0000000000000..e63c3bd9541ec --- /dev/null +++ b/dev/a11y_assessments/lib/use_cases/menu_anchor.dart @@ -0,0 +1,86 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; +import '../utils.dart'; +import 'use_cases.dart'; + +class MenuAnchorUseCase extends UseCase { + MenuAnchorUseCase(); + + @override + String get name => 'MenuAnchor'; + + @override + String get route => '/menu-anchor'; + + @override + List get tags => [Tag.core]; + + @override + Widget build(BuildContext context) => const _MainWidget(); +} + +class _MainWidget extends StatefulWidget { + const _MainWidget(); + + @override + State<_MainWidget> createState() => _MainWidgetState(); +} + +class _MainWidgetState extends State<_MainWidget> { + String _lastSelection = 'None'; + + @override + Widget build(BuildContext context) { + final String pageTitle = getUseCaseName(MenuAnchorUseCase()); + return Scaffold( + appBar: AppBar(title: Semantics(headingLevel: 1, child: Text('$pageTitle Demo'))), + body: ListView( + children: [ + Semantics(liveRegion: true, child: Text('Last Selection: $_lastSelection')), + Semantics( + label: 'Enabled menu anchor', + child: MenuAnchor( + key: const Key('enabled menu anchor'), + builder: (BuildContext context, MenuController controller, Widget? child) { + return ElevatedButton( + onPressed: () { + if (controller.isOpen) { + controller.close(); + } else { + controller.open(); + } + }, + child: const Text('Open Menu'), + ); + }, + menuChildren: [ + MenuItemButton( + onPressed: () { + setState(() { + _lastSelection = 'Item 1'; + }); + }, + child: const Text('Item 1'), + ), + const MenuItemButton(child: Text('Disabled Item')), + ], + ), + ), + Semantics( + label: 'Disabled menu anchor', + child: MenuAnchor( + key: const Key('disabled menu anchor'), + builder: (BuildContext context, MenuController controller, Widget? child) { + return const ElevatedButton(onPressed: null, child: Text('Disabled Menu Button')); + }, + menuChildren: const [MenuItemButton(child: Text('Disabled Item'))], + ), + ), + ], + ), + ); + } +} diff --git a/dev/a11y_assessments/lib/use_cases/menu_bar.dart b/dev/a11y_assessments/lib/use_cases/menu_bar.dart new file mode 100644 index 0000000000000..7cddfd95b4cc0 --- /dev/null +++ b/dev/a11y_assessments/lib/use_cases/menu_bar.dart @@ -0,0 +1,113 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; +import '../utils.dart'; +import 'use_cases.dart'; + +class MenuBarUseCase extends UseCase { + MenuBarUseCase(); + + @override + String get name => 'MenuBar'; + + @override + String get route => '/menu-bar'; + + @override + List get tags => [Tag.core]; + + @override + Widget build(BuildContext context) => const _MainWidget(); +} + +class _MainWidget extends StatefulWidget { + const _MainWidget(); + + @override + State<_MainWidget> createState() => _MainWidgetState(); +} + +class _MainWidgetState extends State<_MainWidget> { + String _lastSelection = 'None'; + + @override + Widget build(BuildContext context) { + final String pageTitle = getUseCaseName(MenuBarUseCase()); + return Scaffold( + appBar: AppBar(title: Semantics(headingLevel: 1, child: Text('$pageTitle Demo'))), + body: ListView( + children: [ + Semantics(liveRegion: true, child: Text('Last Selection: $_lastSelection')), + Semantics( + label: 'Enabled menu bar', + child: MenuBar( + key: const Key('enabled menu bar'), + children: [ + SubmenuButton( + menuChildren: [ + MenuItemButton( + onPressed: () { + setState(() { + _lastSelection = 'Save'; + }); + }, + child: const Text('Save'), + ), + const MenuItemButton(child: Text('Disabled Item')), + ], + child: const Text('File'), + ), + SubmenuButton( + menuChildren: [ + MenuItemButton( + onPressed: () { + setState(() { + _lastSelection = 'About'; + }); + }, + child: const Text('About'), + ), + SubmenuButton( + menuChildren: [ + MenuItemButton( + onPressed: () { + setState(() { + _lastSelection = 'Documentation'; + }); + }, + child: const Text('Documentation'), + ), + MenuItemButton( + onPressed: () { + setState(() { + _lastSelection = 'Send Feedback'; + }); + }, + child: const Text('Send Feedback'), + ), + ], + child: const Text('Online Help'), + ), + ], + child: const Text('Help'), + ), + ], + ), + ), + Semantics( + label: 'Disabled menu bar', + child: const MenuBar( + key: Key('disabled menu bar'), + children: [ + SubmenuButton(menuChildren: [], child: Text('Disabled File')), + MenuItemButton(child: Text('Disabled Help')), + ], + ), + ), + ], + ), + ); + } +} diff --git a/dev/a11y_assessments/lib/use_cases/radio.dart b/dev/a11y_assessments/lib/use_cases/radio.dart new file mode 100644 index 0000000000000..bd39862dfee62 --- /dev/null +++ b/dev/a11y_assessments/lib/use_cases/radio.dart @@ -0,0 +1,88 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; +import '../utils.dart'; +import 'use_cases.dart'; + +class RadioUseCase extends UseCase { + RadioUseCase(); + + @override + String get name => 'Radio'; + + @override + String get route => '/radio'; + + @override + List get tags => [Tag.batch3, Tag.core]; + + @override + Widget build(BuildContext context) => _MainWidget(); +} + +enum Option { option1, option2, option3 } + +class _MainWidget extends StatefulWidget { + @override + State<_MainWidget> createState() => _MainWidgetState(); +} + +class _MainWidgetState extends State<_MainWidget> { + Option? _value = Option.option1; + + String pageTitle = getUseCaseName(RadioUseCase()); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Semantics(headingLevel: 1, child: Text('$pageTitle Demo'))), + body: Center( + child: RadioGroup