Commit Graph

360 Commits

Author SHA1 Message Date
Ian Hickson
15a7eb3b6c Move to real generic method syntax (#7235) 2017-01-21 20:58:44 -08:00
Todd Volkert
5a3bae9eed Catch another ignorable errno in setting stdin.lineMode (#7563) 2017-01-20 14:00:12 -08:00
Todd Volkert
55beaef743 Ignore only ENOTTY when setting stdin.lineMode (#7472) 2017-01-12 16:14:37 -08:00
Devon Carew
7f2915d331 ignore exceptions from stdin.lineMode (#7439)
* ignore exceptions from stdin.lineMode

* only catch IOException
2017-01-11 10:54:42 -08:00
Todd Volkert
a0666f330e Update Process.exitCode setter to not use @override (#7434)
As of Dart SDK 1.22.0-dev.5.0, `Process.exitCode` is no longer
mutable (that SDK version picks up e5a16b1ca5).
This change allows the tools code to pass analysis in sdk versions both
before and after that change, to allow for analysis against both the host and
target sdks.
2017-01-10 21:33:04 -08:00
Todd Volkert
1ccbf8f00d Use FileSystem.pathSeparator instead of Platform.pathSeparator (#7417) 2017-01-10 13:17:20 -08:00
Todd Volkert
016b5ab0cc Force all dart:io usage to go through 'base/io.dart' (#7390)
This ensures that accidental usages of dart:io's
file API don't creep in over time.
2017-01-09 08:37:00 -08:00
Todd Volkert
8bb270342e Update flutter_tools to use package:file throughout (#7385)
This removes direct file access from within flutter_tools
in favor of using `package:file` via a `FileSystem` that's
accessed via the `ApplicationContext`.

This lays the groundwork for us to be able to easily swap
out the underlying file system when running Flutter tools,
which will be used to provide a record/replay file system,
analogous to what we have for process invocations.
2017-01-06 16:51:44 -08:00
Todd Volkert
1c43c4e24d Bump package:file version to 1.0.0 (#7371) 2017-01-05 18:42:57 -08:00
Todd Volkert
69bcfc082f Minor touch-ups in ProcessManager impls (#7196) 2016-12-08 09:51:05 -08:00
Todd Volkert
622e4396c9 Add tests for nested contexts (#7197)
This tests against the failure that was fixed in #7189
2016-12-08 09:39:32 -08:00
Todd Volkert
1155f96651 Add tests for process_manager.dart (#7178) 2016-12-07 21:03:58 -08:00
Todd Volkert
a4f2ad984d Fix context.dart to properly handle nested zones (#7189)
This fixes an infinite loop in the code that walks the parent
context chain looking for a variable.

This also includes a fix in build_info.dart whereby if the context
is set but the config is not yet set, we were trying to dereference
null.
2016-12-07 19:51:27 -08:00
Todd Volkert
7536404b20 Add --replay-from argument to Flutter tools (#7146)
This argument will enable mocking of os-layer process invocations,
where the mock behavior will come from replaying a previously-
recorded set of invocations. At the point of process invocation,
the key metadata for the invocation will be looked up in the
recording's manifest, and iff a matching record exists in the
manifest, the process will be mocked out with data derived from
the corresponding recorded process (e.g. stdout, stderr, exit code).
2016-12-06 10:09:00 -08:00
Todd Volkert
c9e7782adb Add --record-to option to flutter tools (#7136)
* Add --record-to option to flutter tools

This option will cause flutter tools to record all process
invocations that occur and serialize their stdout and stderr
to files that get added to a "recording" ZIP file. This is
part of an effort to be able to test flutter tools in a hermetic
environment.

As a side-benefit, this recording should prove an excellent
attachment to any bug report.
2016-12-02 13:39:54 -08:00
Todd Volkert
60b19b2035 Create abstraction layer for dart:io's Process commands (#7100)
With this change, they're run via instance methods on an object
obtained through the context. This will allow us to substitute
that object in tests with replay/record versions to allow us to
mock out the os-layer in tests.
2016-11-30 08:42:42 -08:00
John McCutchan
618030e044 More AppContext cleanups (#7073) 2016-11-29 11:22:48 -08:00
John McCutchan
0b737ac57b Remove default AppContext and cleanup globals (#6999) 2016-11-29 07:54:20 -08:00
Devon Carew
15ea399fdd add identifiers to progress messages (#6868) 2016-11-15 12:13:56 -08:00
Dan Rubel
34e466f1fd Refactor flutter command exit code - part 3 of 3 (#6838)
* Remove the workaround that pinned args to v0.13.6
This reverts most of the changes in commit 6331b6c8b5
* throw exception if exit code is not an integer
* rework command infrastructure to throw ToolExit when non-zero exitCode
* convert commands to return Future<Null>
* cleanup remaining commands to use throwToolExit for non-zero exit code
* remove isUnusual exception message
* add type annotations for updated args package
2016-11-14 14:21:30 -05:00
Dan Rubel
e384c0d982 Refactor flutter command exit code - part 2 (#6817)
* convert pubGet to throw ToolExit on non-zero exit code
* convert commandValidator to throw ToolExit for non-zero exit code
* convert flutter commands to throw ToolExit for non-zero exit code
* use convenience method throwToolExit
* only show "if this problem persists" for unusual exceptions
2016-11-13 22:09:03 -05:00
Dan Rubel
cccd917ac2 Refactor flutter command exit code - part 1 (#6803)
* convert flutter commands to use ToolExit for non-zero exit code
* add convenience method throwToolExit
* print ToolExit message iff not null
2016-11-11 10:42:09 -05:00
Dan Rubel
fb03b3137e Improve error message if update cache interrupted during download (#6740) 2016-11-08 08:02:06 -05:00
Ian Hickson
04e7446b2b Make the fire red on black-and-white terminals (#6748) 2016-11-07 15:48:50 -08:00
Jason Simmons
54d76518ac Continue showing status messages after a startProgress completes (#6720) 2016-11-05 22:47:33 -07:00
Devon Carew
fcfb2a5c55 Better progress (#6677)
* make showElapsedTime default to true

* support nested progresses

* improve hot reload message

* rethrow
2016-11-03 13:28:17 -07:00
John McCutchan
594c4f998a Only synchronize used Dart sources to DevFS. (#6668)
- [x] Remove the second full-sync on startup.
- [x] Always invoke the snapshotter to determine the minimal set of Dart sources used.
- [x] Only synchronize the *used* Dart sources to DevFS.
- [x] Detect syntax / file missing errors on the host and gate reloads / restarts.
2016-11-03 15:19:57 +01:00
Jason Simmons
5a9b8b77e5 Do not print the output of the package dependency tool during hot reload (#6494) 2016-10-24 16:07:29 -07:00
Wyatt Arent
0838ef7d0b logger use milliseconds instead of seconds for reporting elapsed time (#6487)
* logger use milliseconds instead of seconds for reporting elapsed time (#5400)

* Update authors (#5400)

* Remove unnecessary comment
2016-10-23 09:54:08 -07:00
Jason Simmons
022cb2d9dc Do not buffer logs in the verbose logger (#6465)
With the old policy the most recent log would not be printed until the next
log is produced (which may be indefinitely).  This change prints logs
immediately along with a time delta since the previous log.
2016-10-21 16:54:59 -07:00
Todd Volkert
904d524313 Add support for --use-application-binary on iOS (#6318)
Fixes #6283
2016-10-13 16:17:50 -07:00
Dan Rubel
e20ee045ba Flutter doctor detect IntelliJ on Mac (#6262)
* cleanup obtaining user home directory path
* refactor doctor and detect IntelliJ on Mac
* fix detect Flutter plugin for IntelliJ
2016-10-13 10:44:20 -04:00
Devon Carew
8f0f19a5e2 increase the port check iteration count (#6301) 2016-10-12 23:48:08 -07:00
Dan Rubel
7745dd73c7 improve flutter tool error message for download problems (#6238) 2016-10-06 17:49:14 -04:00
Devon Carew
d9bbd2fb53 make app ids more unique (#6113)
* make app ids more unique

* in-line the uuid class
2016-09-28 11:18:05 -07:00
Devon Carew
fa52b456ec set the FLUTTER_ROOT env var when invoking pub (#6041) 2016-09-25 19:30:44 -07:00
Dan Rubel
678da3ac2b cancel open subscription (#5824)
fixes https://github.com/flutter/flutter/issues/5788
2016-09-12 16:32:08 -04:00
Ryan Macnak
fa8dc5f88b Do not truncate commands, this inhibits reproduction. (#5607) 2016-08-26 14:48:21 -07:00
Dan Rubel
194a9ef3c9 implement flutter packages get/upgrade command (#5603)
* implement flutter packages get/upgrade command
* alias flutter pub
* refactor findProjectRoot for use by multiple commands

fixes https://github.com/flutter/flutter/issues/4994
2016-08-25 22:37:48 -04:00
Chris Bracken
b5f763b45e Support a configurable build directory (#5601)
This change adds a top-level getBuildDirectory func and funcs for
android, aot, asset, ios build products.

Developers may now add a "build-dir" mapping to their
~/.flutter_settings (JSON format) config file. Output directory is
relative to the main flutter application directory.

This change also changes the default build directory for iOS builds to a
subdirectory of the configured build directory, 'build/ios' by default.
2016-08-25 16:38:19 -07:00
Dan Rubel
5f7af56f3e modify runCommandAndStreamOutput to wait until stdout (#5596)
has been fully processed before completing the returned future.
This helps prevent tests that rely on stdout from being flaky.
2016-08-25 14:55:54 -04:00
Devon Carew
74446d78fc don't resolve symlinks as part of which (#5531)
* don't resolve symlinks as part of which

* update method dartdoc
2016-08-22 14:35:19 -07:00
Devon Carew
53dd5dbd0d print more logging info when tracing (#5419) 2016-08-17 08:19:52 -07:00
Devon Carew
24f63e2b44 show better errors for gradle build failures (#5374) 2016-08-13 12:30:14 -07:00
John McCutchan
b314fa5979 Add time to frame tracking to hot run (#5316) 2016-08-10 14:02:44 -07:00
John McCutchan
4c1dde8d67 Add a control pipe that can trigger reloads / restarts (#5282) 2016-08-09 07:11:24 -07:00
Ian Hickson
d7fb51a551 Hot reload UI polish (#5193)
* General improvoments to the loader app:
   * Show a message after 8 seconds if no connection comes in.
   * Show a progress bar as files are being uploaded.
   * Hide the spinner just before launching the application.

* General improvements to the "flutter run" UI:
   * Add "?" key as a silent alias for "h".
   * Make the help text bold so it doesn't get mixed with the logs.
   * Make "R" do a cold restart when hot reload is enabled.

* Supporting features and bug fixes:
   * Add support for string service extensions.

* Other bug fixes:
   * Expose debugDumpRenderTree() outside debug mode.
   * Logger.supportsColor was missing a getter.
   * Mention in the usage docs that --hot requires --resident.
   * Trivial style fixes.
2016-08-02 16:52:57 -07:00
Devon Carew
57b76a050f Hello services run (#4969)
* making flutter run work with gradle

* locate android studio

* add test for settings

* review comments
2016-07-19 20:00:02 -07:00
Adam Barth
10931af0d3 Simplify coverage workflow (#4725)
We now download the base coverage file automatically.
2016-06-23 16:31:25 -07:00
Ian Hickson
0d21e69b1d Fix flutter upgrade and flutter build ios (#4564)
* Fix `flutter upgrade`

* Fix builds on iOS
2016-06-14 18:16:55 -07:00
Todd Volkert
2099d3789c Pull iOS build templates from flutter tools vs engine artifacts (#4526) 2016-06-13 12:30:08 -07:00
Ian Hickson
c9bcf1074e Analyzer was confused when you deleted files (#4528)
Also, make it clear the screen between results so it's more obvious
what's going on when you have new results (especially when you have
fixed everything).
2016-06-13 12:20:03 -07:00
Devon Carew
3ba17136b7 add a restart command to the daemon protocol (#4385)
* refactor the --resident run option into a separate file

* update daemon to run --resident apps

* re-plumbing daemon start

* send app logs

* update tests

* review changes

* fix test runner

* remove PackageMap.createGlobalInstance; rely on the ctor

* review comments
2016-06-07 12:13:35 -07:00
Chinmay Garde
68ba5bfd7c Suppress verbose output from ios-deploy when not in verbose mode. (#4423) 2016-06-07 12:02:08 -07:00
Devon Carew
26076d9efd Update utils.dart (#4364) 2016-06-03 13:21:16 -07:00
Eric Seidel
4c86b73027 wip 2016-06-02 14:17:21 -07:00
Devon Carew
7c47837c27 show build progress; print app sizes (#4263)
* show build progress; print app sizes

* add todo

* review comments

* remove unused import
2016-05-29 15:07:41 -07:00
Devon Carew
ec7517766c Flutter run restart (#4105)
* working on making a faster flutter run restart

* clean up todos; fire events on isolate changes

* use the Flutter.FrameworkInitialization event

* review comments
2016-05-26 15:26:14 -07:00
Devon Carew
d6aed1e7c9 add a --quiet option to flutter_tools (#4213) 2016-05-26 13:41:29 -07:00
Todd Volkert
239a717dcc Revert "Pass the local engine config through Xcode (#4190)"
This reverts commit 8f69cccc18.
2016-05-26 11:03:08 -07:00
Devon Carew
9cfa96608c dissallow -release mode on emulators (#4204)
* dissallow -release mode on emulators

* have the help text print the default mode
2016-05-26 09:14:51 -07:00
Adam Barth
8f69cccc18 Pass the local engine config through Xcode (#4190)
This passes the information through Xcode to the `flutter build aot` call via
the environment so that it picks up the right artifacts.

Fixes #4186
2016-05-25 14:33:22 -07:00
Devon Carew
cc5d1adcfc handle an exit code from android n (#3914)
* handle an exit code from android n

* review comments
2016-05-13 16:47:30 -07:00
Devon Carew
40c0d6ea12 Consolidate observatory code (#3892)
* rename service_protocol.dart to protocol_discovery.dart

* add a wrapper around the obs. protocol

* use json-rpc in run

* consolidate obs. code; implement flutter run --benchmark

* review comments
2016-05-12 18:15:23 -07:00
Devon Carew
826936cd33 use vendored dart sdk; check the expected version of flutter (#3831)
* use vendored dart sdk; check the expected version of flutter

* search up directories looking for the flutter root
2016-05-10 16:21:30 -07:00
Devon Carew
067715e302 Send exit for flutter run --resident (#3829)
* send ext.flutter.exit

* listen for help restart, quit

* refactor into a separate class
2016-05-10 13:47:00 -07:00
Devon Carew
bd564a02af avoid sending analytics on ci systems (#3765)
* avoid sending analytics on ci systems

* review comments
2016-05-05 19:51:22 -07:00
Devon Carew
c9010c91f6 fix analysis errors (#3677)
* fix analysis errors

* review comments; fix test

* re-add an export for debugPrint
2016-05-03 09:09:00 -07:00
Devon Carew
99114cd414 show more errors on missing jarsigner (#3626) 2016-04-28 22:48:01 -07:00
Yegor
c2cccc7b3b [tools] teach flutter run to get startup trace info (#3589) 2016-04-27 17:58:20 -07:00
Devon Carew
b0dca79671 Flutter run (#3553)
* rework flutter run

* fix npe with --debug-port

* connect to obs and exit when that conneciton closes

* update todos
2016-04-27 14:43:42 -07:00
Devon Carew
ace1a64bfd don't print installing device twice (#3520) 2016-04-25 09:25:47 -07:00
Devon Carew
dd2bde1918 add a service extension for repaint rainbow (#3409)
* add a service extension for repaint rainbow

* review comments
2016-04-19 12:57:10 -07:00
Phil Quitslund
246a2cb055 Merge pull request #3375 from pq/sdk_opt
Analyze CLI option to specify a custom Dart SDK.
2016-04-18 09:44:05 -07:00
pq
26519aab23 Fixed spacing. 2016-04-18 09:25:17 -07:00
pq
4ff0e842e2 Analyze CLI option to specify a custom Dart SDK.
Handy for testing against specific local SDK builds.

(Note that the option is hidden.)
2016-04-18 09:03:31 -07:00
Devon Carew
12cac94cda Use arm deploy (#3374)
* download android-arm-deploy

* wire up --deploy to android-arm-deploy

* fix interpolation
2016-04-18 09:01:43 -07:00
Devon Carew
f132acaf1d use the new cache code to locate more artifacts (#3361)
* use the new cache code to locate more artifacts

* add todo

* review comments
2016-04-15 21:08:03 -07:00
Devon Carew
b4173e20d4 fix to showing a progress display for long tasks (#3265) 2016-04-12 08:39:24 -07:00
Devon Carew
2a33e3f0c0 make flutter upgrade less verbose (#3237)
* more terse flutter upgrade

* fix an issue when updating and the engine update code has changed

* call flutter precache; add a --no-color hidden option

* fix a lint related to getters/setters
2016-04-11 11:17:09 -07:00
Devon Carew
7ad1e38eac Fix windows crash (#3236)
* better messaging about windows support

* fix lints
2016-04-11 08:34:01 -07:00
Devon Carew
a729b02f1a move the engine download code to dart (#3180)
* move the engine download code to dart

* fix populating the bin/cache/pkg dir
2016-04-07 13:31:44 -07:00
Jason Simmons
9d022ed26d Add a command that can capture a Skia picture of a Flutter frame and send it to a file or skiaserve debugger (#3165) 2016-04-07 12:33:11 -07:00
Devon Carew
34a67329fd use --no-precompile (#3175)
* use --no-precompile

* use the flutter bin cache's sdk
2016-04-07 11:06:38 -07:00
Devon Carew
40598449ad add cache.dart to help manage the cache dir (#3168)
* add cache.dart to help manage the cache dir

* sp
2016-04-07 09:15:58 -07:00
Devon Carew
15b9e1ddb0 add a screenshot command 2016-03-25 22:01:32 -07:00
Devon Carew
2fc8e9a110 create a crash report 2016-03-25 13:29:15 -07:00
Ian Hickson
87eb34240b Port to crypto 0.9.2 2016-03-22 21:54:34 -07:00
Hixie
797e27edd3 Add @override annotations to flutter framework 2016-03-14 14:02:26 -07:00
Ian Hickson
d745e20853 Even more types 2016-03-14 09:41:54 -07:00
Devon Carew
e939b152af rename the platform constants 2016-03-12 11:08:21 -08:00
John McCutchan
8803cecea1 Refactor DeviceLogReader 2016-03-08 10:38:22 -08:00
Devon Carew
4c569195f1 clean the project names used for flutter create 2016-03-02 12:36:37 -08:00
Devon Carew
4d93c376c9 improve verbose output 2016-02-27 23:36:02 -08:00
Devon Carew
4e10bf596c improve startup time 2016-02-27 08:19:19 -08:00
Yegor Jbanov
677e63b79d decouple flutter drive from flutter start
flutter start's method of finding devices to run the app on is not suitable for flutter drive.

This commit also refactors several tool services to allow mocking in unit tests.
2016-02-26 10:18:24 -08:00
Devon Carew
37290d866e additional validation for device commands 2016-02-24 11:11:23 -08:00
yjbanov
278630e688 "flutter create" can generate a basic driver test
"flutter create" adds option `--with-driver-test` that adds
dependencies to `flutter_driver` in `pubspec.yaml` and creates
a basic driver test runnable via `flutter drive
--target=test_driver/e2e.dart`

"flutter drive" new options:

- `--keep-app-running` tells the driver to not stop the app after tests
  are done
- `--use-existing-app` tells the driver to not start a new app but use
  an already running instance
2016-02-22 17:10:31 -08:00
Devon Carew
67046f933d add the ability to start and stop device polling 2016-02-20 22:00:11 -08:00
yjbanov
a2b1bd4673 "flutter drive" command
Runs a test app and a driver test simultaneously, then stops the app.

Usage:

```
flutter drive --target=/path/to/test/app.dart
```

This command will look for `/path/to/test/app_test.dart` by
convention. We will expand into other ways of discovering tests in the
future.
2016-02-19 18:11:53 -08:00
Devon Carew
d5a6fceee5 add a summary option to the doctor class 2016-02-17 09:33:45 -08:00
Devon Carew
7ae6f7f391 make the ios development path less mandatory 2016-02-17 00:38:47 -08:00
Devon Carew
dcf0b7bae6 allow any android sdk version 2016-02-13 14:37:41 -08:00
Devon Carew
2dbceafbc6 introduce globals scoped to the app's context 2016-02-09 22:03:13 -08:00
Devon Carew
b780c07622 add --start-paused,--debug-port flags 2016-02-02 11:38:56 -08:00
Devon Carew
78e05884ed refactor flutter logs 2016-02-01 12:56:46 -08:00
Devon Carew
d631ebe597 fix a regex in the ios logs command
fixed sub-process stdout parsing; added todos
2016-01-30 22:48:28 -08:00
Devon Carew
d7fbf5302d use status(), error(), and trace() for logging
rename to printTrace(), printStatus(), and printError()
2016-01-28 12:44:17 -08:00
Ian Hickson
4fe10dbf7e Refactor listen in terms of start.
Fixes #1034, at least for start and listen.
2015-12-28 17:57:47 -08:00
Adam Barth
9662d49e12 Clean up code organization in flutter_tools
1) Moved basic utility code into base/ directory to make it clear which code
   doesn't depend on Flutter-specific knowldge.
2) Move the CommandRunner subclasses into a runner/ directory because these
   aren't commands themselves.
2015-11-28 21:16:55 -08:00