* Pin dependencies in docker file.
The docker file had two dependencies that were not locked. An npm
dependency and the debian base image. This PR pins those two
dependencies.
* Use the slim version of debian image.
* Use image with bigger disk to build docker images.
* remove web_engine_tests from cirrus.
This adds a smoke test for every single API example. It also fixes 17 tests that had bugs in them, or were otherwise broken, and even fixes one actual bug in the framework, and one limitation in the framework.
The bug in the framework is that NetworkImage's _loadAsync method had await response.drain<List<int>>();, but if the response is null, it will throw a cryptic exception saying that Null can't be assigned to List<int>. The fix was just to use await response.drain<void>(); instead.
The limitation is that RelativePositionedTransition takes an Animation<Rect> rect parameter, and if you want to use a RectTween with it, the value emitted there is Rect?, and one of the examples was just casting from Animation<Rect> to Animation<Rect?>, which is invalid, so I modified RelativePositionedTransition to take a Rect? and just use Rect.zero if the rect is null.
This change updates the Dockerfile for Cirrus builds:
- Switch to a newer stable Debian build (bullseye instead of stretch)
- Eliminates the very old (10) nodejs install in favor of the npm package
- Installs OpenJDK so that Android SDK manager can run on bullseye
- Installs the prerequisites for Linux desktop flutter run.
The motivation for this change was to include the dependencies for Linux desktop flutter run so that I can run tests that use desktop Flutter apps, but that needs cmake 3.10 or later, and stretch doesn't have a cmake that new. Of course, there's also no openjdk-8-jre for bullseye, so I used OpenJDK from JFrog instead.
* Add cmdline tools to docker image.
This is to make the flutter doctor new checks to pass.
Bug: https://github.com/flutter/flutter/issues/82565
* Use correct package name.
* Add version to sdkmanager command.
* 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).
In https://github.com/flutter/flutter/pull/46035, we fixed the docker
tag to be a legal tag during build. This PR makes the corresponding
change to the tag during upload. Without this, we build the right tag,
but then we try to upload the wrong tag.
* Update project.pbxproj files to say Flutter rather than Chromium
Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.
* Update the copyright notice checker to require a standard notice on all files
* Update copyrights on Dart files. (This was a mechanical commit.)
* Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.
Some were already marked "The Flutter Authors", not clear why. Their
dates have been normalized. Some were missing the blank line after the
license. Some were randomly different in trivial ways for no apparent
reason (e.g. missing the trailing period).
* Clean up the copyrights in non-Dart files. (Manual edits.)
Also, make sure templates don't have copyrights.
* Fix some more ORGANIZATIONNAMEs