
This auto-formats all *.dart files in the repository outside of the `engine` subdirectory and enforces that these files stay formatted with a presubmit check. **Reviewers:** Please carefully review all the commits except for the one titled "formatted". The "formatted" commit was auto-generated by running `dev/tools/format.sh -a -f`. The other commits were hand-crafted to prepare the repo for the formatting change. I recommend reviewing the commits one-by-one via the "Commits" tab and avoiding Github's "Files changed" tab as it will likely slow down your browser because of the size of this PR. --------- Co-authored-by: Kate Lovett <katelovett@google.com> Co-authored-by: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
85 lines
3.5 KiB
Dart
85 lines
3.5 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'dart:io' show Directory, File;
|
|
|
|
import 'package:file/file.dart' as fs;
|
|
import 'package:file/local.dart';
|
|
import 'package:path/path.dart' as path;
|
|
|
|
import '../run_command.dart';
|
|
import '../utils.dart';
|
|
|
|
/// Executes the test suite for the flutter/packages repo.
|
|
Future<void> flutterPackagesRunner() async {
|
|
Future<void> runAnalyze() async {
|
|
printProgress('${green}Running analysis for flutter/packages$reset');
|
|
final Directory checkout = Directory.systemTemp.createTempSync('flutter_packages.');
|
|
await runCommand('git', const <String>[
|
|
'-c',
|
|
'core.longPaths=true',
|
|
'clone',
|
|
'https://github.com/flutter/packages.git',
|
|
'.',
|
|
], workingDirectory: checkout.path);
|
|
final String packagesCommit = await getFlutterPackagesVersion(flutterRoot: flutterRoot);
|
|
await runCommand('git', <String>[
|
|
'-c',
|
|
'core.longPaths=true',
|
|
'checkout',
|
|
packagesCommit,
|
|
], workingDirectory: checkout.path);
|
|
// Prep the repository tooling.
|
|
// This test does not use tool_runner.sh because in this context the test
|
|
// should always run on the entire packages repo, while tool_runner.sh
|
|
// is designed for flutter/packages CI and only analyzes changed repository
|
|
// files when run for anything but master.
|
|
final String toolDir = path.join(checkout.path, 'script', 'tool');
|
|
await runCommand('dart', const <String>['pub', 'get'], workingDirectory: toolDir);
|
|
final String toolScript = path.join(toolDir, 'bin', 'flutter_plugin_tools.dart');
|
|
await runCommand('dart', <String>[
|
|
'run',
|
|
toolScript,
|
|
'analyze',
|
|
// Fetch the oldest possible dependencies, rather than the newest, to
|
|
// insulate flutter/flutter from out-of-band failures when new versions
|
|
// of dependencies are published. This compensates for the fact that
|
|
// flutter/packages doesn't use pinned dependencies, and for the
|
|
// purposes of this test using old dependencies is fine. See
|
|
// https://github.com/flutter/flutter/issues/129633
|
|
'--downgrade',
|
|
'--custom-analysis=script/configs/custom_analysis.yaml',
|
|
], workingDirectory: checkout.path);
|
|
}
|
|
|
|
await selectSubshard(<String, ShardRunner>{'analyze': runAnalyze});
|
|
}
|
|
|
|
/// Returns the commit hash of the flutter/packages repository that's rolled in.
|
|
///
|
|
/// The flutter/packages repository is a downstream dependency, it is only used
|
|
/// by flutter/flutter for testing purposes, to assure stable tests for a given
|
|
/// flutter commit the flutter/packages commit hash to test against is coded in
|
|
/// the bin/internal/flutter_packages.version file.
|
|
///
|
|
/// The `filesystem` parameter specified filesystem to read the packages version file from.
|
|
/// The `packagesVersionFile` parameter allows specifying an alternative path for the
|
|
/// packages version file, when null [flutterPackagesVersionFile] is used.
|
|
Future<String> getFlutterPackagesVersion({
|
|
fs.FileSystem fileSystem = const LocalFileSystem(),
|
|
String? packagesVersionFile,
|
|
required String flutterRoot,
|
|
}) async {
|
|
final String flutterPackagesVersionFile = path.join(
|
|
flutterRoot,
|
|
'bin',
|
|
'internal',
|
|
'flutter_packages.version',
|
|
);
|
|
|
|
final File versionFile = fileSystem.file(packagesVersionFile ?? flutterPackagesVersionFile);
|
|
final String versionFileContents = await versionFile.readAsString();
|
|
return versionFileContents.trim();
|
|
}
|