Commit Graph

3845 Commits

Author SHA1 Message Date
Eric Seidel
a6e8fccb90 Correct display error for flutter analyze timing
Fixes #1213.
2016-01-12 17:08:38 -08:00
Seth Ladd
42d90c00cc starter app now has a button that does something 2016-01-12 10:28:40 -08:00
Eric Seidel
001c107858 Teach analyze how to print out the total time spent
Makes it more obvious that flutter analyze takes a long time.

@Hixie
2016-01-12 09:20:36 -08:00
Adam Barth
2303188614 Handle trying to upgrade Flutter with no upstream
Fixes #1084
2016-01-07 10:57:48 -08:00
Adam Barth
3615827f0e flutter start crashes when port 8181 is in use
Catch the error and log a warning.

Fixes #1050
2016-01-07 09:56:44 -08:00
Eric Seidel
330c08199e Revert "Make flutter listen exit nicely when missing dependencies" 2016-01-06 17:17:16 -08:00
Eric Seidel
3a2aa89064 Make flutter listen exit nicely when missing dependencies
Previously it died with a confusing exception.

@chinmaygarde
2016-01-06 17:07:36 -08:00
Chinmay Garde
e1b16729bf Merge pull request #1093 from chinmaygarde/master
Download the Xcode artifacts for the current engine revision
2016-01-06 13:40:35 -08:00
Devon Carew
854f9f717d Merge pull request #1090 from devoncarew/log_stderr
have flutter logs log stderr
2016-01-06 13:39:11 -08:00
Chinmay Garde
f5f9440a2d Download the Xcode artifacts for the current engine revision 2016-01-06 13:38:43 -08:00
Eric Seidel
0d783718ba Teach flutter trace stop to use time on the device.
This is yet another hack on top of adb log handling.
This is fragile, but w/o this if you device time is out
of sync, you can't trace.

@abarth
2016-01-06 13:29:32 -08:00
Devon Carew
ed215fb842 have flutter logs log stderr 2016-01-06 13:29:24 -08:00
Devon Carew
782f505fb8 clear logs on app launch 2016-01-05 11:02:49 -08:00
Jason Simmons
3a37c36cea Add flags for signing an APK with a custom keystore
Fixes #1010
2016-01-04 13:59:01 -08:00
Adam Barth
eecb8012af flutter init should gitignore .atom
We now create a .atom folder to hold settings for the Atom project. We
should gitignore that folder our project template.
2016-01-01 19:44:39 -08:00
Devon Carew
fc0b18c7f1 update the min api level in the generated android manifest; use constants for the android version name 2015-12-30 21:37:39 -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
Chinmay Garde
56d6476049 Merge pull request #986 from chinmaygarde/master
Fix travis builds and linter warnings
2015-12-17 15:31:55 -08:00
Chinmay Garde
8231f57984 Fix travis builds and linter warnings 2015-12-17 15:25:59 -08:00
Chinmay Garde
98f10bc6eb Merge pull request #983 from chinmaygarde/master
Add a 'flutter ios --init' command that fetches the Xcode project from the cloud and configures it for a given flutter project
2015-12-17 14:59:26 -08:00
Chinmay Garde
08fdf99fea Add a 'flutter ios --init' command that fetches the Xcode project from the cloud and configures it for a given flutter project 2015-12-17 14:58:39 -08:00
Eric Seidel
dd440d0c21 Fix flutter apk to work with resources
I screwed up my last change, turns out the package command
is sensitive about having all of its flags before args.

Also made it possible to control the resources directory
from the command line per the review comments in the previous change.

@jason-simmons
2015-12-16 16:18:02 -08:00
Eric Seidel
64bec53646 Add support for bundling apk resources
I also made it so that `flutter apk -v` showed what
commands it was running by moving off of a custom _run
function onto the base/process.dart runChecked shared
by other commands.

@jason-simmons
2015-12-16 15:33:33 -08:00
Ian Hickson
7151fdd054 Move flutter tests from packages/unit to packages/flutter/test 2015-12-16 08:00:57 -08:00
Hixie
0a6b0f9b0b Always import our packages when analyzing. 2015-12-14 12:56:31 -08:00
Hixie
889a1e8eb3 Analyze more tests. 2015-12-14 11:06:42 -08:00
Adam Barth
4fa9e57185 Merge pull request #872 from abarth/build_errors
Improve error messages when build fails
2015-12-10 12:00:30 -08:00
Adam Barth
8eb9763569 Improve error messages when build fails
Instead of failing with a cryptic error message about app.flx, we now fail with
an explicit message about the compiler.

Releated to #865
2015-12-10 11:25:19 -08:00
Adam Barth
fd68f08b7c Recognize offline status in adb
Fixes #858
2015-12-10 11:16:40 -08:00
Adam Barth
2b6b781c7a Switch over to the Travis-built artifacts
We've been bulding these binaries using Travis for a while. We can start using
them now.
2015-12-08 15:01:44 -08:00
Ian Hickson
0290622bc6 Analyzer improvements
- strengthen analyzer against error messages that point past the
  bottom of the file.

- ignore any errors in intl's auto-generated files.
2015-12-03 19:52:23 -08:00
Eric Seidel
7d4feaa71a Workaround logcat -c not working 2015-12-03 16:13:10 -08:00
Eric Seidel
5e2bc90daf Make it possible to specify the saved path for trace --stop
@chinmaygarde
2015-12-03 14:44:59 -08:00
Eric Seidel
4eee2e4c1d Add support for passing --trace-startup on Android
iOS takes a different codepath and will need more work.

@chinmaygarde
2015-12-03 12:23:52 -08:00
Adam Barth
fb98a387aa Support flutter test with prebuilt binaries
Now you can run tests with and without --flutter-repo with a prebuilt binary on
Linux.

