Unverified Commit 43c307b3 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

Revert "[devicelab] remove globals and dependency tracking from technical debt (#80946)" (#80958)

This reverts commit dc71d713.
parent dc71d713
...@@ -82,6 +82,43 @@ Future<double> findCostsForRepo() async { ...@@ -82,6 +82,43 @@ Future<double> findCostsForRepo() async {
return total; return total;
} }
Future<int> findGlobalsForTool() async {
final Process git = await startProcess(
'git',
<String>['ls-files', '--full-name', path.join(flutterDirectory.path, 'packages', 'flutter_tools')],
workingDirectory: flutterDirectory.path,
);
int total = 0;
await for (final String entry in git.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()))
total += await findGlobalsForFile(File(path.join(flutterDirectory.path, entry)));
final int gitExitCode = await git.exitCode;
if (gitExitCode != 0)
throw Exception('git exit with unexpected error code $gitExitCode');
return total;
}
Future<int> countDependencies() async {
final List<String> lines = (await evalFlutter(
'update-packages',
options: <String>['--transitive-closure'],
)).split('\n');
final int count = lines.where((String line) => line.contains('->')).length;
if (count < 2) // we'll always have flutter and flutter_test, at least...
throw Exception('"flutter update-packages --transitive-closure" returned bogus output:\n${lines.join("\n")}');
return count;
}
Future<int> countConsumerDependencies() async {
final List<String> lines = (await evalFlutter(
'update-packages',
options: <String>['--transitive-closure', '--consumer-only'],
)).split('\n');
final int count = lines.where((String line) => line.contains('->')).length;
if (count < 2) // we'll always have flutter and flutter_test, at least...
throw Exception('"flutter update-packages --transitive-closure" returned bogus output:\n${lines.join("\n")}');
return count;
}
const String _kCostBenchmarkKey = 'technical_debt_in_dollars'; const String _kCostBenchmarkKey = 'technical_debt_in_dollars';
const String _kNumberOfDependenciesKey = 'dependencies_count'; const String _kNumberOfDependenciesKey = 'dependencies_count';
const String _kNumberOfConsumerDependenciesKey = 'consumer_dependencies_count'; const String _kNumberOfConsumerDependenciesKey = 'consumer_dependencies_count';
...@@ -92,6 +129,9 @@ Future<void> main() async { ...@@ -92,6 +129,9 @@ Future<void> main() async {
return TaskResult.success( return TaskResult.success(
<String, dynamic>{ <String, dynamic>{
_kCostBenchmarkKey: await findCostsForRepo(), _kCostBenchmarkKey: await findCostsForRepo(),
_kNumberOfDependenciesKey: await countDependencies(),
_kNumberOfConsumerDependenciesKey: await countConsumerDependencies(),
_kNumberOfFlutterToolGlobals: await findGlobalsForTool(),
}, },
benchmarkScoreKeys: <String>[ benchmarkScoreKeys: <String>[
_kCostBenchmarkKey, _kCostBenchmarkKey,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment