* 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).
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