[flutter_plugin_tools] Adjust diff logging (#4312)
diff --git a/script/tool/lib/src/common/git_version_finder.dart b/script/tool/lib/src/common/git_version_finder.dart index 2c9519e..a0a7a32 100644 --- a/script/tool/lib/src/common/git_version_finder.dart +++ b/script/tool/lib/src/common/git_version_finder.dart
@@ -11,7 +11,7 @@ /// Finding diffs based on `baseGitDir` and `baseSha`. class GitVersionFinder { /// Constructor - GitVersionFinder(this.baseGitDir, this.baseSha); + GitVersionFinder(this.baseGitDir, String? baseSha) : _baseSha = baseSha; /// The top level directory of the git repo. /// @@ -19,7 +19,7 @@ final GitDir baseGitDir; /// The base sha used to get diff. - final String? baseSha; + String? _baseSha; static bool _isPubspec(String file) { return file.trim().endsWith('pubspec.yaml'); @@ -32,10 +32,9 @@ /// Get a list of all the changed files. Future<List<String>> getChangedFiles() async { - final String baseSha = await _getBaseSha(); + final String baseSha = await getBaseSha(); final io.ProcessResult changedFilesCommand = await baseGitDir .runCommand(<String>['diff', '--name-only', baseSha, 'HEAD']); - print('Determine diff with base sha: $baseSha'); final String changedFilesStdout = changedFilesCommand.stdout.toString(); if (changedFilesStdout.isEmpty) { return <String>[]; @@ -49,7 +48,7 @@ /// at the revision of `gitRef` (defaulting to the base if not provided). Future<Version?> getPackageVersion(String pubspecPath, {String? gitRef}) async { - final String ref = gitRef ?? (await _getBaseSha()); + final String ref = gitRef ?? (await getBaseSha()); io.ProcessResult gitShow; try { @@ -63,9 +62,11 @@ return versionString == null ? null : Version.parse(versionString); } - Future<String> _getBaseSha() async { - if (baseSha != null && baseSha!.isNotEmpty) { - return baseSha!; + /// Returns the base used to diff against. + Future<String> getBaseSha() async { + String? baseSha = _baseSha; + if (baseSha != null && baseSha.isNotEmpty) { + return baseSha; } io.ProcessResult baseShaFromMergeBase = await baseGitDir.runCommand( @@ -76,6 +77,8 @@ baseShaFromMergeBase = await baseGitDir .runCommand(<String>['merge-base', 'FETCH_HEAD', 'HEAD']); } - return (baseShaFromMergeBase.stdout as String).trim(); + baseSha = (baseShaFromMergeBase.stdout as String).trim(); + _baseSha = baseSha; + return baseSha; } }
diff --git a/script/tool/lib/src/common/plugin_command.dart b/script/tool/lib/src/common/plugin_command.dart index 514a90b..5d5cbd9 100644 --- a/script/tool/lib/src/common/plugin_command.dart +++ b/script/tool/lib/src/common/plugin_command.dart
@@ -314,6 +314,9 @@ if (runOnChangedPackages) { final GitVersionFinder gitVersionFinder = await retrieveVersionFinder(); + final String baseSha = await gitVersionFinder.getBaseSha(); + print( + 'Running for all packages that have changed relative to "$baseSha"\n'); final List<String> changedFiles = await gitVersionFinder.getChangedFiles(); if (!_changesRequireFullTest(changedFiles)) {
diff --git a/script/tool/lib/src/publish_plugin_command.dart b/script/tool/lib/src/publish_plugin_command.dart index 6da5170..769b9e8 100644 --- a/script/tool/lib/src/publish_plugin_command.dart +++ b/script/tool/lib/src/publish_plugin_command.dart
@@ -159,6 +159,9 @@ Stream<PackageEnumerationEntry> getPackagesToProcess() async* { if (getBoolArg(_allChangedFlag)) { final GitVersionFinder gitVersionFinder = await retrieveVersionFinder(); + final String baseSha = await gitVersionFinder.getBaseSha(); + print( + 'Publishing all packages that have changed relative to "$baseSha"\n'); final List<String> changedPubspecs = await gitVersionFinder.getChangedPubSpecs();
diff --git a/script/tool/test/common/plugin_command_test.dart b/script/tool/test/common/plugin_command_test.dart index 3ef0d3b..13724e2 100644 --- a/script/tool/test/common/plugin_command_test.dart +++ b/script/tool/test/common/plugin_command_test.dart
@@ -398,12 +398,19 @@ ]; final Directory plugin1 = createFakePlugin('plugin1', packagesDir); createFakePlugin('plugin2', packagesDir); - await runCapturingPrint(runner, <String>[ + final List<String> output = await runCapturingPrint(runner, <String>[ 'sample', '--base-sha=master', '--run-on-changed-packages' ]); + expect( + output, + containsAllInOrder(<Matcher>[ + contains( + 'Running for all packages that have changed relative to "master"'), + ])); + expect(command.plugins, unorderedEquals(<String>[plugin1.path])); });
diff --git a/script/tool/test/publish_plugin_command_test.dart b/script/tool/test/publish_plugin_command_test.dart index 2ea4fc7..14e99a1 100644 --- a/script/tool/test/publish_plugin_command_test.dart +++ b/script/tool/test/publish_plugin_command_test.dart
@@ -466,6 +466,8 @@ expect( output, containsAllInOrder(<Matcher>[ + contains( + 'Publishing all packages that have changed relative to "HEAD~"'), contains('Running `pub publish ` in ${pluginDir1.path}...'), contains('Running `pub publish ` in ${pluginDir2.path}...'), contains('plugin1 - \x1B[32mpublished\x1B[0m'),