Fixes #307
2015-12-03 10:05:57 -08:00
Eric Seidel
95eac98fac Merge pull request #681 from eseidelGoogle/trace
Make trace --stop fail if the adb pull fails.
2015-12-02 12:00:01 -08:00
Eric Seidel
5b2cc1ae67 Make trace --stop fail if the adb pull fails.
@chinmaygarde
2015-12-02 11:27:27 -08:00
Jason Simmons
bbd84bce93 Merge pull request #660 from jason-simmons/apk_output_label
Add output to "flutter apk" indicating where the APK file was written
2015-12-01 15:50:52 -08:00
Jason Simmons
01ff4ef6bc Add output to "flutter apk" indicating where the APK file was written 2015-12-01 15:44:15 -08:00
Jason Simmons
76ced91388 Generate an Android manifest in "flutter init" 2015-12-01 15:28:19 -08:00
Adam Barth
f41869f639 Update package:test to the latest version 2015-11-30 18:41:10 -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
Ian Hickson
92a6212007 dev/update_packages.dart --upgrade
Add an --upgrade flag to the dev/update_packages.dart flag which runs
'pub upgrade' instead of 'pub get'. Tell people to use this when using
'flutter analyze' since 'pub get' doesn't have the same guarantee of
getting everything in sync.
2015-11-27 20:01:13 -08:00
Devon Carew
13fbafdabf Merge pull request #591 from devoncarew/log_time
print logging timestamps to profile app launch
2015-11-25 12:54:49 -08:00
Devon Carew
e36b07f7b5 print logging timestamps to profile app launch 2015-11-25 12:47:25 -08:00
Devon Carew
559ea9d08d allow logs to work from any location 2015-11-25 12:39:33 -08:00
Adam Barth
860547c1d4 Add support for system-level routing
Now you can supply a route argument to flutter start:

  $ flutter start --route /foo

which will start the app at /foo instead of /.
2015-11-24 16:13:20 -08:00
Adam Barth
b0470e31fb Improve unauthorized regexp
Fixes https://github.com/flutter/flutter.github.io/issues/101
2015-11-23 19:09:43 -08:00
krisgiesing
1a351a6598 Merge pull request #478 from krisgiesing/run_mojo_android
Allow run_mojo --android to specify location of flutter engine
2015-11-23 14:19:28 -08:00
Kris Giesing
02510dd866 Allow run_mojo --android to specify location of flutter engine 2015-11-23 14:11:51 -08:00
Adam Barth
c7e00449a8 Make it possible to run tests outside the Flutter repo
This patch still requires a locally built engine. I'll remove the need for a
locally built engine in a future patch.

Fixes #278
2015-11-23 13:42:04 -08:00
Seth Ladd
c675ec7d6e Merge pull request #530 from sethladd/more-error-message
more verbose error message
2015-11-23 09:50:29 -08:00
Seth Ladd
84cfcde1f7 tweaking message 2015-11-23 09:24:20 -08:00
Adam Barth
99d51f5f5a Fix analyzer warnings
Should make Travis green again. Also, add better logging to
dev/update_packages.dart.
2015-11-21 13:39:45 -08:00
Jason Simmons
ae7c97160a Merge pull request #533 from jason-simmons/apk_artifact_cache
Build APKs without a local copy of the engine sources
2015-11-20 16:43:14 -08:00
Jason Simmons
854db78466 Build APKs without a local copy of the engine sources 2015-11-20 16:22:18 -08:00
Seth Ladd
9496de7c80 more verbose error message
undo auto format
2015-11-20 15:34:28 -08:00
Adam Barth
0d3c2d9336 flutter build --engine-src-dir=<garbage> produces poor error message
This patch improves the error message.

Fixes #468
2015-11-20 15:09:04 -08:00
Adam Barth
19fe92e35d Merge pull request #521 from abarth/fix_analyzer
Fix analyzer warnings in updater package
2015-11-20 14:14:39 -08:00
Adam Barth
4cd1fb177a Fix analyzer warnings in updater package
This class was renamed to MojoEventSubscription.
2015-11-20 13:12:27 -08:00
Adam Barth
dc23af9ff1 Merge pull request #513 from abarth/improve_build_help
Be more specific about what `flutter build` does
2015-11-20 12:57:36 -08:00
Jason Simmons
1f83018f86 Download build artifacts from a zip file
This updates the Flutter tools to match the proposed new packaging of artifacts
in the engine release script.
* The GCS URL for artifacts is now gs://mojo/flutter/$revision/$platform
* Categories have been removed from the Artifact class
* All artifacts for a given platform now live in a zip file.  If an artifact
  is not present in the local cache, then the zip will be downloaded and
  extracted.

Note that darwin-x64 artifacts go through a different process that (for now)
continues to use the old format.
2015-11-20 10:27:18 -08:00
Adam Barth
18763e5609 Be more specific about what flutter build does
Fixes #512
2015-11-20 09:14:48 -08:00
Eric Seidel
847df52860 Point to Github issues instead of flutter.io
Fixes #489.

@sethladd
2015-11-19 10:29:29 -08:00
Adam Barth
fd6bc856a7 Merge pull request #458 from abarth/adb_errors
Handle adb error cases more gracefully
2015-11-18 08:17:24 -08:00
Adam Barth
3027497f85 Handle adb error cases more gracefully
We now print a sensible message if we can't find `dart` or `adb`. Also, we
print a sensible message if the device isn't authorized.

Fixes #380
Fixes #358
2015-11-17 23:23:30 -08:00
Adam Barth
b20a1f4a15 Merge pull request #457 from abarth/asset_error
Improve error message for non-existent asset
2015-11-17 23:07:27 -08:00
Adam Barth
7b75d15d46 Improve error message for non-existent asset
Now we print the name of the asset and the base directory where we looked for
the error instead of throwing a null pointer exception.

