-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Allow flutter attach to discover flutter engine running on Custom Device #170635
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow flutter attach to discover flutter engine running on Custom Device #170635
Conversation
|
It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging. If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group. |
e11f162 to
7b1d1c7
Compare
bkonyi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like this! I do think we'll need some more thorough tests that actually exercise the behavior of the log reader before I can approve this. This could be as simple as setting the readLogs command to echo some message and then verifying we're actually able to see it.
packages/flutter_tools/lib/src/custom_devices/custom_device.dart
Outdated
Show resolved
Hide resolved
Thanks for the comment @bkonyi! Can you point me to where this test should live? I have not been able to find where the other commands from the custom device are unit tested anywhere. Thanks! |
I think they can live in packages/flutter_tools/test/commands.shard/hermetic/custom_devices_test.dart |
0b4c094 to
79ea8ff
Compare
@bkonyi I've added the unit test. Thanks! |
bkonyi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM overall! Thanks for adding the test!
packages/flutter_tools/lib/src/custom_devices/custom_device.dart
Outdated
Show resolved
Hide resolved
A Custom Device's log reader doesn't do anything, and thus `flutter attach` will fail to ever find the flutter engine's VM service. This change adds a new `readLogs` command to the CustomDeviceConfig, and which allows a custom device to read the logs from the running flutter app on the actual custom device, and then allow flutter attach to work.
128dc92 to
9672a8d
Compare
|
@bkonyi I do not have access to merge this PR. Would you do it for me please? Thanks! |
|
I got it. |
|
autosubmit label was removed for flutter/flutter/170635, because This PR has not met approval requirements for merging. The PR author is not a member of flutter-hackers and needs 1 more review(s) in order to merge this PR.
|
|
@bkonyi From code inspection, I noticed that the desktop implementations also have the same issue. If so, I feel it could be beneficial to add the same type of thing for those platforms too... |
flutter/flutter@ac12f66...43657f3 2025-07-10 [email protected] [web] Add frame number support. (flutter/flutter#171592) 2025-07-10 [email protected] Fix the hitTest issue of reversed SliverMainAxisGroup. (flutter/flutter#171073) 2025-07-10 [email protected] Roll Fuchsia Linux SDK from 0-xqmXWc4cXzw3tfe... to lO64ePNEGrGzs-MFC... (flutter/flutter#171937) 2025-07-10 [email protected] Refactor compositor classes (flutter/flutter#171414) 2025-07-10 [email protected] Give an actionable error to `flutter_test.*tap` of a `RenderSliver` (flutter/flutter#171930) 2025-07-10 [email protected] Fix the issue with `SliverMainAxisGroups` growing in the reverse direction during layout. (flutter/flutter#171005) 2025-07-09 [email protected] Adds a MCP server for working with the engine (flutter/flutter#171738) 2025-07-09 [email protected] Use Async SurfaceHolder Callback to remove need for setting alpha workaround (flutter/flutter#171398) 2025-07-09 [email protected] Update `CHANGELOG` for 3.32.5, 3.32.6 stable hotfix releases (flutter/flutter#171891) 2025-07-09 [email protected] Add `flutter config --enable-omit-legacy-version-file` (flutter/flutter#171903) 2025-07-09 [email protected] Allow flutter attach to discover flutter engine running on Custom Device (flutter/flutter#170635) 2025-07-09 [email protected] Hide the rarely direct used `--sample` argument by default (flutter/flutter#171898) 2025-07-09 [email protected] Support `NO_COLOR` to opt-out of `flutter` tool ANSI colors (flutter/flutter#171892) 2025-07-09 [email protected] [Android 16] Added Docs to Warn Users that SystemChrome.setPreferredOrientations will Not Work (flutter/flutter#171089) 2025-07-09 [email protected] Add analytics events for wasm dry runs on web builds (flutter/flutter#171818) 2025-07-09 [email protected] feat: new builders for size experiment (flutter/flutter#171886) 2025-07-09 [email protected] Update `.gitignore`s (flutter/flutter#171907) 2025-07-09 [email protected] Add total execution time to the flutter upgrade command (flutter/flutter#171475) 2025-07-09 [email protected] Simplify the template for infrastructure requests (flutter/flutter#171905) 2025-07-09 [email protected] Add detailed error message for BorderRadiusDirectional (flutter/flutter#171805) 2025-07-09 [email protected] Add public postmortem of the 3.32.3 release. (flutter/flutter#171904) 2025-07-09 [email protected] Make `labels` field an array (flutter/flutter#171906) 2025-07-09 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Reverts "Roll Packages from cba2e90 to 4a231ae (5 revisions) (#171879)" (#171897)" (flutter/flutter#171910) 2025-07-09 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Packages from cba2e90 to 4a231ae (5 revisions) (#171879)" (flutter/flutter#171897) 2025-07-09 [email protected] [skia] Fix flag fiddling for Fuchsia, FreeType, & friends (flutter/flutter#171874) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…ice (flutter#170635) ## Summary A Custom Device's log reader doesn't do anything, and thus `flutter attach` will fail to ever find the flutter engine's VM service. This change adds a new `readLogs` command to the CustomDeviceConfig, and which allows a custom device to read the logs from the running flutter app on the actual custom device, and then allow flutter attach to work. Fixes flutter#170634 ## Testing Created a custom device, and added the following readLogs command in the `custom_devices.json` file: ``` "readLogs": [ "sshpass", "-f", "/home/dvalente/player.txt", "ssh", "[email protected]", "tail -Fn +1 /opt/log/flutter.log" ] ``` Then, running `flutter attach` works every time. **Tested the following scenarios:** * Launched `flutter attach` before app is running on device, and once app runs, flutter attach succeeds * Launched `flutter attach` after app is already running on device, and flutter attach succeeds. * Used `flutter attach` in Android Studio, and hot reload works just like any Android device.
…ice (flutter#170635) ## Summary A Custom Device's log reader doesn't do anything, and thus `flutter attach` will fail to ever find the flutter engine's VM service. This change adds a new `readLogs` command to the CustomDeviceConfig, and which allows a custom device to read the logs from the running flutter app on the actual custom device, and then allow flutter attach to work. Fixes flutter#170634 ## Testing Created a custom device, and added the following readLogs command in the `custom_devices.json` file: ``` "readLogs": [ "sshpass", "-f", "/home/dvalente/player.txt", "ssh", "[email protected]", "tail -Fn +1 /opt/log/flutter.log" ] ``` Then, running `flutter attach` works every time. **Tested the following scenarios:** * Launched `flutter attach` before app is running on device, and once app runs, flutter attach succeeds * Launched `flutter attach` after app is already running on device, and flutter attach succeeds. * Used `flutter attach` in Android Studio, and hot reload works just like any Android device.
…r#9589) flutter/flutter@ac12f66...43657f3 2025-07-10 [email protected] [web] Add frame number support. (flutter/flutter#171592) 2025-07-10 [email protected] Fix the hitTest issue of reversed SliverMainAxisGroup. (flutter/flutter#171073) 2025-07-10 [email protected] Roll Fuchsia Linux SDK from 0-xqmXWc4cXzw3tfe... to lO64ePNEGrGzs-MFC... (flutter/flutter#171937) 2025-07-10 [email protected] Refactor compositor classes (flutter/flutter#171414) 2025-07-10 [email protected] Give an actionable error to `flutter_test.*tap` of a `RenderSliver` (flutter/flutter#171930) 2025-07-10 [email protected] Fix the issue with `SliverMainAxisGroups` growing in the reverse direction during layout. (flutter/flutter#171005) 2025-07-09 [email protected] Adds a MCP server for working with the engine (flutter/flutter#171738) 2025-07-09 [email protected] Use Async SurfaceHolder Callback to remove need for setting alpha workaround (flutter/flutter#171398) 2025-07-09 [email protected] Update `CHANGELOG` for 3.32.5, 3.32.6 stable hotfix releases (flutter/flutter#171891) 2025-07-09 [email protected] Add `flutter config --enable-omit-legacy-version-file` (flutter/flutter#171903) 2025-07-09 [email protected] Allow flutter attach to discover flutter engine running on Custom Device (flutter/flutter#170635) 2025-07-09 [email protected] Hide the rarely direct used `--sample` argument by default (flutter/flutter#171898) 2025-07-09 [email protected] Support `NO_COLOR` to opt-out of `flutter` tool ANSI colors (flutter/flutter#171892) 2025-07-09 [email protected] [Android 16] Added Docs to Warn Users that SystemChrome.setPreferredOrientations will Not Work (flutter/flutter#171089) 2025-07-09 [email protected] Add analytics events for wasm dry runs on web builds (flutter/flutter#171818) 2025-07-09 [email protected] feat: new builders for size experiment (flutter/flutter#171886) 2025-07-09 [email protected] Update `.gitignore`s (flutter/flutter#171907) 2025-07-09 [email protected] Add total execution time to the flutter upgrade command (flutter/flutter#171475) 2025-07-09 [email protected] Simplify the template for infrastructure requests (flutter/flutter#171905) 2025-07-09 [email protected] Add detailed error message for BorderRadiusDirectional (flutter/flutter#171805) 2025-07-09 [email protected] Add public postmortem of the 3.32.3 release. (flutter/flutter#171904) 2025-07-09 [email protected] Make `labels` field an array (flutter/flutter#171906) 2025-07-09 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Reverts "Roll Packages from cba2e90 to 4a231ae (5 revisions) (#171879)" (#171897)" (flutter/flutter#171910) 2025-07-09 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Packages from cba2e90 to 4a231ae (5 revisions) (#171879)" (flutter/flutter#171897) 2025-07-09 [email protected] [skia] Fix flag fiddling for Fuchsia, FreeType, & friends (flutter/flutter#171874) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…ice (flutter#170635) ## Summary A Custom Device's log reader doesn't do anything, and thus `flutter attach` will fail to ever find the flutter engine's VM service. This change adds a new `readLogs` command to the CustomDeviceConfig, and which allows a custom device to read the logs from the running flutter app on the actual custom device, and then allow flutter attach to work. Fixes flutter#170634 ## Testing Created a custom device, and added the following readLogs command in the `custom_devices.json` file: ``` "readLogs": [ "sshpass", "-f", "/home/dvalente/player.txt", "ssh", "[email protected]", "tail -Fn +1 /opt/log/flutter.log" ] ``` Then, running `flutter attach` works every time. **Tested the following scenarios:** * Launched `flutter attach` before app is running on device, and once app runs, flutter attach succeeds * Launched `flutter attach` after app is already running on device, and flutter attach succeeds. * Used `flutter attach` in Android Studio, and hot reload works just like any Android device.
…ice (flutter#170635) ## Summary A Custom Device's log reader doesn't do anything, and thus `flutter attach` will fail to ever find the flutter engine's VM service. This change adds a new `readLogs` command to the CustomDeviceConfig, and which allows a custom device to read the logs from the running flutter app on the actual custom device, and then allow flutter attach to work. Fixes flutter#170634 ## Testing Created a custom device, and added the following readLogs command in the `custom_devices.json` file: ``` "readLogs": [ "sshpass", "-f", "/home/dvalente/player.txt", "ssh", "[email protected]", "tail -Fn +1 /opt/log/flutter.log" ] ``` Then, running `flutter attach` works every time. **Tested the following scenarios:** * Launched `flutter attach` before app is running on device, and once app runs, flutter attach succeeds * Launched `flutter attach` after app is already running on device, and flutter attach succeeds. * Used `flutter attach` in Android Studio, and hot reload works just like any Android device.
Summary
A Custom Device's log reader doesn't do anything, and thus
flutter attachwill fail to ever find the flutter engine's VM service.This change adds a new
readLogscommand to the CustomDeviceConfig, and which allows a custom device to read the logs from the running flutter app on the actual custom device, and then allow flutter attach to work.Fixes #170634
Testing
Created a custom device, and added the following readLogs command in the
custom_devices.jsonfile:Then, running
flutter attachworks every time.Tested the following scenarios:
flutter attachbefore app is running on device, and once app runs, flutter attach succeedsflutter attachafter app is already running on device, and flutter attach succeeds.flutter attachin Android Studio, and hot reload works just like any Android device.