Commit Graph

2632 Commits

Author SHA1 Message Date
Jonah Williams
a871d59164
Apply basic log filtering and formatting to fuchsia logs. (#24143) 2018-11-10 17:02:32 -08:00
Jonah Williams
26a6fd92d8
do not compute dart deps for fuchsia_entrypoint (#24134) 2018-11-09 15:41:13 -08:00
Jonah Williams
c11633e84e
Separate hot reload and hot restart capabilities. (#24122) 2018-11-09 10:33:22 -08:00
Jonah Williams
ae2b215efe
make sure we dont use test (#24146) 2018-11-09 00:40:29 -08:00
Ian Hickson
6bfd9bb996 Fix a race condition in vmservice_test.dart (#23835)
Fixes https://github.com/flutter/flutter/issues/19273
2018-11-08 20:54:06 -08:00
Jonah Williams
d04fa1a670
only pass packages once (#24074) 2018-11-07 21:57:00 -08:00
Ian Hickson
f9374fe071
Update the URL to the recommend bug report (#23708)
We have templates now.
2018-11-07 17:12:35 -08:00
jslavitz
5dac7a2347
Removes check for Homebrew if all necessary packages are present. (#23844)
* Removes need for homebrew installation if all other packages are installed. Modifies test to work with this new functionality.
2018-11-07 15:21:05 -08:00
Ryan Macnak
d92d175bcb Opt into deterministic snapshots.
Also, remove old flags.
2018-11-07 14:44:20 -08:00
jslavitz
50fb729609
Includes frameworkVersion in JSON version output (#23891)
* Include framework version in JSON output and adds test
2018-11-07 12:28:22 -08:00
Jonah Williams
6c88b2e9fb
restore compileExpressionService (#24063) 2018-11-07 12:04:05 -08:00
jslavitz
34fa90b062
Improves SDK Search Error Messages (#23884)
* Improves error message and adds test.
2018-11-06 15:13:35 -08:00
Jonah Williams
81c7af342d
Add fuchsia specific entrypoint (#23916) 2018-11-06 14:36:35 -08:00
Jonah Williams
a43e3a4a2f
Retry remove package:test from flutter (#24007) 2018-11-06 10:48:34 -08:00
Jonah Williams
23a7535a39
Revert "Remove package:test dependency from flutter_test (#23755)" (#24004)
This reverts commit 71e9bd6f25.
2018-11-06 09:12:48 -08:00
Jonah Williams
71e9bd6f25
Remove package:test dependency from flutter_test (#23755) 2018-11-06 08:39:27 -08:00
Jonah Williams
9b66fea2ea
Follow up to https://github.com/flutter/flutter/pull/23436 (#23876) 2018-11-06 08:37:53 -08:00
Todd Volkert
07d1ba87e0
Update doctor instructions for libimobiledevice installation (#23946)
https://github.com/flutter/flutter/issues/22595
2018-11-05 15:10:13 -08:00
mattijsf
54becbf3bf Ignore unreachable iOS devices in IOSDevice.getAttachedDevices (#23776) 2018-11-05 15:09:39 -08:00
Alexandre Ardhuin
344ebe02ff
avoid returning null for Future (#23784) 2018-11-05 16:38:23 +01:00
Alexander Aprelev
34bc1e3c8c
Fix hanging of flutter run when running on more than one simulator. (#23932)
This stops reading from pipe-to-file log after the build is completed. Attempting to read from pipe-to-file keeps open blocked because nobody is going to write into that pipe.
2018-11-05 07:29:37 -08:00
Danny Tuppeny
8e7c8048de
Don't search in %LocalAppData% if it's not set (#23933)
It's not usual for this not to be set, but it affected at least one user (#23909) and there are a non-zero number of people online saying it's not set. It's better that we don't crash.

Fixes #23909.
2018-11-05 08:57:49 +00:00
Jonah Williams
d52f315c35
Add new benchmark to track cost of dependencies to a User (#23856) 2018-11-02 13:38:54 -07:00
Jonah Williams
d80999d6b8
Support attach on fuchsia devices (#23436) 2018-11-01 20:04:52 -07:00
Alexander Aprelev
47f62109d2
Specify UDID for idevicelistener. (#23854)
This is needed to run flutter app on multiple iOS devices at a time.
2018-11-01 20:04:42 -07:00
Dan Field
fd6b2e198c
Re-reland Xcode backend refactor (#23762)
* Use Xcode build configurations to drive Flutter build mode

* Proper check wrt local_engine, print error if profile mode misisng

* Remove unused code, update tests, fix template problem, update warning

* fix up warning

* add explanatory dev comment

* fix whitespace

* missing words, change lambda arrow to function body

* error indentation

* Test early exits for xcode_backend.sh

* only on macOS, use right test

* Update error messages

* case insensitive compare for build config

* Update gallery podfile

* update projects to add profile configuration

* make compatible with flavors

* add missing plist files

* add FLUTTER_FRAMEWORK_DIR back, set swift version for profile, tell Podfile about profile
2018-10-31 16:37:53 -07:00
Greg Spencer
1b9cba4b42
Make sure we refer to 'stable', and not 'release' branch. (#23745) 2018-10-30 16:57:54 -07:00
Greg Spencer
f9c6f30576
Allow users to create samples using flutter create. (#23584)
This adds flutter create --sample which allows users to execute a command which will create a working sample app from samples embedded in the API docs.

The command looks something like this:

flutter create --sample=chip.DeletableChipAttributes.onDeleted mysample
2018-10-30 16:01:14 -07:00
Greg Spencer
4559ae1a6b
Stop wrapping adb, gradle and ios logger output, and update terminal wrapping column dynamically. (#23592)
Subcommand output (gradle, adb, etc) is no longer wrapped, and wrapping notices when the terminal column width changes dynamically now.

Fixes #23267.
Fixes #23266.
2018-10-30 16:00:50 -07:00
Dan Field
7217999a9a
Revert "Reland Xcode backend refactor" (#23737)
* Revert "Update templates (#23698)"

This reverts commit 5b0de6d679.

* Revert "Verify that date/number translations exist for all supported languages (#23692)"

This reverts commit 3449edf256.

* Revert "Reland Xcode backend refactor (#23574)"

This reverts commit 7270f2845d.
2018-10-30 09:36:31 -07:00
Dan Field
7270f2845d
Reland Xcode backend refactor (#23574)
* Use Xcode build configurations to drive Flutter build mode

* Proper check wrt local_engine, print error if profile mode misisng

* Remove unused code, update tests, fix template problem, update warning

* fix up warning

* add explanatory dev comment

* fix whitespace

* missing words, change lambda arrow to function body

* error indentation

* Test early exits for xcode_backend.sh

* only on macOS, use right test

* Update error messages

* case insensitive compare for build config

* Update gallery podfile

* update projects to add profile configuration

* make compatible with flavors

* add missing plist files
2018-10-30 07:23:19 -07:00
Alexander Aprelev
5fc6b87174
Reland change that speeds up multiple devices hot-reload (#23695)
* Revert "Revert "Run reload asynchronously so that multiple devices can reload in parallel. (#22693)" (#23598)"

This reverts commit 0b68068d6a.

* Fix refreshViews so it sends app-wide(rather than per-isolate) service request.

Sending per-isolate request caused dead-lock in the engine in case of more-than-one ui isolate.
2018-10-29 18:51:57 -07:00
Ben Konyi
b1a23299e1
Added '--check-for-remote-artifacts' option for Flutter Doctor. (#23543)
* Added '--check-for-remote-artifacts' option for Flutter Doctor.

This option takes a Flutter engine revision and issues HEAD requests to
determine whether or not artifacts for the provided engine revision are
available from cloud storage. This functionality is needed for the Dart
SDK autoroller to avoid creating a PR to roll the engine into the
framework while artifacts haven't finished building, which would cause
Cirrus tests to fail.
2018-10-29 17:03:22 -07:00
Ian Hickson
5b4a5da78e
Revert "[O] Fix a race condition in vmservice_test.dart" (#23647)
* Revert "[H] Created a variant of InheritedWidget specifically for Listenables (#23393)"

This reverts commit 931328596a.

* Revert "Fix a race condition in vmservice_test.dart (#23529)"

This reverts commit 5e7b0a366b.
2018-10-28 13:43:15 -07:00
Ian Hickson
5e7b0a366b
Fix a race condition in vmservice_test.dart (#23529)
Fixes https://github.com/flutter/flutter/issues/19273
2018-10-27 16:50:53 -07:00
Alexander Aprelev
0b68068d6a
Revert "Run reload asynchronously so that multiple devices can reload in parallel. (#22693)" (#23598)
This reverts commit 709f54f4bb as it seems to have broken two tests: flutter_gallery__back_button_memory, named_isolates_test.
2018-10-26 18:56:49 -07:00
Greg Spencer
dc2cc6375c
Simplify the version string for customer consumption. (#23578)
Fixes #21825
2018-10-26 13:21:36 -07:00
Alexander Aprelev
709f54f4bb
Run reload asynchronously so that multiple devices can reload in parallel. (#22693)
* Run reload asynchronously so that multiple devices can reload in parallel.
2018-10-26 10:32:25 -07:00
Alexander Aprelev
558ee42b2e
Register expression compiler in flutter test setting. (#23511)
* Register expression compiler in flutter test setting so that debugger expression evaluation is functional there.

* Fix analyzer lints
2018-10-26 08:04:58 -07:00
Dan Field
628e8ec0b9
Revert "Xcode backend refactor (#23387)" (#23528)
This reverts commit def1d80566.
2018-10-25 13:25:09 -07:00
Dan Field
def1d80566
Xcode backend refactor (#23387)
* Use Xcode build configurations to drive Flutter build mode
2018-10-25 11:29:31 -07:00
Jason Simmons
549e8e07c6
Support launching flutter_tools from a package URI (#23476) 2018-10-24 14:41:16 -07:00
Danny Tuppeny
aa83f77a49
Fix --pid-file not working for --machine + add to attach command (#23242)
* Fix --pid-file not working for --machine + add to attach

Fixes #23201.

* Add tests for --pid-file in run+attach
2018-10-24 07:21:36 +01:00
Jonah Williams
b21d0de0d6
Revert "Add explicit completed status trace to hot reload and restart commands" (#23445)
* Revert "Remove duplicate code comment in flutter_gallery (#23422)"

This reverts commit 8039620bb4.

* Revert "Add explicit completed status trace to hot reload and restart commands (#23338)"

This reverts commit 245ef023b2.
2018-10-23 19:02:42 -07:00
Jonah Williams
245ef023b2
Add explicit completed status trace to hot reload and restart commands (#23338) 2018-10-23 18:12:34 -07:00
Jacob Richman
f5f70f0c99
Include .track in file names for cached dill files for builds with --track-widget-creation (#23299)
Ensure that cached dill files for builds with --track-widget-creation
always have .track. in the file name to avoid mixing transformed and
untransformed kernel files.
2018-10-23 10:09:18 -07:00
Michael Goderbauer
dc36195cb3
Reland "Remove all service extensions from release mode (#23038)" (#23291) 2018-10-23 03:53:29 +02:00
Jason Simmons
a6a1607888
Roll engine to 4c79e423dc6f89f98d8ceb263a5ca78e2f2da996 (#23384)
Also includes
  * Updates to affected tests
  * Change flutter_tools to pass package URIs to the Dart front end
    instead of filesystem paths
2018-10-22 18:03:50 -07:00
Jonah Williams
b7c9c96c6b
Support for fuchsia device discovery, workflow, and sdk wrapper (#23282) 2018-10-22 16:48:17 -07:00
Stanislav Baranov
323d1574c6
newly created apps / plugins should use latest gradle dependencies (#22790) (#23314) 2018-10-19 19:07:06 -07:00
Devon Carew
48fe65c236
allow todos in user code to show in IDEs (#23303) 2018-10-19 14:10:54 -07:00
Greg Spencer
2000583ed3
Revert "don't disable TODO issues in IDEs (#23274)" (#23297)
Devon asked me to revert commit c4d1b31b74.

Merging on red to fix the build.
2018-10-19 10:03:35 -07:00
Devon Carew
c4d1b31b74
don't disable TODO issues in IDEs (#23274)
* don't disable TODO issues in IDEs

* minor change to start cirrus
2018-10-19 08:01:05 -07:00
Siva
cf18d01e86
Disable unsafePackageSerialization as it causes issues when coverage is turned on (#23280)
* Disable unsafePackageSerialization as it causes issues when coverage is
used (see https://github.com/dart-lang/sdk/issues/34841)

* Restore Coverage.
2018-10-19 06:19:24 -07:00
Michael Goderbauer
bb0290a4dc
Revert "Remove all service extensions from release mode (#23038)" (#23290)
This reverts commit 8e2ca93f52.

Fixes https://github.com/flutter/flutter/issues/23172
2018-10-19 11:48:15 +02:00
Alexander Aprelev
be0dde4114
Remove optimization that was trying to bypass build process for iOS sim. (#23268)
This optimization resulted in app still running with old kernel file.
Fixes another source of https://github.com/flutter/flutter/issues/16604
2018-10-18 20:45:48 -07:00
Yegor
82d6589590
Revert "newly created apps / plugins should use latest gradle dependencies (#22790)" (#23263)
This reverts commit 751c083f7d.

Our buildbots need to be upgraded to a newer version of the Android SDK.
2018-10-18 14:17:47 -07:00
Sebastian Roth
751c083f7d newly created apps / plugins should use latest gradle dependencies (#22790) 2018-10-18 12:56:18 -07:00
Greg Spencer
36983508ad
Update wrapping message (#23104)
Updating the --wrap-column help message to reflect reality.
2018-10-18 10:56:52 -07:00
Yegor
3fbd140e77
Use new mixin syntax for super-mixins (#22870)
This re-lands 3c56e6c on top of a new Dart SDK that contains new mixin syntax fixes.
2018-10-17 13:10:05 -07:00
Sebastian Roth
b95b67a66b allow command line option "--project-name" in flutter create (#22022)
Simple convenience function if users create flutter projects in custom folder structures and but want to specify a custom project name.
2018-10-17 08:25:46 -07:00
Michael Klimushyn
4f8acd8462
Set FlutterDevice.viewFilter by CLI flag (#23026)
`FlutterDevice.views` is limited by a filter. Pipe this filter up as an
option for the commands that instantiate `FlutterDevice`s. This is the
first change necessary for the CLI tooling to target specific isolates
(#22009).

More work needs to be done after this patch.
* Isolate names are dynamically generated and change every restart.
* This just filters views, not background isolates (`VMService.isolates`).
2018-10-17 08:07:49 -07:00
Jacob Richman
f86bdf1aa2
Fix bug where gradle build rule would rerun on switching from (#23183)
--track-widget-creation=false to
--track-widget-creation=true
but not when switching from
--track-widget-creation=true
to
--track-widget-creation=false

due to the surprising behavior of Gradle @Optional inputs.
2018-10-17 07:39:20 -07:00
Alexandre Ardhuin
8b0de38ef8
fix upcoming lint avoid_returning_null_for_void (#23190) 2018-10-17 11:01:37 +02:00
Jonah Williams
c9ca7c4936
Add override frontend_server snapshot for fuchsia_reload command (#23162) 2018-10-16 14:27:22 -07:00
Alexandre Ardhuin
0fb84e96c7
Prefer void to null (#22977)
* Future<void> main

* Future<void>.delayed

* prefer_void_to_Null

* address review comments
2018-10-16 22:03:06 +02:00
Mehmet Fidanboylu
16f7d4016e
Remove unneeded flutter-assets-dir flag for the tester (#23125) 2018-10-15 20:12:14 -07:00
Michael Goderbauer
8e2ca93f52
Remove all service extensions from release mode (#23038)
Service extensions can only be activated in debug or profile mode, their code should never be included in release mode. This PR adds guards around all service extension registration calls that enable Dart's tree shaker to remove the extension's code in release mode, which reduces our binary size:

Android Snapshot (uncompressed): minus 127,384 Bytes (-124.40KB)
APK (compressed): minus 38,136 Bytes (-37.24KB)
iOS Snapshot (App.framework, uncompressed): 264,304 Bytes(-258.10KB)

For details: https://docs.google.com/document/d/13JlgvliCn5sWwT2K2SfDwD1NhEfxpJH9DCf22gZZru8/edit

**Benchmark Regressions:** This PR may cause benchmarks to regress because it may change the timing of GC. If you notice a benchmark regression **please note down the exact set of benchmarks that regressed on this PR** and then feel free to revert. I will follow-up with a PR that forces a GC before the effected benchmarks run to get a clean baseline before re-applying this PR.
2018-10-12 21:07:55 -07:00
Alexander Aprelev
e274ed866a [dart] Roll engine to dart roll 2018-10-10 20:45:22 -07:00
Greg Spencer
081d2a7a86
Re-land text wrapping/color PR (#22831)
This attempts to re-land #22656.

There are two changes from the original:

I turned off wrapping completely when not sending output to a terminal. Previously I had defaulted to wrapping at and arbitrary 100 chars in that case, just to keep long messages from being too long, but that turns out the be a bad idea because there are tests that are relying on the specific form of the output. It's also pretty arbitrary, and mostly people sending output to a non-terminal will want unwrapped text.

I found a better way to terminate ANSI color/bold sequences, so that they can be embedded within each other without needed quite as complex a dance with removing redundant sequences.

As part of these changes, I removed the Logger.supportsColor setter so that the one source of truth for color support is in AnsiTerminal.supportsColor.

*     Turn on line wrapping again in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)

    This turns on text wrapping for usage messages and status messages. When on a terminal, wraps to the width of the terminal. When writing to a non-terminal, wrap lines at a default column width (currently defined to be 100 chars). If --no-wrap is specified, then no wrapping occurs. If --wrap-column is specified, wraps to that column (if --wrap is on).

    Adds ANSI color to the doctor and analysis output on terminals. This is in this PR with the wrapping, since wrapping needs to know how to count visible characters in the presence of ANSI sequences. (This is just one more step towards re-implementing all of Curses for Flutter. :-)) Will not print ANSI sequences when sent to a non-terminal, or of --no-color is specified.

    Fixes ANSI color and bold sequences so that they can be combined (bold, colored text), and a small bug in indentation calculation for wrapping.

    Since wrapping is now turned on, also removed many redundant '\n's in the code.
2018-10-10 18:17:56 -07:00
Greg Spencer
0ff9e8a928
Rename 'application' back to 'module', and make 'app' the default again for templates. (#22888)
We decided that redefining the default for templates was premature. We're going to go back to having "module" in experimental land again, and we'll try again when we have the feature set fully baked.

This keeps the writing of the .metadata files, and writing the template type to them, because that was a good improvement, and there are still a bunch of added tests that improve our coverage.
2018-10-10 11:01:40 -07:00
Danny Tuppeny
a02f9d501b
Allow passing a restart reason through to analytics (#21983)
* Allow passing a restart reason through to analytics

* Update to avoid overlaps with other code

* Remove TODO as this is the real live value

* Improve formatting + constant name
2018-10-10 10:23:32 +01:00
Jorge Coca
422e56c29c Added support for Gradle productFlavors that are not only lowercase (#22767)
Fixes https://github.com/flutter/flutter/issues/19507
2018-10-09 20:04:29 -07:00
Greg Spencer
485ed2f655
Fix DevFS to understand missing files in _stat() (#22844)
Fixes #22451
2018-10-09 14:33:47 -07:00
Stanislav Baranov
570ae840f2
Remove unused deps and flags from flutter tool. (#22571) 2018-10-09 13:04:06 -07:00
Greg Spencer
c81f4c71a2
Have runAsyncChecked throw a ProcessException instead of a String. (#22710) 2018-10-08 19:11:31 -07:00
matthew-carroll
4f298e6776
Publish make-host-app-editable command with CLI docs. (#22635)
Publish make-host-app-editable command with CLI docs.
2018-10-08 16:02:13 -07:00
Greg Spencer
e0b182e61a
Fix gradle error in devicelab tests (#22814)
Fixes a gradle error where it was failing to find a plugin because of an absolute path in the .flutter-plugins file instead of a relative path.

I had originally removed this variable because I thought it was redundant with the projectDir, but apparently I was wrong about that (one resolves to a relative path, and one resolves to an absolute path).

This PR reverts that part of the change and reintroduces the (not really) redundant variable.
2018-10-08 09:38:37 -07:00
Greg Spencer
2d81adf74c
Revert "Turn on line wrapping in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)" (#22759)
This reverts commit e438632165
because it breaks 160 benchmarks, and several devicelab tests,
due to changing the format of the output.
2018-10-05 22:29:37 -07:00
Greg Spencer
e438632165
Turn on line wrapping in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)
This turns on text wrapping for usage messages and status messages. When on a terminal, wraps to the width of the terminal. When writing to a non-terminal, wrap lines at a default column width (currently defined to be 100 chars). If --no-wrap is specified, then no wrapping occurs. If --wrap-column is specified, wraps to that column (if --wrap is on).

Adds ANSI color to the doctor and analysis output on terminals. This is in this PR with the wrapping, since wrapping needs to know how to count visible characters in the presence of ANSI sequences. (This is just one more step towards re-implementing all of Curses for Flutter. :-)) Will not print ANSI sequences when sent to a non-terminal, or of --no-color is specified.

Fixes ANSI color and bold sequences so that they can be combined (bold, colored text), and a small bug in indentation calculation for wrapping.

Since wrapping is now turned on, also removed many redundant '\n's in the code.
2018-10-05 20:00:11 -07:00
Greg Spencer
21a32fdd0c
Fixes the project detection logic when creating new projects over existing directories. (#22744)
This all happened because I was trying to be a little too helpful...

Part of the job of the "create" command is to recreate missing pieces of existing projects, and now that the default has changed, I wanted to make it so that if someone had created a default flutter create project before, that they could run a default flutter create there again, and not have it trashed by using the new default template (application) over the old one (app).

This meant I had to detect what type of project it was. Unfortunately, in the past we didn't write anything in the .metadata file to identify the type of project, and since the goal was regenerating missing files, I can't count on anything existing, so it's just a heuristic match.

This simplifies the heuristics down to just detecting the difference between "app" and "application" projects, and only detect the other types if they're explicitly listed in the .metadata file (I changed the code in my original PR to add the project type to the .metadata file). People used to have to specify the type for those anyhow, so it shouldn't be a surprise to users.

So, the main difference in the new heuristics from my last attempt is that if you have a directory that has some other stuff it (like maybe a "plugin" project), then we'll recreate (pronounced "mess up") the project using the "application" template, but that was true before (except it would use the "app" template).

Fixes #22726
2018-10-05 15:49:53 -07:00
Yegor
3184b7cb66
Revert "Use mixin syntax for Flutter's super-mixins (#22435)" (#22748)
This reverts commit 3c56e6c77d.

It breaks the AOT build.
2018-10-05 15:09:38 -07:00
Yegor
3c56e6c77d
Use mixin syntax for Flutter's super-mixins (#22435)
* first pass

* revert WidgetsBindingObserver

* disable prefer_mixin

* docs and more mixins

* newer engine; binding fixes

* upgrade dependencies

* fix test binding

* remove whitespace

* remove the obsolete `enableSuperMixins: true`

* upgrade dartdoc to 0.22.0

* temporarily use git version of dartdoc

* fix pub global activate syntax

* use dartdoc 0.23.0
2018-10-05 14:54:41 -07:00
Jason Simmons
9588946365
Do not continue a hot restart if _restartFromSources fails (#22645) 2018-10-05 13:48:41 -07:00
Danny Tuppeny
3ea4b44374
Increase timeout waiting for app to start (#22504)
https://github.com/flutter/flutter/issues/22338#issuecomment-425794734 shows almost 1 minute being spent on the `Resolving Dependencies` step alone. Possibly this needs to go higher still, but this should be a good start.
2018-10-05 17:02:08 +01:00
tonyzhao1
b04447d51c Split Android license checks into their own subvalidator (#22446) 2018-10-05 08:45:16 -07:00
Alexandre Ardhuin
2d3ff10d62
apply lint prefer_void_to_null in packages/flutter_tools (#22686) 2018-10-05 07:54:56 +02:00
Greg Spencer
40a7a9cfc3
Fixes a common crash in getAdbDevices when adb executable isn't found. (#22676)
Apparently, this accounts for 13% of our crashes in Beta.
2018-10-04 15:57:15 -07:00
Greg Spencer
9f23866a0a
Rename module --> application in flutter create command. (#22565)
This renames the "module" template to the "application" template, and makes "application" the default. The existing "app" template is now deprecated.

flutter create also now recognizes the type of project in an existing directory, and is able to recreate it without having the template type explicitly specified (although you can still do that). It does this now by first looking in the .metadata file for the new project_type field, and if it doesn't find that, then it looks at the directory structure. Also, the .metadata file is now overwritten even on an existing directory so that 1) the project_type can be added to legacy projects, and 2) the version of Flutter that updated the project last is updated.

I also cleaned up a bunch of things in create_test.dart, added many more tests, and added an example test to the test/ directory in the generated output of the application template.

Fixes #22530
Fixes #22344
2018-10-04 13:03:20 -07:00
Jason Simmons
e031613a2a
Use "gradle tasks --all" to query build variants (#21761)
Previously flutter_tools had used "gradle properties" to find the build types
and flavors supported by the Gradle project.  Tasks should work more reliably
across different versions of the Android Gradle plugin.

Fixes https://github.com/flutter/flutter/issues/20781
2018-10-04 10:06:31 -07:00
Alexandre Ardhuin
2ea1d81cdc
sort_constructors_first (#22575) 2018-10-04 07:28:07 +02:00
Danny Tuppeny
d89604d85c
Change file paths to URIs to fix "Could not run configuration in engine" on Windows (#22507)
* Change file paths to URIs to fix "Could not run configuration in engine" on Windows

Plus unskip test that was failing due to this.

Fixes #21348.

* Remove unused import
2018-10-02 18:31:55 +01:00
Alexandre Ardhuin
5de96bb734
unnecessary this in field initializers (#22522) 2018-10-02 17:14:59 +02:00
jensjoha
4bd6ad7395
Use unsafePackageSerialization when running tests (#22407) 2018-10-02 08:36:21 +02:00
Jason Simmons
3581b3ae85
Make font manifest descriptors consistent with the paths used for font assets (#22375)
The asset subsystem uses URIs to represent asset locations.  The font manifest
should also use URI-encoded paths instead of unencoded paths taken directly
from the manifest YAML.

Fixes https://github.com/flutter/flutter/issues/19452
2018-10-01 14:14:48 -07:00
Alexandre Ardhuin
f62afdcf57
add missing type parameter on methods (#22096) 2018-10-01 21:29:08 +02:00
Jonah Williams
224f91e386
Revert "Eliminate snapshot, depfile opts from bundle cmd (#22495)" (#22519)
This reverts commit b07d986f66.
2018-10-01 10:49:39 -07:00
Chris Bracken
b07d986f66
Eliminate snapshot, depfile opts from bundle cmd (#22495)
Eliminates the --snapshot and --depfile parameters from the flutter
bundle command. The snapshot parameter is unused in Dart 2 -- code is
built to kernel .dill files and for profile/release builds, then AOT
compiled.

While depfiles are still used in Dart 2 (e.g. by the kernel compiler),
there are enough assumptions in the code that they lie in the default
location (e.g. in the Gradle build) and no reasons to support
user-cusomisation that it makes sense to eliminate the --depfile option
as well, and always use the default location.

This commit also renames 'depFilePath' to 'depfilePath' for consistency
across the codebase.
2018-10-01 10:19:37 -07:00
Tran Huy Phuc
481cb77a4c Fix flutter emaultors crash when ini file is not parsed (#22503)
Fixes #22247.
2018-10-01 18:02:43 +01:00
shrike69
c496751ae8
Change flutter tool to not require Fuchsia build args (#22382)
* Change flutter tool to not require Fuchsia build args

* Restore code that was commented out.

* Fix style nits.
2018-09-28 15:13:47 -07:00
Stanislav Baranov
54c10f44b2
Implement build flow for hot updates on Android (#22391)
This also involves switching from Core JIT to App JIT snapshot, and replacing per-isolate VM snapshot with the shared VM snapshot.

For now there is no separate update bundle file, as the generated update gets packaged directly into the APK for testing purposes.
2018-09-28 13:58:37 -07:00
shrike69
fd8a9603ac
Remove waitForViews() during hot reload (#22371) 2018-09-28 11:35:38 -07:00
xster
6cdf953241 Revert "remove code signing special casing for Googlers (#22287)" (#22376)
This reverts commit 1eb38abdb7.
2018-09-27 14:43:54 -07:00
xster
1eb38abdb7
remove code signing special casing for Googlers (#22287) 2018-09-27 14:03:52 -07:00
Derek Hannah
fafd615a81 updated Flutter Doctor grammar (#19676)
* updated Flutter Doctor grammar

* updated messaging based on a suggestion by Greg Spencer

* grammar update
2018-09-27 09:47:36 -07:00
Jonah Williams
63f2fb9f5d
Add coverage directory to fuchsia coverage script (#22236) 2018-09-26 13:17:20 -07:00
Greg Spencer
306bcbde8a Fixes terse doctor output when no devices available. (#22108) 2018-09-26 09:33:08 -07:00
Mikkel Nygaard Ravn
52697ef962 Fixes to support add2app on iOS (#22277)
* Fix xcode_backend.sh script to support add2app

* Fix ios deployment target. Too old for new Xcode.

* Fix ios host app

* Register plugins with Flutter view
2018-09-26 01:57:05 -04:00
Mikkel Nygaard Ravn
a600fe7f13 Support materializing Flutter module host app on iOS (#21276)
* Prototype

* Fix paths to Flutter library resources

* Invoke pod install as necessary for materialized modules

* Add devicelab test for module use on iOS

* Remove debug output

* Rebase, reame materialize editable

* Add devicelab test editable iOS host app

* Removed add2app test section
2018-09-25 15:21:13 -04:00
Greg Spencer
eadd59a9ec
Swap out the moon emoji used for progress spinner for a single-cell character. (#22243)
Swap out the moon emoji used for progress spinner for a single-cell character.

The moon emoji looked cool, but couldn't be used because of bugs in xterm.js, used for VSCode's terminal, among others. The moon emoji is two character cells wide, but xterm.js doesn't advance by two cells when it adds the emoji, but does go back by two when it backspaces.

This changes us to a different character animation (dots) that is only one cell wide, and so doesn't have this problem.
2018-09-25 10:55:41 -07:00
Ian Hickson
989cf18b0d
[H] Cleanup (#21542)
* Improve documentation and clean up code.

* Remove "Note that".

The phrase "note that" is basically meaningless as a prefix to an
otherwise fine sentence.
2018-09-22 02:02:56 -07:00
Greg Spencer
efcd9a8001
Simplify Gradle compiler output. (#21760)
This changes the compiler output for gradle to be less verbose and more easily read.

This only applies to compilation error messages: other gradle messages will continue to print as before.

It also fixes a small problem with the performance measurement printing (see that "7.1s" on it's own line in the original?) so that if something is expected to have multiple lines of output, it prints an initial line, and a "Done" line with the elapsed time, so that it's possible to know what the time applies to.

It also updates the spinner to be fancier, at least on platforms other than Windows (which is missing a lot of symbols in its console font).

Addresses #17307
2018-09-20 15:45:48 -07:00
Alexander Markov
83cdb5738e
Cleanup uses of entry points files (#22098) 2018-09-20 15:10:41 -07:00
Stanislav Baranov
c799c2fd80
Use "product" mode VM snapshot when running dynamic "release" mode flutter with cached engine. (#22043)
Dynamic "release" mode requires "product" (not "release") mode VM, so we must point it to the correct cached snapshot.

Generation and caching of this snapshot happens the following corresponding change: https://chromium-review.googlesource.com/c/chromium/tools/build/+/1232134
2018-09-20 13:12:38 -07:00
tonyzhao1
8b5af14f24 Use grouped validator instead of categories (#21577)
This is a cleanup PR.
2018-09-19 15:42:51 -07:00
Greg Spencer
7caa65943f
Added more extensive ANSI color printing support on terminals. (#20958)
This adds support to AnsiTerminal for colored output, and makes all tool output written to stderr (with the printError function) colored red.

No color codes are sent if the terminal doesn't support color (or isn't a terminal).

Also makes "progress" output print the elapsed time when not connected to a terminal, so that redirected output and terminal output match (redirected output doesn't print the spinner, however).

Addresses #17307
2018-09-19 15:22:43 -07:00
matthew-carroll
18d5b9dc45
Renamed 'flutter materialize' to 'flutter make-host-app-editable'. The iOS version is still incomplete and will therefore require additional renaming. (#21771) (#22006) 2018-09-18 17:58:20 -07:00
Chris Bracken
f8c50ea15f
Use Xcode legacy build system for iOS builds (#21901) (#21994)
Xcode 10 introduces a new build system which includes stricter checks on
duplicate build outputs.

When plugins are in use, there are two competing build actions that copy
Flutter.framework into the build application Frameworks directory:

  1. The Embed Frameworks build phase for the Runner project
  2. The [CP] Embed Pods Frameworks build phase that pod install creates
     in the project.

Item (1) is there to ensure the framework is copied into the built app
in the case where there are no plugins (and therefore no CocoaPods
integration in the Xcode project). Item (2) is there because Flutter's
podspec declares Flutter.framework as a vended_framework, and CocoaPods
automatically adds a copy step for each such vended_framework in the
transitive closure of CocoaPods dependencies.

As an immediate fix, we opt back into the build system used by Xcode 9
and earlier. Longer term, we need to update our templates and
flutter_tools to correctly handle this situation.

See: https://github.com/flutter/flutter/issues/20685
2018-09-18 10:05:46 -07:00
Danny Tuppeny
ff9dc22e44
Run logcat through shell (#21977)
This should fix #18889 which may be related to `adb logcat` not working correctly in non-terminals on some LG devices. See https://github.com/flutter/flutter/issues/18889#issuecomment-422217761.
2018-09-18 17:57:31 +01:00
Chris Bracken
4c045e79fb
Revert "Use Xcode legacy build system for iOS builds (#21901)" (#21966)
This caused issues for projects without an Xcode workspace. Almost all
Flutter projects in the wild will have a workspace, but this patch needs
to add a check to catch any that lack one.

This reverts commit 021f472efc.
2018-09-17 18:22:54 -07:00
Chris Bracken
021f472efc
Use Xcode legacy build system for iOS builds (#21901)
Xcode 10 introduces a new build system which includes stricter checks on
duplicate build outputs.

When plugins are in use, there are two competing build actions that copy
Flutter.framework into the build application Frameworks directory:

  1. The Embed Frameworks build phase for the Runner project
  2. The [CP] Embed Pods Frameworks build phase that pod install creates
     in the project.

Item (1) is there to ensure the framework is copied into the built app
in the case where there are no plugins (and therefore no CocoaPods
integration in the Xcode project). Item (2) is there because Flutter's
podspec declares Flutter.framework as a vended_framework, and CocoaPods
automatically adds a copy step for each such vended_framework in the
transitive closure of CocoaPods dependencies.

As an immediate fix, we opt back into the build system used by Xcode 9
and earlier. Longer term, we need to update our templates and
flutter_tools to correctly handle this situation.

See: https://github.com/flutter/flutter/issues/20685
2018-09-17 17:54:57 -07:00
Alexandre Ardhuin
a07d3719a1
enable lint prefer_generic_function_type_aliases (#21680) 2018-09-14 21:06:19 +02:00
Mehmet Fidanboylu
2895d71b79
Make Flutter repo Dart SDK 2.1-dev3.1 compatible (#21853)
This is a blocker for Google roll since we are not at dev4.0:
- Future is not yet part of dart:core.
- Future.sync().then<dynamic>... causes failure without the new keyword.
2018-09-13 18:50:21 -07:00
Alexander Aprelev
199422cd2d
Skip first time full dill transfer (#21133)
* Don't sync first full kernel file.

* Update the comment
2018-09-13 09:01:47 -07:00
Joao da Silva
66e5422375 Check for AndroidStudio plugins in the right .dot dir. (#20619)
This fixes issues 11940 and 18155.
2018-09-12 08:15:30 -07:00
Alexandre Ardhuin
d927c93310
Unnecessary new (#20138)
* enable lint unnecessary_new

* fix tests

* fix tests

* fix tests
2018-09-12 08:29:29 +02:00
Todd Volkert
d7a0dcaa4a
Fix race condition in resident_runner (#21696)
* Don't set the `vmServices` member variable until it's fully initialized.
* Add a timeout to the future that sends the 'started' event to the IDE

https://github.com/flutter/flutter/issues/16604
2018-09-11 20:58:47 -07:00
Alexandre Ardhuin
774ca2f197
enable lint avoid_void_async (#21652) 2018-09-11 07:14:04 +02:00
Alexander Aprelev
e2e241320b
Update fuchsia-tester so it takes map of kernel test files (#21573)
* Update fuchsia-tester so it takes map of kernel test files

* Set mainDart correctly. Cleanup nits.
2018-09-08 17:53:40 -07:00
Jason Simmons
6effa190b9
Return an error from flutter_tools if gen_snapshot fails in an AOT build (#21576)
Fixes https://github.com/flutter/flutter/issues/21215
2018-09-07 16:44:01 -07:00
Chris Bracken
05d557b9ef
Make FlutterDevice.generator final (#21555)
Now that Dart 1 support has been eliminated, generator should always be
populated to a kernel compiler instance.

Also moves the constructor to the top of the class, and orders final
fields before non-final fields, as dictated by the style guide.
2018-09-07 13:56:04 -07:00
Chris Bracken
5ab9e70727
Revert "Eliminate snapshot/depfile options to build bundle (#21507)" (#21563)
This tickled a bug in KernelCompiler.compile() where the fingerprinter
doesn't include the outputFilePath in its list of dependencies. As such,
if the output .dill file is missing or corrupted, the fingerprint still
matches and re-compile is skipped, even though it shouldn't be. I'll fix
that in a followup, then look at how this triggered that issue. My
hypothesis is that that it's due to the aot kernel compile and bundle
kernel compile have separate output directories for the .dill files
(build/ vs build/aot) but the same output directory for the associated
depfiles (due to this patch).

This reverts commit 43a106e95a.
2018-09-07 12:33:05 -07:00
Chris Bracken
43a106e95a
Eliminate snapshot/depfile options to build bundle (#21507)
The --snapshot argument was only necessary in Dart 1. The --depfile
argument was only used in Dart 2 mode to pass to the kernel compiler,
but was inconsistent with the 'build aot' command, where the depfile was
always set to build/kernel_compile.d.

This patch updates 'build bundle' to emit the depfile to a location
consistent with the 'build aot' command; since it's not intended to be
user-configurable and flutter.gradle hardcodes the location to
build/kernel_compile.d either way, this patch also eliminates the
ability to configure the filename altogether.
2018-09-07 10:21:55 -07:00
Chris Bracken
3519eabe8a
Do not pass --preview-dart-2 to Dart VM (#21455)
--preview-dart-2 is no longer necessary as it is now the default for the
standalone Dart VM.
2018-09-06 10:59:37 -07:00
Danny Tuppeny
7fc9165e4e
Add a detach command to detach without terminating (#21490)
* Add a detach command to detach without terminating (#21376)

* Add a detach command to detach without terminating

Fixes #21154.

* Bump protocol version for app.detach

* Tweak to detach/quit text

* Change logPrefix to named param

* Fix the text that the devicelab attach test looks for
2018-09-06 15:26:55 +01:00
Devon Carew
e55b0f5244
remove the --use-cfe flag from flutter analyze (#21463) 2018-09-06 07:18:59 -07:00
Jonah Williams
2c1d12d4f7
Revert "Add a detach command to detach without terminating" (#21464) 2018-09-05 18:03:43 -07:00
Danny Tuppeny
409baff3ac
Revert "Allow FlutterTester to be provided with the working directory for execution (#21119)" (#21453)
This reverts commit 857bdc7a9a.
2018-09-05 21:31:29 +01:00
Danny Tuppeny
857bdc7a9a
Allow FlutterTester to be provided with the working directory for execution (#21119)
* Allow FlutterTester to be provided with the working directory for execution

Previously this test set fs.currentDirectory which prevents running tests concurrently. This allows setting the working directory for a FlutterTester in the cosntructor (optionally) and passes it through from the test (without setting fs.currentDirectory).

* Remove trailing whitespace
2018-09-05 19:37:04 +01:00
Danny Tuppeny
eb9c975eb0
Add a detach command to detach without terminating (#21376)
* Add a detach command to detach without terminating

Fixes #21154.

* Bump protocol version for app.detach

* Tweak to detach/quit text

* Change logPrefix to named param
2018-09-05 19:31:21 +01:00
Chris Bracken
05edc00a6f
Eliminate Dart 1 support from Flutter test (#21408) 2018-09-05 10:41:44 -07:00
Matteo Crippa
5907a7264d Fix/ios run simulator (#20262) 2018-09-05 09:03:08 -07:00
Danny Tuppeny
6e64cb0ad8
Fix windows crash running flutter run which tries to find Xcode (#21423)
* Add a failing test for #21418

* Filter workflows to only those applicable to the current platform

Fixes #21418.
2018-09-05 16:22:12 +01:00
tonyzhao1
58d98ce31e Create categories for doctor validators (#20758)
* First step in Flutter Doctor refactor. Assigns categories to all validators.

* Revert "Roll engine e54bc4ea1832..a84b210b3d26 (6 commits) (#20453)"

This reverts commit 05c2880a17.

* Split iOS and Android workflows into workflow and validator classes.

* Change ValidatorCategory to handle standalone validators that share a
category (e.g. IntelliJ).

Also make Android Studio and Android toolchain use separate categories.

At this stage, flutter doctor output matches what it was previously.
(The summary() method itself has not yet been changed )

* Change doctor summary code to support validator categories.

Output is still unchanged.

* Handle small formatting issues.

* Flip Flutter category's isGroup field to false until it's actually
needed.

* Revert auto-generated formatting changes to keep those lines from
muddying the pull.

* Small fixes pointed out by analyzer.

* Properly fix analyzer issues around const constructors.

* Small changes to address comments.

* Add tests to verify grouped validator behavior and validationtype
merging.

* Update doctor.dart

* Add comments for clarification.
2018-09-04 19:36:47 -07:00
Chris Bracken
2ab4ed748e
Eliminate Dart 1 support from DevFS (#21404)
Dart 1 is no longer supported in Flutter. Hot reload now always occurs
via kernel file updates (plus any asset bundle changes).
2018-09-04 16:47:57 -07:00
Chris Bracken
70eefd1e9c
Eliminate Dart 1 support from FlutterDevice class (#21402) 2018-09-04 15:42:05 -07:00
Chris Bracken
63fde92adc
Eliminate Dart 1 support from Xcode xcconfig files (#21400) 2018-09-04 14:33:49 -07:00
Chris Bracken
d04a057efd
Eliminate BuildInfo.previewDart2 (now always true) (#21392)
Dart 1 is no longer supported in Flutter.
2018-09-04 13:38:17 -07:00
Chris Bracken
ac8b906cb4
Eliminate support for Dart 1 in AOT snapshotter (#21388) 2018-09-04 10:17:12 -07:00
Chris Bracken
ed0b8be041
Eliminate script snapshot support (#21387)
Script snapshots were only every used in Dart 1 mode, which is no longer
supported.
2018-09-04 10:05:26 -07:00