From 6da8135c06a04bb922a9ecbfa97a111b89c604b5 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Sun, 27 Jun 2021 20:14:27 -0700 Subject: [PATCH 1/3] ignore flutter_plugin_tools --- script/tool/CHANGELOG.md | 4 ++ .../tool/lib/src/publish_plugin_command.dart | 8 ++++ script/tool/pubspec.yaml | 2 +- .../test/publish_plugin_command_test.dart | 46 +++++++++++++++++++ 4 files changed, 59 insertions(+), 1 deletion(-) diff --git a/script/tool/CHANGELOG.md b/script/tool/CHANGELOG.md index 94514e38103a..2bcbb8fd58b6 100644 --- a/script/tool/CHANGELOG.md +++ b/script/tool/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.0+1 + +- `publish-plugins` ignores `flutter_plugin_tools`, see: https://github.com/flutter/flutter/issues/85430 + ## 0.3.0 - Add a --build-id flag to `firebase-test-lab` instead of hard-coding the use of diff --git a/script/tool/lib/src/publish_plugin_command.dart b/script/tool/lib/src/publish_plugin_command.dart index 622a1a3cb133..18b6ff0ed742 100644 --- a/script/tool/lib/src/publish_plugin_command.dart +++ b/script/tool/lib/src/publish_plugin_command.dart @@ -290,6 +290,14 @@ Safe to ignore if the package is deleted in this commit. } final Pubspec pubspec = Pubspec.parse(pubspecFile.readAsStringSync()); + + if (pubspec.name == 'flutter_plugin_tools') { + // Ignore flutter_plugin_tools package when running publishing through flutter_plugin_tools. + // TODO(cyanglaz): Make the tool also auto publish flutter_plugin_tools package. + // https://github.com/flutter/flutter/issues/85430 + return _CheckNeedsReleaseResult.noRelease; + } + if (pubspec.publishTo == 'none') { return _CheckNeedsReleaseResult.noRelease; } diff --git a/script/tool/pubspec.yaml b/script/tool/pubspec.yaml index 6273fe9bf277..8b32d2aa3e5b 100644 --- a/script/tool/pubspec.yaml +++ b/script/tool/pubspec.yaml @@ -1,7 +1,7 @@ name: flutter_plugin_tools description: Productivity utils for flutter/plugins and flutter/packages repository: https://github.com/flutter/plugins/tree/master/script/tool -version: 0.3.0 +version: 0.3.0+1 dependencies: args: ^2.1.0 diff --git a/script/tool/test/publish_plugin_command_test.dart b/script/tool/test/publish_plugin_command_test.dart index c7832e0da191..a26f4aaf1d65 100644 --- a/script/tool/test/publish_plugin_command_test.dart +++ b/script/tool/test/publish_plugin_command_test.dart @@ -995,6 +995,52 @@ void main() { ])); expect(processRunner.pushTagsArgs, isEmpty); }); + + test('Do not release flutter_plugin_tools', () async { + const Map httpResponsePlugin1 = { + 'name': 'flutter_plugin_tools', + 'versions': [], + }; + + final MockClient mockClient = MockClient((http.Request request) async { + if (request.url.pathSegments.last == 'flutter_plugin_tools.json') { + return http.Response(json.encode(httpResponsePlugin1), 200); + } + return http.Response('', 500); + }); + final PublishPluginCommand command = PublishPluginCommand(packagesDir, + processRunner: processRunner, + print: (Object? message) => printedMessages.add(message.toString()), + stdinput: mockStdin, + httpClient: mockClient, + gitDir: gitDir); + + commandRunner = CommandRunner( + 'publish_check_command', + 'Test for publish-check command.', + ); + commandRunner.addCommand(command); + + final Directory pluginDir1 = + createFakePlugin('flutter_plugin_tools', packagesDir); + await gitDir.runCommand(['add', '-A']); + await gitDir.runCommand(['commit', '-m', 'Add plugins']); + // Immediately return 0 when running `pub publish`. + processRunner.mockPublishCompleteCode = 0; + mockStdin.readLineOutput = 'y'; + await commandRunner + .run(['publish-plugin', '--all-changed', '--base-sha=HEAD~']); + expect( + printedMessages, + containsAllInOrder([ + 'Checking local repo...', + 'Local repo is ready!', + 'Done!' + ])); + expect(processRunner.pushTagsArgs, isEmpty); + processRunner.pushTagsArgs.clear(); + printedMessages.clear(); + }); }); } From 13063f54f56751a36af8010891eb46dd1f6247fc Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Sun, 27 Jun 2021 20:22:34 -0700 Subject: [PATCH 2/3] add a little more test --- script/tool/test/publish_plugin_command_test.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/script/tool/test/publish_plugin_command_test.dart b/script/tool/test/publish_plugin_command_test.dart index a26f4aaf1d65..f060cd2fbfd8 100644 --- a/script/tool/test/publish_plugin_command_test.dart +++ b/script/tool/test/publish_plugin_command_test.dart @@ -1021,7 +1021,7 @@ void main() { ); commandRunner.addCommand(command); - final Directory pluginDir1 = + final Directory flutterPluginTools = createFakePlugin('flutter_plugin_tools', packagesDir); await gitDir.runCommand(['add', '-A']); await gitDir.runCommand(['commit', '-m', 'Add plugins']); @@ -1037,6 +1037,11 @@ void main() { 'Local repo is ready!', 'Done!' ])); + expect( + printedMessages.contains( + 'Running `pub publish ` in ${flutterPluginTools.path}...\n', + ), + isFalse); expect(processRunner.pushTagsArgs, isEmpty); processRunner.pushTagsArgs.clear(); printedMessages.clear(); From 73de49ac0757707be104d805c597aeb62dc768ff Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 28 Jun 2021 08:04:46 -0700 Subject: [PATCH 3/3] revert version updates --- script/tool/CHANGELOG.md | 4 ---- script/tool/pubspec.yaml | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/script/tool/CHANGELOG.md b/script/tool/CHANGELOG.md index 2bcbb8fd58b6..94514e38103a 100644 --- a/script/tool/CHANGELOG.md +++ b/script/tool/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.3.0+1 - -- `publish-plugins` ignores `flutter_plugin_tools`, see: https://github.com/flutter/flutter/issues/85430 - ## 0.3.0 - Add a --build-id flag to `firebase-test-lab` instead of hard-coding the use of diff --git a/script/tool/pubspec.yaml b/script/tool/pubspec.yaml index 8b32d2aa3e5b..6273fe9bf277 100644 --- a/script/tool/pubspec.yaml +++ b/script/tool/pubspec.yaml @@ -1,7 +1,7 @@ name: flutter_plugin_tools description: Productivity utils for flutter/plugins and flutter/packages repository: https://github.com/flutter/plugins/tree/master/script/tool -version: 0.3.0+1 +version: 0.3.0 dependencies: args: ^2.1.0