Commit Graph

209 Commits

Author SHA1 Message Date
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
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
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
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
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