Skip to content

Commit

Permalink
Revert "Ensure that flutter run/drive/test/update_packages only downl…
Browse files Browse the repository at this point in the history
…oads required artifacts (#30075)" (#30232)
  • Loading branch information
jonahwilliams committed Mar 30, 2019
1 parent 89807e6 commit c10e7ba
Show file tree
Hide file tree
Showing 22 changed files with 10 additions and 232 deletions.
2 changes: 1 addition & 1 deletion packages/flutter_tools/lib/src/commands/analyze.dart
Expand Up @@ -65,7 +65,7 @@ class AnalyzeCommand extends FlutterCommand {
String get description => "Analyze the project's Dart code.";

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{
Set<DevelopmentArtifact> get requiredArtifacts => const <DevelopmentArtifact>{
DevelopmentArtifact.universal,
};

Expand Down
2 changes: 1 addition & 1 deletion packages/flutter_tools/lib/src/commands/build_aot.dart
Expand Up @@ -16,7 +16,7 @@ import '../resident_runner.dart';
import '../runner/flutter_command.dart';
import 'build.dart';

class BuildAotCommand extends BuildSubCommand with TargetPlatformBasedDevelopmentArtifacts {
class BuildAotCommand extends BuildSubCommand {
BuildAotCommand() {
usesTargetOption();
addBuildModeFlags();
Expand Down
8 changes: 1 addition & 7 deletions packages/flutter_tools/lib/src/commands/build_apk.dart
Expand Up @@ -6,7 +6,7 @@ import 'dart:async';

import '../android/apk.dart';
import '../project.dart';
import '../runner/flutter_command.dart' show DevelopmentArtifact, FlutterCommandResult;
import '../runner/flutter_command.dart' show FlutterCommandResult;
import 'build.dart';

class BuildApkCommand extends BuildSubCommand {
Expand Down Expand Up @@ -34,12 +34,6 @@ class BuildApkCommand extends BuildSubCommand {
@override
final String name = 'apk';

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{
DevelopmentArtifact.universal,
DevelopmentArtifact.android,
};

@override
final String description = 'Build an Android APK file from your app.\n\n'
'This command can build debug and release versions of your application. \'debug\' builds support '
Expand Down
8 changes: 1 addition & 7 deletions packages/flutter_tools/lib/src/commands/build_ios.dart
Expand Up @@ -10,7 +10,7 @@ import '../base/utils.dart';
import '../build_info.dart';
import '../globals.dart';
import '../ios/mac.dart';
import '../runner/flutter_command.dart' show DevelopmentArtifact, FlutterCommandResult;
import '../runner/flutter_command.dart' show FlutterCommandResult;
import 'build.dart';

class BuildIOSCommand extends BuildSubCommand {
Expand Down Expand Up @@ -48,12 +48,6 @@ class BuildIOSCommand extends BuildSubCommand {
@override
final String description = 'Build an iOS application bundle (Mac OS X host only).';

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{
DevelopmentArtifact.universal,
DevelopmentArtifact.iOS,
};

@override
Future<FlutterCommandResult> runCommand() async {
final bool forSimulator = argResults['simulator'];
Expand Down
2 changes: 1 addition & 1 deletion packages/flutter_tools/lib/src/commands/build_web.dart
Expand Up @@ -20,7 +20,7 @@ class BuildWebCommand extends BuildSubCommand {
}

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{
Set<DevelopmentArtifact> get requiredArtifacts => const <DevelopmentArtifact>{
DevelopmentArtifact.universal,
DevelopmentArtifact.web,
};
Expand Down
3 changes: 0 additions & 3 deletions packages/flutter_tools/lib/src/commands/channel.dart
Expand Up @@ -31,9 +31,6 @@ class ChannelCommand extends FlutterCommand {
@override
String get invocation => '${runner.executableName} $name [<channel-name>]';

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{};

@override
Future<FlutterCommandResult> runCommand() async {
switch (argResults.rest.length) {
Expand Down
3 changes: 0 additions & 3 deletions packages/flutter_tools/lib/src/commands/clean.dart
Expand Up @@ -22,9 +22,6 @@ class CleanCommand extends FlutterCommand {
@override
final String description = 'Delete the build/ and .dart_tool/ directories.';

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{};

@override
Future<FlutterCommandResult> runCommand() async {
final FlutterProject flutterProject = await FlutterProject.current();
Expand Down
3 changes: 0 additions & 3 deletions packages/flutter_tools/lib/src/commands/config.dart
Expand Up @@ -44,9 +44,6 @@ class ConfigCommand extends FlutterCommand {
@override
bool get shouldUpdateCache => false;

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{};

@override
String get usageFooter {
// List all config settings.
Expand Down
5 changes: 0 additions & 5 deletions packages/flutter_tools/lib/src/commands/format.dart
Expand Up @@ -39,11 +39,6 @@ class FormatCommand extends FlutterCommand {
@override
final String description = 'Format one or more dart files.';

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{
DevelopmentArtifact.universal,
};

@override
String get invocation => '${runner.executableName} $name <one or more paths>';

Expand Down
5 changes: 0 additions & 5 deletions packages/flutter_tools/lib/src/commands/generate.dart
Expand Up @@ -21,11 +21,6 @@ class GenerateCommand extends FlutterCommand {
@override
bool get hidden => true;

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{
DevelopmentArtifact.universal,
};

@override
Future<FlutterCommandResult> runCommand() async {
Cache.releaseLockEarly();
Expand Down
3 changes: 0 additions & 3 deletions packages/flutter_tools/lib/src/commands/ide_config.dart
Expand Up @@ -42,9 +42,6 @@ class IdeConfigCommand extends FlutterCommand {
@override
final String name = 'ide-config';

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{};

@override
final String description = 'Configure the IDE for use in the Flutter tree.\n\n'
'If run on a Flutter tree that is already configured for the IDE, this '
Expand Down
3 changes: 0 additions & 3 deletions packages/flutter_tools/lib/src/commands/inject_plugins.dart
Expand Up @@ -23,9 +23,6 @@ class InjectPluginsCommand extends FlutterCommand {
@override
final bool hidden;

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{};

@override
Future<FlutterCommandResult> runCommand() async {
final FlutterProject project = await FlutterProject.current();
Expand Down
2 changes: 1 addition & 1 deletion packages/flutter_tools/lib/src/commands/install.dart
Expand Up @@ -11,7 +11,7 @@ import '../device.dart';
import '../globals.dart';
import '../runner/flutter_command.dart';

class InstallCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
class InstallCommand extends FlutterCommand {
InstallCommand() {
requiresPubspecYaml();
}
Expand Down
3 changes: 0 additions & 3 deletions packages/flutter_tools/lib/src/commands/logs.dart
Expand Up @@ -26,9 +26,6 @@ class LogsCommand extends FlutterCommand {
@override
final String description = 'Show log output for running Flutter apps.';

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{};

Device device;

@override
Expand Down
5 changes: 0 additions & 5 deletions packages/flutter_tools/lib/src/commands/packages.dart
Expand Up @@ -27,11 +27,6 @@ class PackagesCommand extends FlutterCommand {
@override
final String description = 'Commands for managing Flutter packages.';

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{
DevelopmentArtifact.universal,
};

@override
Future<FlutterCommandResult> runCommand() async => null;
}
Expand Down
3 changes: 1 addition & 2 deletions packages/flutter_tools/lib/src/commands/run.dart
Expand Up @@ -20,7 +20,7 @@ import '../runner/flutter_command.dart';
import '../tracing.dart';
import 'daemon.dart';

abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
abstract class RunCommandBase extends FlutterCommand {
// Used by run and drive commands.
RunCommandBase({ bool verboseHelp = false }) {
addBuildModeFlags(defaultToRelease: false, verboseHelp: verboseHelp);
Expand Down Expand Up @@ -64,7 +64,6 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
}

bool get traceStartup => argResults['trace-startup'];

String get route => argResults['route'];
}

Expand Down
5 changes: 0 additions & 5 deletions packages/flutter_tools/lib/src/commands/test.dart
Expand Up @@ -86,11 +86,6 @@ class TestCommand extends FastFlutterCommand {
valueHelp: 'jobs');
}

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => <DevelopmentArtifact>{
DevelopmentArtifact.universal,
};

@override
String get name => 'test';

Expand Down
5 changes: 0 additions & 5 deletions packages/flutter_tools/lib/src/commands/update_packages.dart
Expand Up @@ -84,11 +84,6 @@ class UpdatePackagesCommand extends FlutterCommand {
@override
final bool hidden;

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => <DevelopmentArtifact>{
DevelopmentArtifact.universal,
};

Future<void> _downloadCoverageData() async {
final Status status = logger.startProgress(
'Downloading lcov data for package:flutter...',
Expand Down
5 changes: 0 additions & 5 deletions packages/flutter_tools/lib/src/commands/upgrade.dart
Expand Up @@ -36,11 +36,6 @@ class UpgradeCommand extends FlutterCommand {
@override
bool get shouldUpdateCache => false;

@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => <DevelopmentArtifact>{
DevelopmentArtifact.universal,
};

@override
Future<FlutterCommandResult> runCommand() async {
final UpgradeCommandRunner upgradeCommandRunner = UpgradeCommandRunner();
Expand Down
88 changes: 2 additions & 86 deletions packages/flutter_tools/lib/src/runner/flutter_command.dart
Expand Up @@ -534,7 +534,7 @@ abstract class FlutterCommand extends Command<void> {
// Populate the cache. We call this before pub get below so that the sky_engine
// package is available in the flutter cache for pub to find.
if (shouldUpdateCache) {
await cache.updateAll(await requiredArtifacts);
await cache.updateAll(requiredArtifacts);
}

if (shouldRunPub) {
Expand All @@ -557,7 +557,7 @@ abstract class FlutterCommand extends Command<void> {
///
/// Defaults to [DevelopmentArtifact.universal],
/// [DevelopmentArtifact.android], and [DevelopmentArtifact.iOS].
Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{
Set<DevelopmentArtifact> get requiredArtifacts => const <DevelopmentArtifact>{
DevelopmentArtifact.universal,
DevelopmentArtifact.iOS,
DevelopmentArtifact.android,
Expand Down Expand Up @@ -677,90 +677,6 @@ abstract class FlutterCommand extends Command<void> {
ApplicationPackageStore applicationPackages;
}

/// A mixin which applies an implementation of [requiredArtifacts] that only
/// downloads artifacts corresponding to an attached device.
mixin DeviceBasedDevelopmentArtifacts on FlutterCommand {
@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async {
// If there are no attached devices, use the default configuration.
// Otherwise, only add development artifacts which correspond to a
// connected device.
final List<Device> devices = await deviceManager.getDevices().toList();
if (devices.isEmpty) {
return super.requiredArtifacts;
}
final Set<DevelopmentArtifact> artifacts = <DevelopmentArtifact>{
DevelopmentArtifact.universal,
};
for (Device device in devices) {
final TargetPlatform targetPlatform = await device.targetPlatform;
switch (targetPlatform) {
case TargetPlatform.android_arm:
case TargetPlatform.android_arm64:
case TargetPlatform.android_x64:
case TargetPlatform.android_x86:
artifacts.add(DevelopmentArtifact.android);
break;
case TargetPlatform.web:
artifacts.add(DevelopmentArtifact.web);
break;
case TargetPlatform.ios:
artifacts.add(DevelopmentArtifact.iOS);
break;
case TargetPlatform.darwin_x64:
case TargetPlatform.fuchsia:
case TargetPlatform.tester:
case TargetPlatform.windows_x64:
case TargetPlatform.linux_x64:
// No artifacts currently supported.
break;
}
}
return artifacts;
}
}

/// A mixin which applies an implementation of [requiredArtifacts] that only
/// downloads artifacts corresponding to a target device.
mixin TargetPlatformBasedDevelopmentArtifacts on FlutterCommand {
@override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async {
// If there is no specified target device, fallback to the default
// confiugration.
final String rawTargetPlatform = argResults['target-platform'];
final TargetPlatform targetPlatform = getTargetPlatformForName(rawTargetPlatform);
if (targetPlatform == null) {
return super.requiredArtifacts;
}

final Set<DevelopmentArtifact> artifacts = <DevelopmentArtifact>{
DevelopmentArtifact.universal,
};
switch (targetPlatform) {
case TargetPlatform.android_arm:
case TargetPlatform.android_arm64:
case TargetPlatform.android_x64:
case TargetPlatform.android_x86:
artifacts.add(DevelopmentArtifact.android);
break;
case TargetPlatform.web:
artifacts.add(DevelopmentArtifact.web);
break;
case TargetPlatform.ios:
artifacts.add(DevelopmentArtifact.iOS);
break;
case TargetPlatform.darwin_x64:
case TargetPlatform.fuchsia:
case TargetPlatform.tester:
case TargetPlatform.windows_x64:
case TargetPlatform.linux_x64:
// No artifacts currently supported.
break;
}
return artifacts;
}
}

/// A command which runs less analytics and checks to speed up startup time.
abstract class FastFlutterCommand extends FlutterCommand {
@override
Expand Down

0 comments on commit c10e7ba

Please sign in to comment.