Fixes #296
2015-11-17 22:56:00 -08:00
Adam Barth
cada8b3faa Import path.dart as path rather than p
Fixes #311
2015-11-17 22:44:54 -08:00
Adam Barth
f6bd26a3f3 Make flutter run_mojo imply flutter build
This makes run_mojo more similar to flutter start.
2015-11-17 16:19:55 -08:00
Adam Barth
0760c8be7f Merge pull request #446 from abarth/improve_version
Improve flutter --version output
2015-11-17 16:05:08 -08:00
Jason Simmons
ba10546889 Merge pull request #437 from jason-simmons/apk_package
Add a Flutter command that builds an APK using a local build of the e…
2015-11-17 15:27:34 -08:00
Adam Barth
835e7f25fc Improve flutter --version output
Sample output:

```
Flutter
Repository: git@github.com:flutter/flutter.git
Branch: master
Revision: 7be58b1ae0 (62 minutes ago)
```

Fixes #433
2015-11-17 15:24:25 -08:00
Jason Simmons
07556429f2 Add a Flutter command that builds an APK using a local build of the engine
Example:
   cd flutter/examples/stocks
   flutter --engine-src-path /path/to/engine/src apk -o Stocks.apk -m apk/AndroidManifest.xml
2015-11-17 14:54:25 -08:00
Adam Barth
b8e16d7c09 Switch flutter run_mojo over to flutter.mojo
The new flutter.mojo is ready for use.
2015-11-17 14:16:20 -08:00
Hixie
56b9245b1a Allowing us to have a single error seems silly. 2015-11-17 11:08:46 -08:00
Adam Barth
a35b214d89 Merge pull request #421 from abarth/icon_sizes
Add all the icon sizes to the FLX
2015-11-16 23:01:02 -08:00
Adam Barth
a8ab3d6934 Add all the icon sizes to the FLX
Adding all the sizes of all the icons adds about 50 KB to the stocks FLX.
That's probably the right trade-off until we get better at pruning the set of
assets.

Fixes #235
2015-11-16 22:55:35 -08:00
Adam Barth
9e212017fb Add a --version option to flutter
This option just prints the current git revision.

Fixes #40
2015-11-16 22:49:30 -08:00
krisgiesing
725474c6d7 Merge pull request #416 from krisgiesing/run_mojo_fix
Allow flutter engine path to be set when using run_mojo
2015-11-16 17:06:49 -08:00
Kris Giesing
95a2af8b80 Fix analyzer errors 2015-11-16 17:00:55 -08:00
Kris Giesing
57bca7da10 Allow flutter engine path to be set when using run_mojo 2015-11-16 16:42:47 -08:00
Collin Jackson
f1f68f50d2 Merge pull request #401 from collinjackson/remove_sky_log_check
Now that #371 is fixed, we no longer need to check logs for "sky"
2015-11-16 15:57:53 -08:00
Collin Jackson
8c195c074f Now that #371 is fixed, we no longer need to check logs for "sky" 2015-11-16 14:34:54 -08:00
Collin Jackson
0aca425a8b Fix #373 Add abbreviation for flutter logs -c 2015-11-16 14:23:18 -08:00
Nathan Kerr
d36af446f2 Change Regex to correctly match against my device.
Since we don't care about the port, just allow any characters between the spaces after the device ID and the product.

Running Windows 10, running "adb devices -l" with my device attached to the computer gives:
FA34MW904146           device product:cm_m7 model:One device:m7

Which wasn't being matched correctly (no info on USB port).
2015-11-14 11:25:29 -08:00
Hixie
8ab229f89c Make the analyzer actually work.
Turns out that ignoring all error lines that match the empty string is a
poor way to go.

Also, we have to update all the example packages now too, since we
analyze them. So just have travis use our update script.

Also, remove flutter_tools' old travis stuff. It's now part of a bigger
repo.

Also, make travis use the dev Dart SDK, since we need the new analyzer.
Stable is way too out of date, e.g. it still complains about libraries
not having names and mixins using 'super', and the strong mode hints are
even more aggressive than on dev.
2015-11-12 15:41:04 -08:00
Hixie
4a5713acc8 Delete analyzer temporary directories 2015-11-12 13:11:41 -08:00
Hixie
9c6e96a3e8 Remove constructor tear-offs
Some of our workflows have no way to silence analyzer warnings, and the
analyzer doesn't yet support constructor tear-offs, so pretend that we
can't use them for now.
2015-11-12 12:39:02 -08:00
Hixie
a0227cab15 flutter analyze command
Other changes in this patch:
- Make the 'flutter' tool say "Updating flutter tool..." when it calls
  pub get, to avoid confusion about what the pub get output is about.
- Make the bash flutter tool call pub get when the revision has
  changed. (This was already happening on Windows.)
- Fix a raft of bugs found by the analyzer.
- Fix some style nits in various bits of code that happened to be near
  things the analyzer noticed.
- Remove the logic in "flutter test" that would run "pub get", since
  upon further reflexion it was determined it didn't work anyway.
  We'll probably have to add better diagnostics here and say to run the
  updater script.
- Remove the native velocity tracker script, since it was testing code
  that has since been removed.

Notes on ignored warnings:
- We ignore warnings in any packages that are not in the Flutter repo or
  in the author's current directory.
- We ignore various irrelevant Strong Mode warnings. We still enable
  strong mode because even though it's not really relevant to our needs,
  it does (more or less accidentally) catch a few things that are
  helpful to us.
- We allow CONSTANTS_LIKE_THIS, since we get some of those from other
  platforms that we are copying for sanity and consistency.
- We allow one-member abstract classes since we have a number of them
  where it's perfectly reasonable.
- We unfortunately still ignore warnings in mojom.dart autogenerated
  files. We should really fix those but that's a separate patch.
- We verify the actual source file when we see the 'Name non-constant
  identifiers using lowerCamelCase.' lint, to allow one-letter variables
  that use capital letters (e.g. for physics expressions) and to allow
  multiple-underscore variable names.
