Commit Graph

3915 Commits

Author SHA1 Message Date
sjindel-google
6e963b9985
Remove flaky check for analyzer message. (#36832) 2019-07-24 20:21:31 +02:00
Jiahao
4de9b4461b
Parameterize CoverageCollector with a library name predicate (#36774)
An optimization to the coverage collection speed was added in #30811. This commit further expands on it to parameterize the CoverageCollector with a custom predicate, allowing internal use cases to filter the RPC calls to the Dart VM based on scripts of interest to coverage collection.
2019-07-24 10:58:37 -07:00
Ian Hickson
e8d7306828
Some minor cleanup for flutter_tools (#36569) 2019-07-24 10:58:09 -07:00
Zachary Anderson
6fe45fb1ac
[flutter_tool] Improve Windows flutter clean error message (#36784) 2019-07-24 10:56:06 -07:00
Jonah Williams
3b4d9f6780
more resident runner verification tests (#36595) 2019-07-23 15:38:52 -07:00
Jonah Williams
694d54ccac
Place build outputs under dart tool (#36585) 2019-07-23 15:36:55 -07:00
Jonah Williams
14aa4d0a45
fix analytics reporting test (#36556) 2019-07-23 11:02:02 -07:00
Zachary Anderson
ebdc2cf73b
[flutter_tool] Add some useful commands to the README.md (#36560) 2019-07-23 09:47:06 -07:00
Emmanuel Garcia
242a4225a1
Flutter build aar (#36732)
`flutter build aar`

This new build command works just like `flutter build apk` or `flutter build appbundle`, but for plugin and module projects.

This PR also refactors how plugins are included in app or module projects. By building the plugins as AARs, the Android Gradle plugin is able to use Jetifier to translate support libraries into AndroidX libraries for all the plugin's native code. Thus, reducing the error rate when using AndroidX in apps.

This change also allows to build modules as AARs, so developers can take these artifacts and distribute them along with the native host app without the need of the Flutter tool. This is a requirement for add to app.

`flutter build aar` generates POM artifacts (XML files) which contain metadata about the native dependencies used by the plugin. This allows Gradle to resolve dependencies at the app level. The result of this new build command is a single build/outputs/repo, the local repository that contains all the generated AARs and POM files.

In a Flutter app project, this local repo is used by the Flutter Gradle plugin to resolve the plugin dependencies. In add to app case, the developer needs to configure the local repo and the dependency manually in `build.gradle`:


repositories {
    maven {
        url "<path-to-flutter-module>build/host/outputs/repo"
    }
}

dependencies {
    implementation("<package-name>:flutter_<build-mode>:1.0@aar") {
       transitive = true
    }
}
2019-07-23 09:27:42 -07:00
Emmanuel Garcia
c9b466f9e2
Revert "Add flutter build aar (#35217)" (#36731)
This reverts commit 11460b8378.
2019-07-22 22:07:59 -07:00
Emmanuel Garcia
11460b8378
Add flutter build aar (#35217)
`flutter build aar`

This new build command works just like `flutter build apk` or `flutter build appbundle`, but for plugin and module projects.

This PR also refactors how plugins are included in app or module projects. By building the plugins as AARs, the Android Gradle plugin is able to use Jetifier to translate support libraries into AndroidX libraries for all the plugin's native code. Thus, reducing the error rate when using AndroidX in apps.

This change also allows to build modules as AARs, so developers can take these artifacts and distribute them along with the native host app without the need of the Flutter tool. This is a requirement for add to app.

`flutter build aar` generates POM artifacts (XML files) which contain metadata about the native dependencies used by the plugin. This allows Gradle to resolve dependencies at the app level. The result of this new build command is a single build/outputs/repo, the local repository that contains all the generated AARs and POM files.

In a Flutter app project, this local repo is used by the Flutter Gradle plugin to resolve the plugin dependencies. In add to app case, the developer needs to configure the local repo and the dependency manually in `build.gradle`:


repositories {
    maven {
        url "<path-to-flutter-module>build/host/outputs/repo"
    }
}

dependencies {
    implementation("<package-name>:flutter_<build-mode>:1.0@aar") {
       transitive = true
    }
}
2019-07-22 20:46:01 -07:00
Jonah Williams
e5ea996a1f
disable flaky windows test (#36722) 2019-07-22 18:14:43 -07:00
Jonah Williams
3fedb8cb5a
Reland: use flutter features for web and desktop (#36699) 2019-07-22 15:34:03 -07:00
Ian Hickson
542fbd4c71
Some minor fixes to the tool_coverage tool. (#36570)
Extracted from https://github.com/flutter/flutter/pull/36205
2019-07-22 13:02:02 -07:00
Danny Tuppeny
d42d0c5171
Re-enable flutter test expression evaluation tests (#36431)
Plus:

- Resume the app being run after expression has been evaluated to prevent the test run being forcefully terminated because it didn't end
- Skip non-JSON when waiting for JSON (eg. when running in verbose mode for debugging locally)
- Pass defaultTimeout in waitForJson (otherwise the assert in _timeoutWithMessages fails when it's not provided)

Closes https://github.com/flutter/flutter/issues/26518 (the original reason for skip was fixed in https://github.com/dart-lang/sdk/issues/34224).
2019-07-22 19:43:37 +01:00
Jonah Williams
8eae2dfb92
Revert "Use FlutterFeatures to configure web and desktop devices (#36465)" (#36654)
This reverts commit bd52a78c71.
2019-07-21 21:47:43 -07:00
Jonah Williams
bd52a78c71
Use FlutterFeatures to configure web and desktop devices (#36465) 2019-07-21 18:21:15 -07:00
Jonah Williams
9bd50c5459
Ensure fx flutter attach can find devices (#36564) 2019-07-21 10:24:04 -07:00
Zachary Anderson
76cbbeb627
[flutter_tool] Send the local time to analytics with screens and events (#36545) 2019-07-19 14:54:18 -07:00
Jonah Williams
6830edd0be
Clean up flutter driver device detection. (#36434) 2019-07-19 14:48:17 -07:00
Jenn Magder
5e650af7fa
Clean up host_app_ephemeral_cocoapods Profile build settings (#36498) 2019-07-19 12:49:26 -07:00
Christopher Fujino
9bd2e4000b
Throw exception if instantiating IOSDevice on non-mac os platform (#36288) 2019-07-19 12:20:45 -07:00
Todd Volkert
7b556dcc18
Fix the web builds by reverting version bump of build_modules (#36548) 2019-07-19 09:36:36 -07:00
Dan Field
c953cd19d2
Enable bitcode compilation for AOT (#36471) 2019-07-18 22:42:47 -07:00
Todd Volkert
e6128a0c14
Fix flutter pub -v (#36513)
When we were running `pub` within `flutter pub`, we were
unconditionally including the `--verbosity=warning` argument.
Then we were conditionally including `--verbose` if we were
running in verbose mode.  However, the former argument
supersedes the latter, and we were never able to run `pub`
in verbose mode.
2019-07-18 22:22:22 -07:00
Todd Volkert
1170105eae
flutter update-packages --force-upgrade (#36510) 2019-07-18 22:21:58 -07:00
Zachary Anderson
82a4ba40bb
[flutter_tool] Send analytics command before the command runs (#36490) 2019-07-18 18:05:44 -07:00
Jonah Williams
d1190b638f
remove unrelated code (#36481) 2019-07-18 16:49:39 -07:00
Todd Volkert
adb2aeebe3
Ensure that cache dirs and files have appropriate permissions (#28090)
This is a partial re-application of #24669, which was
reverted due to Fuchsia breakages.

https://github.com/flutter/flutter/issues/24413
2019-07-18 15:29:06 -07:00
Emmanuel Garcia
5a34e7981e
Catch exceptions thrown by runChecked* when possible (#36109) 2019-07-18 10:45:37 -07:00
Jonah Williams
7b0cc5051b
release lock in flutter pub context (#36218) 2019-07-18 10:41:39 -07:00
Jonah Williams
757b5365fa
Add missing test case for Usage (#36379) 2019-07-18 10:41:13 -07:00
Jonah Williams
1957c66300
add testing to screenshot and printDetails method (#36418) 2019-07-18 10:40:40 -07:00
Jonah Williams
962a3cfd1c
Add missing protobuf dependency (#36394) 2019-07-17 15:45:13 -07:00
Christopher Fujino
42a9c031e5
Fix invocations of ideviceinstaller not passing DYLD_LIBRARY_PATH (#36327)
* add failing tests

* fix tests

* be more specific with try-catch

* add further mocking to get tests to pass again

* fix analyzer failure
2019-07-17 13:44:49 -07:00
xster
03220cacd1
Make sure add-to-app build bundle from outer xcodebuild/gradlew sends analytics (#36122) 2019-07-17 11:17:04 -07:00
Tim Sneath
07735578af
Fix spelling error and clarify universal flag (#36331) 2019-07-17 10:46:48 -07:00
Todd Volkert
57efab6e58
FakeHttpClientResponse improvements (#36289)
Update `FakeHttpClientResponse` to be impervious to Dart SDK
changes to the `HttpClientResponse` stream type (between `List<int>`
and `Uint8List`).
2019-07-17 08:42:12 -07:00
Jonah Williams
36c37ccab5
Implement feature flag system for flutter tools (#36138) 2019-07-16 17:33:28 -07:00
Todd Volkert
aa9a115181
Move reporting files to reporting/ (#36017)
Slight cleanup of file locations in flutter_tools
to make it easier to see which files are responsible
for data reporting.
2019-07-16 13:21:06 -07:00
Christopher Fujino
540c747656
Revert "Keep LLDB connection to iOS device alive while running from CLI. (#36194)" (#36293)
This reverts commit 5501a1c1e7.
2019-07-16 12:34:49 -07:00
sjindel-google
5501a1c1e7
Keep LLDB connection to iOS device alive while running from CLI. (#36194)
## Description

Instead of detaching from the spawned App process on the device immediately, keep the LLDB client connection open (in autopilot mode) until the App quits or the server connection is lost.

This replicates the behavior of Xcode, which also keeps a debugger attached to the App after launching it.

## Tests

This change will be covered by all running benchmarks (which are launched via "flutter run"/"flutter drive"), and probably be covered by all tests as well.

I also tested the workflow locally -- including cases where the App or Flutter CLI is terminated first.

## Breaking Change

I don't believe this should introduce any breaking changes. The LLDB client automatically exits when the app dies or the device is disconnected, so there shouldn't even be any user-visible changes to the behavior of the tool (besides the output of "-v").
2019-07-16 19:15:15 +02:00
Zachary Anderson
fa65ddf51d
[flutter_tool] Allow analytics without a terminal attached (#36208) 2019-07-16 09:48:49 -07:00
chunhtai
1166015931
Enable widget load assets in its own package in test (#35991) 2019-07-16 09:47:42 -07:00
Jonah Williams
b257c33b69
Use DeviceManager instead of device to determine if device supports project (#36213) 2019-07-15 16:10:39 -07:00
Jonah Williams
6b17840cbf
Don't try to flutterExit if isolate is still paused (#36199) 2019-07-15 15:44:58 -07:00
Christopher Fujino
102ab1e6d9
Reland bundle ios deps (#36093)
This updates the flutter tool cache to download binary files for ideviceinstaller, ios-deploy, libimobiledevice, and dynamically linked dependencies from Flutter's GCP bucket.
2019-07-15 09:22:29 -07:00
Jonah Williams
e3ee5c6bbb
Add better handling of JSON-RPC exception (#36082) 2019-07-13 16:02:09 -07:00
Ian Hickson
d919e694b8
Move tools tests into a general.shard directory in preparation to changing how we shard tools tests (#36108) 2019-07-13 11:51:44 -07:00
Zachary Anderson
13382f41c0
[flutter_tool] Catch a yaml parse failure during project creation (#36105) 2019-07-12 23:24:04 -07:00
Jonah Williams
7056214151
Handle google3 version of pb (#36084) 2019-07-12 13:45:26 -07:00
Jonah Williams
0a97553e5e
Revert "Merge branches 'master' and 'master' of github.com:flutter/flutter into timsneath-precache2" (#36096) 2019-07-12 13:42:32 -07:00
Tim Sneath
67ab890b60 Merge branches 'master' and 'master' of github.com:flutter/flutter into timsneath-precache2 2019-07-12 12:59:08 -07:00
Tim Sneath
7349970462 Update comments to match precache help 2019-07-12 12:59:01 -07:00
Tim Sneath
b322fdd518 Update precache help 2019-07-12 12:57:28 -07:00
Christopher Fujino
e91822da24
Revert "Bundle ios dependencies (#34669)" (#36071)
This reverts commit 14d489adc5.
2019-07-12 09:03:34 -07:00
Jonah Williams
7b150f81c5
move reload and restart handling into terminal (#35846) 2019-07-12 08:48:14 -07:00
Christopher Fujino
14d489adc5
Bundle ios dependencies (#34669)
This updates the flutter tool to cache binary files for ideviceinstaller, ios-deploy, libimobiledevice, and dynamically linked dependencies from Flutter's GCP bucket.
2019-07-12 08:36:18 -07:00
Anoop B
90326b6184 [ImgBot] Optimize images (#35971) 2019-07-11 21:16:48 -07:00
Jonah Williams
e91b98a41f
Add initial implementation of flutter assemble (#32816) 2019-07-11 16:53:17 -07:00
Ben Konyi
8d81c30a7c [WIP] Use public _registerService RPC 2019-07-11 16:01:07 -07:00
Jonah Williams
ae8ff41abf
Revert "Keep LLDB connection to iOS device alive while running from CLI. (#35731)" (#35996)
This reverts commit d200dc150b.
2019-07-11 10:44:41 -07:00
sjindel-google
d200dc150b
Keep LLDB connection to iOS device alive while running from CLI. (#35731) 2019-07-11 18:56:48 +02:00
Ian Hickson
176ebfd53e
flutter/tests support (#33140)
This introduces a script that implements the conventions described in https://github.com/flutter/tests/pull/1.
2019-07-10 12:10:28 -07:00
Jenn Magder
ec2c3f2116
Disable CocoaPods input and output paths in Xcode build phase for ephemeral add2app (#35833) 2019-07-10 10:40:15 -07:00
Jonah Williams
2b20345bb8
use pub run for create test and remove [INFO] logs (#35839) 2019-07-10 08:48:01 -07:00
Jonah Williams
adf45d1e40
Refactor signal and command line handler from resident runner (#35406) 2019-07-09 13:10:26 -07:00
chunhtai
a76e39f984
Rendering errors with root causes in the widget layer should have a reference to the widget (#32511) 2019-07-09 10:18:30 -07:00
Alexandre Ardhuin
b041a589c8
enable lint prefer_if_null_operators (#35745) 2019-07-09 10:53:35 +02:00
Jenn Magder
559c9982dd
UIApplicationLaunchOptionsKey -> UIApplication.LaunchOptionsKey (#35763) 2019-07-08 16:55:27 -07:00
Dan Field
e3acb5ca71
Refactor keymapping for resident_runner (#35762) 2019-07-08 16:38:49 -07:00
Jenn Magder
f3150ed0b5
Remove Swift Obj-C Inference build setting (#35756) 2019-07-08 16:04:16 -07:00
Jonah Williams
1e26c41f17
Remove web, fuchsia, and unsupported devices from all (#35709) 2019-07-08 15:58:38 -07:00
Jonah Williams
bcd28e7e45
Don't pause on tool tests (#35657) 2019-07-08 13:14:48 -07:00
Lau Ching Jun
d3eee57c0b
Update the help message on precache command for less confusion (#35480) 2019-07-08 11:04:24 -07:00
Karen Rustad Tölva
9155795883 Fix typo in main.dart templates (#35684) 2019-07-08 10:36:44 -07:00
Jonah Williams
4f0f88b5ea
Disable incremental compiler in dartdevc (#35681) 2019-07-08 10:36:11 -07:00
Jonah Williams
34467289d6
Add timer checking and Fake http client to testbed (#35392) 2019-07-08 10:04:48 -07:00
Jonah Williams
e6a7419603
disable a test case in xcode_backend.sh (#35708) 2019-07-08 08:04:48 -07:00
Todd Volkert
3bf91b5436
Prepare for Socket implements Stream<Uint8List> (#35646)
An upcoming change in the Dart SDK changes `Socket` from
implementing `Stream<List<int>>` to implementing `Stream<Uint8List>`.
This forwards-compatible change in flutter_tools prepares for that
Dart SDK change.

https://github.com/dart-lang/sdk/issues/36900
2019-07-05 12:59:32 -07:00
Jonah Williams
93edc014ae
update packages (#35573) 2019-07-04 11:26:19 -07:00
Sam Rawlins
5b6ebf1230 Add type to StreamChannel in generated test code. (#35367)
This is necessary for those who wish to comply with static analysis like
`strict-raw-types: true`, which includes generated code within their package.
2019-07-03 14:11:11 -07:00
Jonah Williams
b8597f0a7e
Move usage flutter create tests into memory filesystem. (#35160) 2019-07-03 10:49:33 -07:00
Todd Volkert
4cd12fc8b7
Mark update-packages as non-experimental (#35467)
Marking it as experimental was breaking tests and packaging
scripts on stable branches.
2019-07-02 18:24:25 -07:00
Jonah Williams
556e374e02
fix default artifacts to exclude ios and android (#35303) 2019-07-02 17:40:55 -07:00
Siva
f496595773
Use the new service protocol message names (#35482)
* Use the new service protocol message names
  clearVMTimeline
  setVMTimelineFlags
  getVMTimeline
  getVMTimelineFlags

* Fix clearTimeline at another spot.
2019-07-02 16:10:04 -07:00
Alexandre Ardhuin
758009ba70
more ui-as-code (#35393)
* more ui-as-code

* address review comments
2019-07-02 21:11:56 +02:00
stuartmorgan
d6bd1c0584
Add --target support for Windows and Linux (#34660)
- Adds desktop projects to ApplicationPackageStore
- Plumbs target overrides through the desktop builds
2019-07-01 14:49:34 -07:00
Jenn Magder
95a1816698
Clean up host_app_ephemeral Profile build settings (#35307) 2019-07-01 11:02:25 -07:00
Zachary Anderson
97127730f2
[flutter_tool] Fill in Fuchsia version string (#34516) 2019-06-28 12:12:53 -07:00
David Shuckerow
df6e4d4872
Make it possible to override the FLUTTER_TEST env variable (#34301)
* Make it possible to override the FLUTTER_TEST env variable without unsetting it.

* Switch to using platform instead of Platform.

* Document the bindings, and introduce tests that initialize multiple WidgetsBindings with different environments.

* Add tests for the flutter platform test.

* Add license headers

* Fix lints

* Remove trailing whitespace

* Respond to Jonahs comments

* Respond to Ians comments

* Mock out the HttpServer in flutter_platform_test

* Mock out the HttpServer in flutter_platform_test

* Explain why we mock out the HttpServer in flutter_platform_test
2019-06-28 10:37:27 -07:00
Jonah Williams
a1d3edc446
Twiggle bit to exclude dev and beta from desktop and web (#35221) 2019-06-27 19:04:02 -07:00
Jonah Williams
3d77923b39
fix coverage collection to un-red build (#35231) 2019-06-27 17:47:20 -07:00
Todd Volkert
04e2f22650
Force-upgrade package deps (#35206) 2019-06-27 14:02:23 -07:00
Jonah Williams
c9b283386b
ensure test isolate is paused before collecting coverage (#35188) 2019-06-27 13:50:47 -07:00
Alexandre Ardhuin
919dcf53f3
enable lints prefer_spread_collections and prefer_inlined_adds (#35189) 2019-06-27 21:23:16 +02:00
Jonah Williams
a0b2878e76
Make tool coverage collection resilient to sentinel coverage data (#35186) 2019-06-27 11:17:58 -07:00
Jonah Williams
8532f4d08e
Allow multi-root web builds (#34896)
* fix multiroot builds

* remove shout

* add basic test

* Update web_compilation_delegate.dart

* Address review feedback

* Update multiroot_asset_reader_test.dart

* Update multiroot_asset_reader_test.dart

* remove unpassable test

* fix for windows

* facepalm
2019-06-27 06:01:41 -07:00
Todd Volkert
883d6eadcb
More HttpClientResponse implements Stream<Uint8List> fixes (#35149)
https://github.com/dart-lang/sdk/issues/36900
2019-06-26 16:56:10 -07:00
Jonah Williams
33ad5bac34
Attempt to enable tool coverage redux (#35074) 2019-06-26 16:02:49 -07:00