mirror of
https://github.com/flutter/flutter
synced 2024-10-13 11:42:54 +00:00
[flutter_tools] remove train and inject-plugins command (#67766)
The train command does nothing and was originally added to provide a no-output default for generating app-jit snapshots. The inject-plugins command is only for a repo-only analysis check, which is not necessary since we regenerate during pub get. #29805
This commit is contained in:
parent
92702a28ec
commit
5fa801718f
|
@ -64,9 +64,6 @@ Future<void> run(List<String> arguments) async {
|
|||
print('$clock Test package imports...');
|
||||
await verifyNoTestPackageImports(flutterRoot);
|
||||
|
||||
print('$clock Generated plugin registrants...');
|
||||
await verifyGeneratedPluginRegistrants(flutterRoot);
|
||||
|
||||
print('$clock Bad imports (framework)...');
|
||||
await verifyNoBadImportsInFlutter(flutterRoot);
|
||||
|
||||
|
@ -369,44 +366,6 @@ Future<void> verifyNoTestPackageImports(String workingDirectory) async {
|
|||
}
|
||||
}
|
||||
|
||||
Future<void> verifyGeneratedPluginRegistrants(String flutterRoot) async {
|
||||
final Directory flutterRootDir = Directory(flutterRoot);
|
||||
|
||||
final Map<String, List<File>> packageToRegistrants = <String, List<File>>{};
|
||||
|
||||
for (final File file in flutterRootDir.listSync(recursive: true).whereType<File>().where(_isGeneratedPluginRegistrant)) {
|
||||
final String package = _getPackageFor(file, flutterRootDir);
|
||||
final List<File> registrants = packageToRegistrants.putIfAbsent(package, () => <File>[]);
|
||||
registrants.add(file);
|
||||
}
|
||||
|
||||
final Set<String> outOfDate = <String>{};
|
||||
|
||||
for (final String package in packageToRegistrants.keys) {
|
||||
final Map<File, String> fileToContent = <File, String>{};
|
||||
for (final File f in packageToRegistrants[package]) {
|
||||
fileToContent[f] = f.readAsStringSync();
|
||||
}
|
||||
await runCommand(flutter, <String>['inject-plugins'],
|
||||
workingDirectory: package,
|
||||
outputMode: OutputMode.discard,
|
||||
);
|
||||
for (final File registrant in fileToContent.keys) {
|
||||
if (registrant.readAsStringSync() != fileToContent[registrant]) {
|
||||
outOfDate.add(registrant.path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (outOfDate.isNotEmpty) {
|
||||
exitWithError(<String>[
|
||||
'${bold}The following GeneratedPluginRegistrants are out of date:$reset',
|
||||
for (String registrant in outOfDate) ' - $registrant',
|
||||
'\nRun "flutter inject-plugins" in the package that\'s out of date.',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> verifyNoBadImportsInFlutter(String workingDirectory) async {
|
||||
final List<String> errors = <String>[];
|
||||
final String libPath = path.join(workingDirectory, 'packages', 'flutter', 'lib');
|
||||
|
@ -1294,15 +1253,6 @@ List<T> _deepSearch<T>(Map<T, Set<T>> map, T start, [ Set<T> seen ]) {
|
|||
return null;
|
||||
}
|
||||
|
||||
String _getPackageFor(File entity, Directory flutterRootDir) {
|
||||
for (Directory dir = entity.parent; dir != flutterRootDir; dir = dir.parent) {
|
||||
if (File(path.join(dir.path, 'pubspec.yaml')).existsSync()) {
|
||||
return dir.path;
|
||||
}
|
||||
}
|
||||
throw ArgumentError('$entity is not within a dart package.');
|
||||
}
|
||||
|
||||
bool _isGeneratedPluginRegistrant(File file) {
|
||||
final String filename = path.basename(file.path);
|
||||
return !file.path.contains('.pub-cache')
|
||||
|
|
|
@ -28,7 +28,6 @@ import 'src/commands/format.dart';
|
|||
import 'src/commands/generate.dart';
|
||||
import 'src/commands/generate_localizations.dart';
|
||||
import 'src/commands/ide_config.dart';
|
||||
import 'src/commands/inject_plugins.dart';
|
||||
import 'src/commands/install.dart';
|
||||
import 'src/commands/logs.dart';
|
||||
import 'src/commands/make_host_app_editable.dart';
|
||||
|
@ -39,7 +38,6 @@ import 'src/commands/screenshot.dart';
|
|||
import 'src/commands/shell_completion.dart';
|
||||
import 'src/commands/symbolize.dart';
|
||||
import 'src/commands/test.dart';
|
||||
import 'src/commands/train.dart';
|
||||
import 'src/commands/update_packages.dart';
|
||||
import 'src/commands/upgrade.dart';
|
||||
import 'src/features.dart';
|
||||
|
@ -126,8 +124,6 @@ Future<void> main(List<String> args) async {
|
|||
),
|
||||
// Development-only commands. These are always hidden,
|
||||
IdeConfigCommand(),
|
||||
InjectPluginsCommand(),
|
||||
TrainingCommand(),
|
||||
UpdatePackagesCommand(),
|
||||
], verbose: verbose,
|
||||
muteCommandLogging: muteCommandLogging,
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
// 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 '../globals.dart' as globals;
|
||||
import '../plugins.dart';
|
||||
import '../project.dart';
|
||||
import '../runner/flutter_command.dart';
|
||||
|
||||
class InjectPluginsCommand extends FlutterCommand {
|
||||
InjectPluginsCommand() {
|
||||
requiresPubspecYaml();
|
||||
}
|
||||
|
||||
@override
|
||||
final String name = 'inject-plugins';
|
||||
|
||||
@override
|
||||
final String description = 'Re-generates the GeneratedPluginRegistrants.';
|
||||
|
||||
@override
|
||||
final bool hidden = true;
|
||||
|
||||
@override
|
||||
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{};
|
||||
|
||||
@override
|
||||
Future<FlutterCommandResult> runCommand() async {
|
||||
final FlutterProject project = FlutterProject.current();
|
||||
await refreshPluginsList(project, checkProjects: true);
|
||||
await injectPlugins(project, checkProjects: true);
|
||||
final bool result = hasPlugins(project);
|
||||
if (result) {
|
||||
globals.printStatus('GeneratedPluginRegistrants successfully written.');
|
||||
} else {
|
||||
globals.printStatus('This project does not use plugins, no GeneratedPluginRegistrants have been created.');
|
||||
}
|
||||
|
||||
return FlutterCommandResult.success();
|
||||
}
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
// 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 '../runner/flutter_command.dart';
|
||||
|
||||
/// This command is run when generating the app-JIT snapshot for the tool, so it cannot access the Cache
|
||||
/// or any artifacts that haven't been downloaded yet.
|
||||
class TrainingCommand extends FlutterCommand {
|
||||
@override
|
||||
String get description => 'training run for app-jit snapshot';
|
||||
|
||||
@override
|
||||
String get name => 'training';
|
||||
|
||||
@override
|
||||
bool get hidden => true;
|
||||
|
||||
@override
|
||||
bool get shouldUpdateCache => false;
|
||||
|
||||
@override
|
||||
Future<FlutterCommandResult> runCommand() async {
|
||||
// This command does not do anything yet :).
|
||||
return FlutterCommandResult.success();
|
||||
}
|
||||
}
|
|
@ -22,9 +22,7 @@ void main() {
|
|||
]);
|
||||
|
||||
// Development tools.
|
||||
expect(result.stdout, isNot(contains('ide-config')));
|
||||
expect(result.stdout, isNot(contains('update-packages')));
|
||||
expect(result.stdout, isNot(contains('inject-plugins')));
|
||||
|
||||
// Deprecated.
|
||||
expect(result.stdout, isNot(contains('make-host-app-editable')));
|
||||
|
|
Loading…
Reference in a new issue