- We ignore all errors on lines that contain the following magic
  incantation and a "#" character:
    // analyzer doesn't like constructor tear-offs
- For all remaining errors, if the line contains a comment of the form
    // analyzer says "..."
  ...then we ignore any errors that have that "..." string in them.
2015-11-12 12:23:29 -08:00
Adam Barth
90991854e0 Add a flutter upgrade command
This command upgrades the version of flutter that you're using and runs
`pub upgrade` to update the transitive dependencies.
2015-11-12 10:16:13 -08:00
Devon Carew
0292180075 also listen for flutter in the adb logs 2015-11-11 21:12:14 -08:00
Devon Carew
3c943d79ec fix an issue parsing 'adb devices' output 2015-11-11 14:14:12 -08:00
Adam Barth
da0a12c611 Rename sky_tools to flutter_tools 2015-11-10 13:20:35 -08:00
Ian Hickson
0a1385d9a9 Merge pull request #66 from Hixie/better-tests
Run 'pub get' the first time the tests are run
2015-11-10 12:26:42 -08:00
Devon Carew
84c273333c Merge pull request #274 from devoncarew/init_tweak
fix a ws issue in the sample app
2015-11-10 10:43:06 -08:00
Adam Barth
b9bc5e790f Merge pull request #87 from alhaad/run_mojo_devtools
Use --devtools-path flag to run_mojo.
2015-11-10 10:27:28 -08:00
Devon Carew
20c2aa1690 fix a ws issue in the sample app 2015-11-10 08:48:03 -08:00
Hixie
bd69e2c405 Run 'pub get' the first time the tests are run 2015-11-09 13:44:04 -08:00
Adam Barth
7e8b111bcc Search all the build configurations for sky_snapshot
Previously, we assumed the first build configuration would have one. Now we
keep looking until we find one. Also, re-ordered the configurations so that
you'll get the Android one if you have both, which is probably what you would
expect.

Fixes #100
2015-11-09 13:31:49 -08:00
Alhaad Gokhale
7b19d08cc3 Use --devtools flag to run_mojo.
That way we can control if we want to use devtools to run on Linux and
also cleanly separate out the two uses.

R=@jamesr
2015-11-09 12:29:07 -08:00
Adam Barth
6e7f575950 flutter start should give better errors when it can't find main
Now we suggest using -t to specify the main Dart file.

Fixes #53
2015-11-09 11:31:11 -08:00
Ian Hickson
3419068cb3 Port test logic to Dart. 2015-11-09 09:00:49 -08:00
Adam Barth
576795dcc6 Add a CONTRIBUTING.md
This document describes the workflow for contributing code to this repository.
2015-11-08 21:56:20 -08:00
Devon Carew
4112f66312 Merge pull request #52 from devoncarew/older_android
support older android devices (>= 17)
2015-11-07 21:59:56 -08:00
Devon Carew
3b9862a52c support older android devices (>= 16) 2015-11-07 21:55:21 -08:00
Adam Barth
2710e0f468 Teach flutter init how to depend on flutter using a relative path 2015-11-07 21:30:26 -08:00
Jeff R. Allen
c8c2d23f26 Avoid use of run-as
Issue #1988 results from run-as not working on some phones,
because of Android issue 58373.

This change removes the need for run-as for running
"flutter start". It is still needed for tracing.
2015-11-07 15:28:01 +06:00
Adam Barth
2ed113430a Add dev/run_tests
This script runs the Flutter unit tests. By default, the script assumes you
have compiled a SkyShell in an "engine/src" that's a peer to the "flutter"
directory.
2015-11-06 23:14:17 -08:00
Devon Carew
a469020983 add a flutter.yaml file to the init template 2015-11-06 20:57:35 -08:00
Adam Barth
113500206a Remove the --http option 2015-11-06 20:17:24 -08:00
Jason Simmons
6e0b59fc09 Add a flag that selects which Android device ID is the target for Flutter commands 2015-11-05 15:53:32 -08:00
Adam Barth
fc8cdf4daf Add a command for running unit tests 2015-11-04 23:43:15 -08:00
Adam Barth
b4fa3fbbf0 Return to the mojo artifacts for Linux 2015-11-04 14:25:47 -08:00
Matt Perry
4ba8a7f077 Seed the RNG before signing the package. 2015-11-04 14:08:24 -05:00
Adam Barth
297e9c33fa Support Jelly Bean 2015-11-04 08:57:33 -08:00
Adam Barth
3804107e2d Enable --no-http by default
We still have the --http option as a fallback for now. Once we're confident the
--no-http version works, we'll drop the --http support.

Also, create the FLX in a temp directory and then delete the temp directory
when we're done. Finally, pull the Linux artifacts from the cloud storage
bucket that the buildbot is uploading to.
2015-11-03 19:39:47 -08:00
Devon Carew
856f04bee2 Merge pull request #169 from devoncarew/daemon
add a persistent daemon/server mode to sky_tools
2015-11-03 16:01:50 -08:00
Devon Carew
7d0a298b0b start a daemon command
wrap up first daemon implementation
2015-11-03 15:58:02 -08:00
Matt Perry
8ab21d7a9c Depend on the new flx 0.0.5 and remove use of deprecated KeyPair. 2015-11-03 15:28:55 -05:00
Hixie
466a91ab41 fix the 'dart:profiler' bug
...by requiring a new version of analyzer.

