-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Instrument usage of include_flutter.groovy and xcode_backend.sh #34189
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
Conversation
fbd6b66 to
28cb607
Compare
|
|
||
| StreamOutput " ├─Assembling Flutter resources..." | ||
| RunCommand "${FLUTTER_ROOT}/bin/flutter" --suppress-analytics \ | ||
| RunCommand "${FLUTTER_ROOT}/bin/flutter" \ |
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.
It would be nice to avoid double logging re-entrant calls back into Flutter such as run->xcode_backend.sh->bundle.
Could we set a flag so that only the outermost invoked Flutter CLI command gets analytics and all nested calls don't?
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.
Done.
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 think we need a more nuanced solution, here, though not needed for this CL. For example it would be nice to have timing events from re-entrant calls for build steps etc.
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.
if we want screen/event/timing time breakdown, we likely want to consider something more nuanced than GA. Otherwise, non session joined nested acts double logged as siblings may not be as actionable as data.
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.
- We can pass whatever information we'd like to pass to the re-entrant calls.
- Logging behavior can be different in a re-entrant context.
We will probably need to do both of those things whether GA is the backend or something else.
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.
+1
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.
What I meant by sibling log entries is that
- Yes, we can tag reentrant flutter build bundle to say that their gradle/shell script parent caller's parent was either a flutter command or not.
- But we won't be able to answer the questions of "for all the calls to flutter run that was 30s+, how much time did flutter build bundle take in median" without a self definable schema that allows sessionization beyond what the ga_sessions_* table lets us do.
- We can repurpose custom dimensions of each top level command to bundle sub-command timing breakdowns as strings but then we're re-inventing the wheel.
In other words, whether GA is the backend or something implies pre-defined logging schema or not.
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'm sure that's all true, but I don't think we should predicate collecting data from re-entrant flutter_tool invocations on switching to a new backend. For example, if ~all bundle subcommand invocations come from re-entrant invocations, then we can't make any queries about that information because we don't have it, let alone complex queries.
xster
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
|
|
||
| StreamOutput " ├─Assembling Flutter resources..." | ||
| RunCommand "${FLUTTER_ROOT}/bin/flutter" --suppress-analytics \ | ||
| RunCommand "${FLUTTER_ROOT}/bin/flutter" \ |
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 think we need a more nuanced solution, here, though not needed for this CL. For example it would be nice to have timing events from re-entrant calls for build steps etc.
| List<String> extraGenSnapshotOptions = const <String>[], | ||
| List<String> fileSystemRoots, | ||
| String fileSystemScheme, | ||
| }) => build( |
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.
Not sure if this will help make things cleaner, but can you try making build an instance method of BundleFactory. Then I guess buildBundle would be the constructor, and you would use it like BundleFactory(...)..build(); Might help avoid repeating this long parameter list so many times.
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 renamed BundleFactory as BundleBuilder. I also merged BundleBuilder().build(..) and build(..). I thought about moving the parameters to the constructor, but that would make the initialization in build_bundle.dart a little complex. e.g. can't be done in the constructor. Also, we use a similar pattern in https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/commands/attach.dart#L276-L286 . Wdyt?
commit 92e52d5 Merge: 421e4e4 da6dde6 Author: jonahwilliams <[email protected]> Date: Wed Jun 12 14:12:36 2019 -0700 Merge branch 'master' of github.com:flutter/flutter into add_network_image_impl commit 421e4e4 Author: jonahwilliams <[email protected]> Date: Wed Jun 12 14:03:11 2019 -0700 address comments commit da6dde6 Author: engine-flutter-autoroll <[email protected]> Date: Wed Jun 12 16:49:55 2019 -0400 Roll engine ab5c14b..67aadb6 (2 commits) (flutter#34350) flutter/engine@ab5c14b...67aadb6 git log ab5c14b..67aadb6 --no-merges --oneline 67aadb6 Roll src/third_party/skia d62d406aa24c..81756e4cae95 (5 commits) (flutter/engine#9300) 0a2e28d Revert tracing changes (flutter/engine#9296) The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff ([email protected]), and stop the roller if necessary. commit 8163c0a Author: Todd Volkert <[email protected]> Date: Wed Jun 12 13:47:47 2019 -0700 Re-apply compressionState changes. (flutter#34341) This re-applies the changes that were made in flutter#33697 and flutter#33729, but which were reverted in flutter#33792 and flutter#33790, respectively due to the Dart SDK not having received the update within Google yet. The SDK has now rolled, so these changes can be re-applied. flutter#32374 flutter#33791 commit 25c8400 Author: Devon Carew <[email protected]> Date: Wed Jun 12 13:14:20 2019 -0700 Revert "update the Flutter.Frame event to use new engine APIs (flutter#34243)" (flutter#34352) This reverts commit 446179f. commit c40d701 Author: Jenn Magder <[email protected]> Date: Wed Jun 12 11:31:17 2019 -0700 Change Xcode project developmentRegion to 'en' and plist CFBundleDevelopmentRegion to DEVELOPMENT_LANGUAGE (flutter#34293) commit 446179f Author: Devon Carew <[email protected]> Date: Wed Jun 12 11:20:10 2019 -0700 update the Flutter.Frame event to use new engine APIs (flutter#34243) * update the Flutter.Frame event to use new engine APIs * add a test * update test commit 22ca3f9 Author: Zachary Anderson <[email protected]> Date: Wed Jun 12 11:18:53 2019 -0700 [flutter_tool] Don't truncate verbose logs from _flutter.listViews (flutter#34255) commit 75b5cec Author: engine-flutter-autoroll <[email protected]> Date: Wed Jun 12 14:03:56 2019 -0400 ab5c14b Set Dart version to git hash 3166bbf24b0c929eef33fd5d0f69e0f36a9009f3 (Dart 2.3.3-dev) (flutter/engine#9292) (flutter#34336) flutter/engine@d3c213e...ab5c14b git log d3c213e..ab5c14b --no-merges --oneline ab5c14b Set Dart version to git hash 3166bbf24b0c929eef33fd5d0f69e0f36a9009f3 (Dart 2.3.3-dev) (flutter/engine#9292) The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff ([email protected]), and stop the roller if necessary. commit fb2f18e Author: Todd Volkert <[email protected]> Date: Wed Jun 12 10:22:50 2019 -0700 Prepare for Uint8List SDK breaking changes (flutter#34295) dart-lang/sdk#36900 commit bdd0724 Author: engine-flutter-autoroll <[email protected]> Date: Wed Jun 12 13:03:55 2019 -0400 Roll engine b14d971..d3c213e (3 commits) (flutter#34331) flutter/engine@b14d971...d3c213e git log b14d971..d3c213e --no-merges --oneline d3c213e Roll src/third_party/skia 698fa78b3cae..d62d406aa24c (1 commits) (flutter/engine#9295) 4d7afb9 Roll src/third_party/skia ed7966f179c6..698fa78b3cae (1 commits) (flutter/engine#9294) 05e1b6e Roll src/third_party/skia d82ca0bf2c99..ed7966f179c6 (2 commits) (flutter/engine#9293) The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff ([email protected]), and stop the roller if necessary. commit fa174a1 Author: engine-flutter-autoroll <[email protected]> Date: Wed Jun 12 00:45:55 2019 -0400 Roll engine 4fc95eb..b14d971 (4 commits) (flutter#34310) flutter/engine@4fc95eb...b14d971 git log 4fc95eb..b14d971 --no-merges --oneline b14d971 Roll src/third_party/skia f39124b0764d..d82ca0bf2c99 (3 commits) (flutter/engine#9291) 87c26ae Refactor Delayed Tasks to their own file (flutter/engine#9290) 9baf589 [iOS] [a11y] Don&flutter#39;t allow scroll views to grab a11y focus (flutter/engine#9282) f80ac5f [fuchsia] Fix alignment of Fuchsia/non-Fuchsia tracing (flutter/engine#9289) The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff ([email protected]), and stop the roller if necessary. commit 70840d4 Author: engine-flutter-autoroll <[email protected]> Date: Tue Jun 11 23:41:58 2019 -0400 4fc95eb Fixed memory leaks within FlutterFragment and FlutterView (flutter#34268, flutter#34269, flutter#34270). (flutter/engine#9288) (flutter#34305) commit d6425a2 Author: engine-flutter-autoroll <[email protected]> Date: Tue Jun 11 21:54:55 2019 -0400 Roll engine 2d2cfc0..de350c4 (2 commits) (flutter#34302) flutter/engine@2d2cfc0...de350c4 git log 2d2cfc0..de350c4 --no-merges --oneline de350c4 Report timings faster (100ms) in profile/debug (flutter/engine#9287) 6dc4d6c Add refresh callback to GLFW shell (flutter/engine#9280) The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff ([email protected]), and stop the roller if necessary. commit 9a46b3e Author: engine-flutter-autoroll <[email protected]> Date: Tue Jun 11 20:17:55 2019 -0400 Roll engine 02e6a13..2d2cfc0 (3 commits) (flutter#34292) flutter/engine@02e6a13...2d2cfc0 git log 02e6a13..2d2cfc0 --no-merges --oneline 2d2cfc0 Expose a hasRenderedFirstFrame() method in FlutterView (flutter#34275). (flutter/engine#9285) 8040117 Fix TextInputPlugin NPE caused by PlatformViewsController ref in new embedding (flutter#34283). (flutter/engine#9283) c7b25f1 Roll src/third_party/skia df586b7d568d..f39124b0764d (11 commits) (flutter/engine#9284) The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff ([email protected]), and stop the roller if necessary. commit 21a5326 Author: Emmanuel Garcia <[email protected]> Date: Tue Jun 11 16:24:03 2019 -0700 Split gradle_plugin_test.dart (flutter#34282) Fixes timeout when running gradle_plugin_test commit 8247963 Author: engine-flutter-autoroll <[email protected]> Date: Tue Jun 11 18:30:55 2019 -0400 Roll engine 4d68474..02e6a13 (4 commits) (flutter#34281) flutter/engine@4d68474...02e6a13 git log 4d68474..02e6a13 --no-merges --oneline 02e6a13 Roll src/third_party/dart 7ecd81b0b8..b37aa3b036 (4 commits) (flutter/engine#9272) 95f9b3d Fix crash on minimize with GLFW shell (flutter/engine#9278) 8d017fa Roll src/third_party/skia a716809d5ad3..df586b7d568d (17 commits) (flutter/engine#9279) 10a3ab0 Fix missing return lint (flutter/engine#9246) The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff ([email protected]), and stop the roller if necessary. commit 9d724d4 Author: Jonah Williams <[email protected]> Date: Tue Jun 11 14:51:03 2019 -0700 Compatibility pass on flutter/widgets tests for JavaScript compilation. (8) (flutter#33377) commit d9c1962 Author: Emmanuel Garcia <[email protected]> Date: Tue Jun 11 14:46:00 2019 -0700 Instrument usage of include_flutter.groovy and xcode_backend.sh (flutter#34189) This is done via `flutter build bundle`. As a consequence, this PR introduces a new way to disable analytics via the `FLUTTER_SUPPRESS_ANALYTICS` env flag. commit 1eb8c64 Author: LongCatIsLooong <[email protected]> Date: Tue Jun 11 14:14:54 2019 -0700 Fix CupertinoTabScaffold index out of range (flutter#33624) commit 89d887f Author: Jason Simmons <[email protected]> Date: Tue Jun 11 13:34:24 2019 -0700 Strip debug symbols from ELF library snapshots (flutter#34250) AOT compiled code is now packaged as an ELF library for Android targets. By default gen_snapshot's output contains debug symbols. The symbols could be stripped as a separate step, but that requires NDK tools that the user may not have available. This change passes a gen_snapshot flag that omits the symbols, and it filters out a warning printed when that flag is used. commit 6d0e618 Author: engine-flutter-autoroll <[email protected]> Date: Tue Jun 11 15:55:56 2019 -0400 Roll engine de420a0..4d68474 (3 commits) (flutter#34258) flutter/engine@de420a0...4d68474 git log de420a0..4d68474 --no-merges --oneline 4d68474 Load AOT compiled Dart assets only from ELF libraries (flutter/engine#9260) 3e9ffe1 Whitelist the —enable_mirrors flag to fix regression in existing embedder. (flutter/engine#9266) 7cde42c Unbreak internal rolls (flutter/engine#9270) The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff ([email protected]), and stop the roller if necessary. commit e59d9a8 Author: Ben Konyi <[email protected]> Date: Tue Jun 11 11:37:47 2019 -0700 Reland "Added --dart-flags option to flutter run (flutter#33924)" (flutter#34181) Reland "Added --dart-flags option to flutter run (flutter#33924)" This reverts commit 587687e. commit 7cc7161 Author: Jonah Williams <[email protected]> Date: Tue Jun 11 11:22:37 2019 -0700 Compatibility pass on flutter/semantics tests for JavaScript compilation. (7) (flutter#33360) commit 1bc8402 Author: guoskyhero <[email protected]> Date: Tue Jun 11 11:15:50 2019 -0700 Add hintStyle in SearchDelegate (flutter#30388) SearchDelegate hintStyle parameter commit 336e4c4 Author: engine-flutter-autoroll <[email protected]> Date: Tue Jun 11 14:12:56 2019 -0400 Roll engine c9bbd0e..de420a0 (4 commits) (flutter#34247) flutter/engine@c9bbd0e...de420a0 git log c9bbd0e..de420a0 --no-merges --oneline de420a0 Roll src/third_party/dart 97f91fecdb..7ecd81b0b8 (5 commits) (flutter/engine#9268) 8812781 Roll src/third_party/skia bba5aa761cd5..a716809d5ad3 (1 commits) (flutter/engine#9269) b470913 Roll src/third_party/skia 77cb2ca3c9aa..bba5aa761cd5 (3 commits) (flutter/engine#9267) 48ecbca Roll src/third_party/skia bb74990a11d9..77cb2ca3c9aa (1 commits) (flutter/engine#9265) The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff ([email protected]), and stop the roller if necessary. commit 7feddfd Author: Jonah Williams <[email protected]> Date: Tue Jun 11 10:35:10 2019 -0700 make sure this test doesnt run for real (flutter#34199) commit d850d69 Author: Neevash Ramdial <[email protected]> Date: Tue Jun 11 12:57:17 2019 -0400 Added tool sample for PageController (flutter#34137) * Added tool sample for PageController * Fixed text directionality bug commit 05e92c8 Author: Jonah Williams <[email protected]> Date: Tue Jun 11 09:09:13 2019 -0700 Compatibility pass on flutter/physics tests for JavaScript compilation. (6) (flutter#33359) commit 30fb980 Author: engine-flutter-autoroll <[email protected]> Date: Tue Jun 11 11:41:47 2019 -0400 c9bbd0e Roll src/third_party/dart 7f146e431e..97f91fecdb (22 commits) (flutter#34203) commit e9ca112 Author: LongCatIsLooong <[email protected]> Date: Mon Jun 10 19:17:55 2019 -0700 update CupertinoDialogAction isDefaultAction documentation (flutter#34163) commit fcaf96d Author: engine-flutter-autoroll <[email protected]> Date: Mon Jun 10 21:35:55 2019 -0400 Roll engine f3ab2e4..4c0daac (2 commits) (flutter#34197) flutter/engine@f3ab2e4...4c0daac git log f3ab2e4..4c0daac --no-merges --oneline 4c0daac Roll src/third_party/skia cb1adb40d0f3..bb74990a11d9 (3 commits) (flutter/engine#9261) 2d0103a Removed VIRTUAL_KEYBOARD check in TextInputPlugin because it&flutter#39;s blocking Espresso work and its purpose is unknown. (flutter/engine#9238) The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff ([email protected]), and stop the roller if necessary. commit 89b1533 Author: jonahwilliams <[email protected]> Date: Mon Jun 10 16:49:44 2019 -0700 skip chunk test commit c11b61f Merge: b182271 1b3fc53 Author: jonahwilliams <[email protected]> Date: Mon Jun 10 16:49:34 2019 -0700 Merge branch 'master' of github.com:flutter/flutter into add_network_image_impl commit b182271 Author: jonahwilliams <[email protected]> Date: Mon Jun 10 16:14:06 2019 -0700 update to remove extra asset image indirection commit 96d7939 Merge: 3700e32 f530b80 Author: jonahwilliams <[email protected]> Date: Mon Jun 10 15:42:02 2019 -0700 Merge branch 'master' of github.com:flutter/flutter into add_network_image_impl commit 3700e32 Author: jonahwilliams <[email protected]> Date: Sat Jun 8 13:13:32 2019 -0700 fix foundation import commit e31b5e4 Author: jonahwilliams <[email protected]> Date: Sat Jun 8 13:09:19 2019 -0700 add web and io implemenations of network and asset image
* master: (84 commits) Compatibility pass on flutter/material tests for JavaScript compilation. (9) (flutter#33378) fix Applying decoration for a table row widget will cause render exception (flutter#34285) Add widget of the week videos (flutter#34356) Roll engine ab5c14b..67aadb6 (2 commits) (flutter#34350) Re-apply compressionState changes. (flutter#34341) Revert "update the Flutter.Frame event to use new engine APIs (flutter#34243)" (flutter#34352) Change Xcode project developmentRegion to 'en' and plist CFBundleDevelopmentRegion to DEVELOPMENT_LANGUAGE (flutter#34293) update the Flutter.Frame event to use new engine APIs (flutter#34243) [flutter_tool] Don't truncate verbose logs from _flutter.listViews (flutter#34255) ab5c14b Set Dart version to git hash 3166bbf24b0c929eef33fd5d0f69e0f36a9009f3 (Dart 2.3.3-dev) (flutter/engine#9292) (flutter#34336) Prepare for Uint8List SDK breaking changes (flutter#34295) Roll engine b14d971..d3c213e (3 commits) (flutter#34331) Roll engine 4fc95eb..b14d971 (4 commits) (flutter#34310) 4fc95eb Fixed memory leaks within FlutterFragment and FlutterView (flutter#34268, flutter#34269, flutter#34270). (flutter/engine#9288) (flutter#34305) Roll engine 2d2cfc0..de350c4 (2 commits) (flutter#34302) Roll engine 02e6a13..2d2cfc0 (3 commits) (flutter#34292) Split gradle_plugin_test.dart (flutter#34282) Roll engine 4d68474..02e6a13 (4 commits) (flutter#34281) Compatibility pass on flutter/widgets tests for JavaScript compilation. (8) (flutter#33377) Instrument usage of include_flutter.groovy and xcode_backend.sh (flutter#34189) ...
Description
Instrument usage of
include_flutter.groovyandxcode_backend.shviaflutter build bundleRelated Issues
#32649
Tests
I added the following tests:
build_bundle_test.dartChecklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]). This will ensure a smooth and quick review process.///).flutter analyze --flutter-repo) does not report any problems on my PR.Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?