Ian Hickson e768c92fbc
Add many more global analyses. (#47875)
* Update packages.

* Add many more global analyses.

* Catch trailing spaces and trailing newlines in all text files.
  Before we were only checking newly added files, but that means we
  missed some.

* Port the trailing spaces logic to work on Windows too.

* Correct all the files with trailing spaces and newlines.

* Refactor some of the dev/bots logic into a utils.dart library.
  Notably, the "exit" and "print" shims for testing are now usable
  from test.dart, analyze.dart, and run_command.dart.

* Add an "exitWithError" function that prints the red lines and
  then exits. This is the preferred way to exit from test.dart,
  analyze.dart, and run_command.dart.

* More consistency in the output of analyze.dart.

* Refactor analyze.dart to use the _allFiles file enumerating logic
  more widely.

* Add some double-checking logic to the _allFiles logic to catch
  cases where changes to that logic end up catching fewer files
  than expected (helps prevent future false positives).

* Add a check to prevent new binary files from being added to
  the repository. Grandfather in the binaries that we've already
  added.

* Update all the dependencies (needed because we now import crypto in
  dev/bots/analyze.dart).
2019-12-30 17:12:19 -08:00
..
2019-11-27 15:04:02 -08:00

Flutter Tools

Command line developer tools for building Flutter applications.

Working on Flutter Tools

Be sure to follow the instructions on CONTRIBUTING.md to set up your development environment.

Setup

First, ensure that the Dart SDK and other necessary artifacts are available by invoking the Flutter Tools wrapper script. In this directory run:

$ ../../bin/flutter --version

Running

To run Flutter Tools from source, in this directory run:

$ ../../bin/cache/dart-sdk/bin/dart bin/flutter_tools.dart

followed by command line arguments, as usual.

Analyzing

To run the analyzer on Flutter Tools, in this directory run:

$ ../../bin/flutter analyze

Testing

To run the tests in the test/ directory, first ensure that there are no connected devices. Then, in this directory run:

$ ../../bin/cache/dart-sdk/bin/pub run test

The tests in test/integration.shard are slower to run than the tests in test/general.shard. To run only the tests in test/general.shard, in this directory run:

$ ../../bin/cache/dart-sdk/bin/pub run test test/general.shard

To run the tests in a specific file, run:

$ ../../bin/cache/dart-sdk/bin/pub run test test/general.shard/utils_test.dart

When running all of the tests, it is a bit faster to use build_runner. First, set FLUTTER_ROOT to the root of your Flutter checkout. Then, in this directory run:

$ ../../bin/cache/dart-sdk/bin/pub run build_runner test

This is what we do in the continuous integration bots.

Forcing snapshot regeneration

To force the Flutter Tools snapshot to be regenerated, delete the following files:

$ rm ../../bin/cache/flutter_tools.stamp ../../bin/cache/flutter_tools.snapshot