Also, when the subprocess is terminated unexpectedly, report the actual
problem in more detail.
2015-11-02 13:11:19 -08:00
Devon Carew
5978f1355d Merge pull request #162 from devoncarew/abstract_os
abstract some OS operations
2015-11-02 13:10:43 -08:00
Devon Carew
5dc4a7cce4 abstract some OS operations 2015-11-02 13:07:56 -08:00
Adam Barth
27118f39ea Add a default maniest path for build 2015-11-02 12:54:31 -08:00
Hixie
b43722e79f Handle crashing engine.
When the engine dies unexpectedly during test execution, we have to
terminate any tests running in that engine. Previously, they would just
hang. For some reason that I was never able to satisfactorily explain,
the WebSocket doesn't die in a way I can detect in this case. So
instead, we hand in a future that we only complete when we detect the
server subprocess ends.
2015-11-02 11:19:19 -08:00
Devon Carew
9ee80e4050 Merge pull request #161 from flutter/stack_trace
use stack_trace to create more readable exception traces
2015-11-02 09:24:27 -08:00
Hixie
297b90e250 Try to fix the test framework better than before
The previous attempt to port the 'test' framework to the new framework
wasn't super-successful. This does a better job, hopefully.
2015-11-02 09:09:47 -08:00
Devon Carew
70e20153ab use stack_trace to create more readable exception traces 2015-11-02 00:20:22 -08:00
Adam Barth
94b472ff67 Add a --no-http flag to start command
This flag builds a local FLX file and pushes that to the device instead of
using an HTTP server.
2015-10-31 12:18:03 -07:00
Devon Carew
48c3d01587 fix the stop command 2015-10-30 13:54:39 -07:00
Adam Barth
6e076a3522 Merge pull request #148 from alhaad/update_run_mojo_command
Modify run_mojo command to take path to devtools.
2015-10-29 16:22:36 -07:00
Alhaad Gokhale
dde6bd2034 Use a common flag for both android and linux. 2015-10-29 15:29:44 -07:00
Jason Simmons
5f742b70ba Merge pull request #145 from jason-simmons/init_dir_path
Generalize path handling in flutter init
2015-10-29 14:41:33 -07:00
Alhaad Gokhale
587f6e27fe Modify run_mojo command to take path to devtools.
Made changes as discussed.
R=@jamesr
2015-10-29 14:36:25 -07:00
Jason Simmons
ef2e038b11 Generalize path handling in flutter init
This will make "-o ." work as expected to initialize a project in the
current directory
2015-10-29 14:33:27 -07:00
Todd Volkert
3d7f2126b9 Merge pull request #142 from flutter/issue_141
Wait for sky server to start before starting device
2015-10-29 14:21:07 -07:00
Todd Volkert
a57109beba Wait for sky server to start before starting device
Instead of just waiting for the sky server process to start
before we start the activity on the device, this causes us to
wait for the sky server to actually start listening on its port

Fixes #141
2015-10-29 14:19:15 -07:00
Hixie
79ceee73b2 Port our testing framework to new test library 2015-10-29 14:07:24 -07:00
Devon Carew
494d1e0140 verify that we're running from the root of a project
remove an unused import

review comments

rename st --> stack
2015-10-29 11:30:44 -07:00
Devon Carew
678af9c045 fix some issues found by strong mode 2015-10-28 13:42:46 -07:00
Matt Perry
828b861fce Change signing code to use shared flx package. 2015-10-26 15:14:01 -04:00
Devon Carew
5dbeb8f018 fix tests on windows
remove a runInShell arg on windows when launching pub
2015-10-23 22:44:56 -07:00
Nathan Kerr
bfeaaa8fb7 Web paths should always replace \ with / 2015-10-23 14:04:09 -07:00
Nathan Kerr
54e45e2b56 Don't rely on external shasum program to calculate sum of the APK.
Windows has no direct way to kill a process based on port. Uses netstats and loops through the results to find the correct process to kill.

Also modify Process.run for the server to runInShell if on Windows.

Style nits.
2015-10-23 13:06:26 -07:00
Chinmay Garde
21f91bda52 Merge pull request #115 from chinmaygarde/master
Avoid script snapshot creation if the --precompiled flag is set during builds
2015-10-20 21:44:52 -07:00
Devon Carew
d4940c5cd4 set a min. dep of sdk 1.13 2015-10-20 19:01:05 -07:00
Chinmay Garde
9a67954b66 Avoid script snapshot creation if the --precompiled flag is set during builds 2015-10-20 18:50:19 -07:00
Matt Perry
b458935b84 Support signing flx packages with ECDSA key pair
Adds a --private-key option to the build command, which specifies an ECDSA
private key. When this is provided along with a manifest, the manifest is
prepended to the .flx package and signed with the private key. The manifest
also includes a SHA-256 hash of the zipped content portion of the .flx package.

This is used by the Flutter updater package, to verify that updates are
from the right publisher.
2015-10-19 16:08:53 -04:00
Adam Barth
5670243b53 Sanity check --local-build directory
Fixes https://github.com/flutter/engine/issues/1613
2015-10-19 09:52:56 -07:00
Devon Carew
bb1da703a6 return exit codes on failures 2015-10-17 11:50:23 -07:00
Adam Barth
3c9c31332a run_mojo can't find ArtifactStore.packageRoot
The `run_mojo` command doesn't integrate with `FlutterCommand` and doesn't
understand how to download its toolchain components ahead of time. Eventually
we should teach `run_mojo` how to integrate with the `Toolchain` class, but
until then, we can fix the regression by eagerly setting
`ArtifactStore.packageRoot` again.

Fixes https://github.com/domokit/mojo/issues/475
2015-10-15 20:06:30 -07:00
Adam Barth
dff0edbc97 init command errors out
We were checking for a pubspec.yaml too early.
2015-10-14 15:25:58 -07:00
Adam Barth
047038b95a Support non-rooted Android devices
Now we use a debuggable APK and chmod the installation directory to be world
readable/writable.

Fixes https://github.com/flutter/engine/issues/126
2015-10-14 13:57:55 -07:00
Adam Barth
80f30d9176 Don't dump a stack trace for a usage exception
Instead, just print the usage.
2015-10-13 13:37:41 -07:00
Adam Barth
f0a1632dd6 Add a --local-build flag to detect engine src paths
A common use case for members of the Flutter team is to have a dependency
override for the flutter package that points back into the engine src tree.
We can use that override to automatically detect the engine src path, which
makes the command line shorter.
2015-10-13 10:35:53 -07:00
Adam Barth
12f75817ce Refactor the build command so that it can be used internally
Instead of calling through `pub` to invoke build, this patch refactors the
build command so that it can be called directly.
2015-10-13 10:00:06 -07:00
Adam Barth
d9af939995 Improve error message when missing the package-root 2015-10-12 14:01:05 -07:00
Adam Barth
9c4835100b Handle the case of a non-connected Android device better
Previous we dumped a stack trace. Now we produce a more sensible error.
2015-10-12 11:05:09 -07:00
Adam Barth
0e06feee01 Add some print statements to smooth first run
This patch adds a couple print statements to explain why the first run of
`flutter start` takes a while. (We need to download the APK and install it on
the device.)
2015-10-12 01:33:03 -07:00
Adam Barth
8df5e9f738 Polish up some error handling
This patch improves the error handling for several arbitrary issues I
encountered while experimenting with the tool this evening.
2015-10-12 00:55:13 -07:00
Adam Barth
bdd20661d7 Teach sky_tools about prebuilt artifacts
This patch makes `flutter start` work without a clone of the engine git
repository. Making this work pulled a relatively large refactor of how the
commands interact with application packages and devices. Now commands that want
to interact with application packages or devices inherit from a common base
class that holds stores of those objects as members.

In production, the commands download and connect to devices based on the build
configuration stored on the FlutterCommandRunner. In testing, these fields are
used to mock out the real application package and devices.
2015-10-12 00:03:55 -07:00
Ian Fischer
a6a3f212ee IOSSimulator implementation.
Also fixes some minor bugs with iOS and Android interactions.
2015-10-11 19:36:06 -07:00
Adam Barth
4191ed4921 Don't mention --install
The --install command isn't needed anymore. We automatically detect when
we need to install the APK.
2015-10-11 12:33:59 -07:00
Adam Barth
25eaaefd26 Switch init command over to package:flutter 2015-10-11 11:57:22 -07:00
Adam Barth
9148e1779f Expose main via executable.dart
Expose the main entry point for the tools via the library lets us run the tools
from the Flutter package, which simplifies the setup for end developers because
they don't need to declare a dependency on sky_tools directly.
2015-10-10 00:15:21 -07:00
Devon Carew
7ba6342f88 remove an unused import 2015-10-10 00:00:50 -07:00
Adam Barth
287817f224 Move Command subclasses into commands directory
I'm trying to get a feel for the code by writing some simple cleanup patches.
2015-10-09 23:22:20 -07:00
Devon Carew
f7646679dc update the starter app template 2015-10-09 16:55:43 -07:00
Ian Fischer
51f1eb3581 Merge pull request #82 from iansf/ios_listen
Get iOS devices working on Mac if you specify sky-src-path.
2015-10-09 16:51:03 -07:00
Ian Fischer
ae32410995 Get iOS devices working on Mac if you specify sky-src-path. 2015-10-09 16:23:33 -07:00
Adam Barth
99de081860 Merge pull request #77 from chinmaygarde/master
Fix Flutter project template
2015-10-09 09:38:42 -07:00
Ian Fischer
f4ec459c23 Add support for log commands on iOS. 2015-10-08 15:10:25 -07:00
Ian Fischer
43aaf50e05 Merge pull request #78 from iansf/ios_start
Add implementation of start and stop commands for iOS.
2015-10-07 15:45:34 -07:00
Ian Fischer
844678ddce Add implementation of start and stop commands for iOS. 2015-10-07 15:44:02 -07:00
Ian Fischer
72cc4d6fde Don’t give a scary error about not being able to run on Android if there’s no Android device connected. 2015-10-07 15:29:13 -07:00
Chinmay Garde
d92f3fedde Fix Flutter project template 2015-10-07 11:26:55 -07:00
James Robinson
fbb1f866d4 Merge pull request #73 from afandria/patch-1
Forward additionalArgs in run_mojo.dart
2015-10-06 19:53:28 -07:00
Ian Fischer
97f62f89c1 Merge pull request #76 from iansf/ios_start
Just log, don’t exit when the user is missing access to a command. Prevents inappropriately-failing tests.
2015-10-06 17:34:24 -07:00
Ian Fischer
7990e874df Just log, don’t exit when the user is missing access to a command. Prevents inappropriately-failing tests. 2015-10-06 16:19:06 -07:00
Devon Carew
5c6c3d9d81 ws 2015-10-06 14:52:45 -07:00
Alex Fandrianto
60cf54d6c2 Forward additionalArgs in run_mojo.dart
In 0.0.15, additional cmdline arguments were not dropped, but now in 0.0.16, the arguments are no longer forwarded.
This patchset would restore this forwarding functionality.

For example, the following command is intended to pass `enable-multiprocess` to the mojo_shell.
`enable-multiprocess` in 0.0.16 does not get passed along, but this patchset would allow it to once again.

pub run sky_tools -v --very-verbose run_mojo \
	--mojo-path $MOJO_DIR/src \
	--app app.flx --android \
	-- \
	--enable-multiprocess
2015-10-06 13:14:22 -07:00
Ian Fischer
12192d00c1 Beginning implementation of IOSDevice. Implements list and install.
Also update tests to be compatible with the presence of iOS and add tests for list and install.
2015-10-06 11:46:29 -07:00
Devon Carew
0364590b83 delay looking for android devices 2015-10-06 11:36:48 -07:00
Chinmay Garde
a15e857658 Address PR concerns 2015-10-05 16:52:16 -07:00
Chinmay Garde
5c922df835 Use the App widget in the Flutter app template 2015-10-05 16:14:54 -07:00
Chinmay Garde
31498881ce Convert default project template to fn3 2015-10-05 15:40:36 -07:00
Chinmay Garde
6f640275bd Update dart project template 2015-10-05 14:58:29 -07:00
Ian Fischer
d07ca92995 Basic sky_tools list command, Android implementation, and test. 2015-10-01 08:43:57 -07:00
Ian Fischer
b8085cd033 Add sky_tools trace command, Android implementation, and basic test. 2015-09-30 14:02:29 -07:00
Ian Fischer
00bed774ce Add listen command and basic test, and don’t do unnecessary repeated work when listening or poking the android server. 2015-09-29 17:10:47 -07:00
Ian Fischer
a6635489f5 Add optional prefix to runCommandAndStreamOutput for logs commands. 2015-09-29 14:15:29 -07:00
Ian Fischer
5e11889160 Add logs command and android implementation. 2015-09-29 11:51:33 -07:00
Ian Fischer
61bfe5ce84 Unify process_wrapper and process to have the same api and logging styles.
Also add unchecked runSync wrapper and use it in places where command failures don’t matter.
2015-09-29 10:30:13 -07:00
Ian Fischer
8cac55a4e2 Add sky_tools start command and associated android support. 2015-09-29 09:54:10 -07:00
Ian Fischer
6bfd60f217 Merge pull request #56 from iansf/android_stop
Add stop command and supporting Android support.
2015-09-29 09:28:23 -07:00
James Robinson
f7e20f4a46 Check that the platform is linux before downloading linux-x64 binaries 2015-09-25 17:42:28 -07:00
James Robinson
2fe4484d9c Merge pull request #57 from jamesr/fix_build
Fix sky_tools build command to look for package-root in global args
2015-09-25 17:39:06 -07:00
James Robinson
9e2a83cfa3 Fix sky_tools build command to look for package-root in global args 2015-09-25 16:25:48 -07:00
Ian Fischer
fa59233746 Add stop command and supporting Android support. 2015-09-25 16:16:19 -07:00
James Robinson
ed2877c093 Add --checked flag to mojo_run that runs sky_viewer in checked mode
Also refactors the command line assembling to make a bit more sense.

Fixes #53
2015-09-25 16:14:12 -07:00
James Robinson
9996d4255e Configure ArtifactStore for all commands and make 'package-root' universal
This makes the 'package-root' option universal for sky_tools and configures the
ArtifactStore with it statically at startup. The actual sky_engine revision
is computed on demand.
2015-09-25 15:56:20 -07:00
James Robinson
be0b3e61be Merge pull request #52 from nlacasse/release-debug
run_mojo: Add --mojo-release and --mojo-debug flags.
2015-09-25 15:07:04 -07:00
Nicolas Lacasse
f600beeb70 run_mojo: Add --mojo-release and --mojo-debug flags.
The flags control which build of mojo to run (Debug or Release).
Default is Release.
2015-09-25 14:51:03 -07:00
Devon Carew
c35c06e6f2 rename sky ==> flutter in the starting app template 2015-09-25 13:28:21 -07:00
James Robinson
5c9413d0f6 Merge pull request #49 from jamesr/cached_file_location
Make cached artifact location mirror local builds more closely
2015-09-25 12:28:39 -07:00
James Robinson
b7fc56eb31 Make cached artifact location mirror local builds more closely 2015-09-25 11:27:07 -07:00
James Robinson
36c03cb40e Fix sky_tools cache clear command 2015-09-25 11:13:15 -07:00
Ian Fischer
3638f9380d Merge pull request #46 from iansf/android_start
Refactor all the commands to be Commands from the Args package.  Also use CommandRunner for the top-level command.
2015-09-24 16:01:19 -07:00
Ian Fischer
cae053c353 Refactor all the commands to be Commands from the Args package. Also use CommandRunner for the top-level command. 2015-09-24 15:51:23 -07:00
James Robinson
206104b820 Update mojo_run to no longer embed a window manager
sky_viewer.mojo no longer needs a window manager embedding as of
sky_engine 0.0.27, so this updates the sky_tools run_mojo command so it works
again. This really should be expressed in the pubspec dependencies to avoid
broken combinations but that needs to happen on the sky side.
2015-09-24 12:26:11 -07:00
James Robinson
70c1856c06 Merge pull request #45 from jamesr/run_mojo_args
Forward additional arguments to runner in run_mojo command
2015-09-23 10:33:06 -07:00
Devon Carew
f554ba4176 Merge pull request #39 from devoncarew/path_issue
fix a path issue when creating new flutter apps
2015-09-23 09:50:16 -07:00
James Robinson
be4a9d941f Forward additional arguments to runner in run_mojo command 2015-09-23 09:48:20 -07:00
James Robinson
f735604aca Add cache command to sky_tools with subcommands for populating/clearing
This adds the following commands to sky_tools:
  sky_tools cache clear: Nukes all local artifacts in the cache
  sky_tools cache populate: Populates the cache with all known artifacts

This is useful both to fix busted caches and to make sure that the cache is
fully populated so that subsequent operations can proceed without needing
network access.
2015-09-22 20:35:31 -07:00
James Robinson
0758c5922f Instantiate ArtifactStore explicit with packageRoot
This teaches commands that need binary artifacts to explicitly instantiate an
instance of the ArtifactStore with the appropriate packageRoot string. The
ArtifactStore can then remember the package root and compute the engine
revision when created and remember those for subsequence calls.
2015-09-22 17:17:01 -07:00
James Robinson
e5d65bcc60 Merge pull request #40 from jamesr/run_mojo_android
Teach sky_tools mojo_run to run on Android (using mojo devtools)
2015-09-22 15:29:34 -07:00
James Robinson
20e5355239 Teach sky_tools mojo_run to run on Android (using mojo devtools)
This teaches sky_tools mojo_run --android to invoke mojo's devtool's mojo_run
script with the right flags for invoking sky_viewer on android. This tells the
devtools script to load sky_viewer.mojo from https://storage.googleapis.com/...
and to load app.flx (or whatever the developer specifies as --app) from the
filesystem using the devtools http server.
2015-09-22 15:25:42 -07:00
Ian Fischer
0cc758d24e Set up plumbing for getting relevant paths to the right places without too much global state.
`dart bin/sky_tools.dart --debug --sky-src-path=/path/to/sky/src/ install` now works.
2015-09-22 11:17:39 -07:00
Devon Carew
1532005ee6 fix a path issue when creating new flutter apps 2015-09-22 10:53:55 -07:00
James Robinson
20d9d6a9e2 Make sky_tools help strings consistently refer to Flutter app, not package 2015-09-22 10:38:54 -07:00
James Robinson
542da8ccd5 Adds a run_mojo command that downloads sky_viewer.mojo and runs an flx in it
This initial version assumes the developer has mojo_shell and all other services
sitting on disk somewhere and that they're on linux and only want to run on
linux. This can be generalized down the line to support more use cases. This
downloads the sky_viewer.mojo corresponding to the packages/sky_engine/REVISION
in the developer's directory, so they can specify whatever revision they want.
sky_tools run_mojo downloads sky_viewer.mojo into its cache directory if it is
not present and constructs a command line to pass to mojo_shell that maps the
shebang stamped into the flx to the downloaded sky_viewer.mojo.

Since sky_viewer.mojo lives in the cloud and mojo_shell can load from the cloud
this could also map to an https URL. This should likely be an option.
2015-09-21 22:06:05 -07:00
Devon Carew
a4ff100408 check all the dart code in the project, not just selected libraries 2015-09-18 20:59:32 -07:00
James Robinson
a320e712de Address review feedback from pull request #30 2015-09-18 17:03:51 -07:00
James Robinson
7f8319fd25 Merge pull request #30 from jamesr/download_sky_snapshot
Download sky_snapshot from the cloud
2015-09-18 17:02:25 -07:00
James Robinson
cbc35dfacb Download sky_snapshot from the cloud
This adds logic to download and use the sky_snapshot binary from
Google cloud storage when running the 'sky_tools build' command.
The downloaded binary is put into lib/cache/... The binary is
chosen to match the REVISION in the sky_engine package in the
packages directory of whichever package the user wishes to
build a flx from.

Known issues:
*) Assumes linux-x64 host
*) Assumes download will always produce valid executable
*) No clearing of stale cache entries
2015-09-18 16:58:57 -07:00
Ian Fischer
670f14e0f8 Add missing semicolon 2015-09-18 16:29:47 -07:00
James Robinson
0b2a946b23 Prepend mojo shebang to skyx files
skyx files are zips, so they can have anything at the start. Having
a shebang line at the start makes it easier to run skyx files in a mojo
environment.
2015-09-17 15:27:33 -07:00
Adam Barth
3e9ceec0b1 Improve sky_tools build so that it works from sky_engine
With this patch, we can switch over to using this command from the build system
in the sky_engine repo.
2015-09-17 15:12:15 -07:00
Adam Barth
a75e79f0ce Address review comments from @iansf 2015-09-17 14:02:55 -07:00
Adam Barth
cf41a63396 Add a build command to sky_tools
This command will produce an flx package. Currently, this command doesn't work
because we don't have the Flutter compiler downloaded from Google storage yet.
A future patch will make that happen.
2015-09-17 13:37:53 -07:00
Adam Barth
f379a01946 Handle subprocess crashes during testing 2015-09-16 16:47:22 -07:00
Adam Barth
76a51409c5 Remove stray }
This stray line was causing an analyzer error.
2015-09-16 14:35:09 -07:00
Ian Fischer
c5ea40980a Most of the infrastructure needed to install an APK on Android. 2015-09-16 12:56:10 -07:00
Ian Fischer
d8d87f1833 Add very-verbose flag and automatically log some more process-related things in verbose and very-verbose modes. 2015-09-16 10:57:15 -07:00
Ian Fischer
b72d67a8fe Private setup methods for AndroidDevice. 2015-09-15 17:20:49 -07:00
Devon Carew
e6b45c5023 use mokito in the init tests 2015-09-11 16:12:27 -07:00
Ian Fischer
ab441685e2 Test install command 2015-09-11 15:26:55 -07:00
Ian Fischer
81746e980c Initial sketch of install command and what devices look like. 2015-09-11 12:44:47 -07:00
Ian Fischer
384ded5b91 Begin refactoring API around CommandHandlers and using it consistently in subclasses.
Also applies autoreformatting to init.dart.
2015-09-10 14:50:49 -07:00
Adam Barth
01afe5a612 Update loadVMFileHook to the real location 2015-08-20 19:46:48 -07:00
Adam Barth
f77983baa8 Adds experimental pub run sky_tools:sky_test command
This command uses package:test to run Dart tests with sky_shell.  For this to
work, we need https://github.com/dart-lang/test/tree/hacky-loader-hook to land.
We're also not smart enough to find sky_shell ourselves yet. Instead, we take
the path as input using an environment variable. Eventually, we'll be able to
get the sky_shell executable from package:sky_engine, but we don't yet ship
that executable.
2015-08-19 23:57:41 -07:00
Eric Seidel
9b5bd5805b Add a dependency on sky_tools
This is needed to make pub run sky_tools:sky_server work.
Partial fix for https://github.com/domokit/sky_engine/issues/539
2015-08-10 17:29:38 -07:00
Devon Carew
a03deafac8 update the sky_tools template and readme 2015-08-09 23:50:16 -07:00
Devon Carew
987ce972d6 use mustache4dart 2015-08-07 16:42:10 -07:00
Devon Carew
2efd13159c add a sky_tools init command to create a new project 2015-08-07 14:20:14 -07:00