From 125b4e945e7e9d8bbbd9276b1a2d9162bd09696a Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Wed, 13 Nov 2024 18:33:34 -0800 Subject: [PATCH] Move explicit package dependencies to a feature flag (#158016) Closes https://github.com/flutter/flutter/issues/158012. This is (effectively) a user-facing NOP, which is exchanging an on-by-default command-line argument (`--implicit-pubspec-resolution`) for an off-by-default global feature flag (`explicit-package-dependencies`). It matches the mental model better, is less painstaking to maintain and feed throughout, and will be easier to globally flip on/off in a future PR. --------- Co-authored-by: Andrew Kolos --- .../lib/src/build_system/build_system.dart | 9 -- .../build_system/targets/localizations.dart | 3 +- .../flutter_tools/lib/src/bundle_builder.dart | 2 - .../lib/src/commands/assemble.dart | 2 - .../lib/src/commands/attach.dart | 6 - .../lib/src/commands/build_bundle.dart | 2 - .../lib/src/commands/build_ios_framework.dart | 2 - .../src/commands/build_macos_framework.dart | 2 - .../lib/src/commands/build_web.dart | 2 - .../lib/src/commands/create.dart | 2 - .../lib/src/commands/create_base.dart | 2 - .../lib/src/commands/custom_devices.dart | 1 - .../lib/src/commands/daemon.dart | 21 +--- .../flutter_tools/lib/src/commands/drive.dart | 2 - .../lib/src/commands/packages.dart | 14 +-- .../flutter_tools/lib/src/commands/run.dart | 6 - .../flutter_tools/lib/src/context_runner.dart | 2 - .../lib/src/custom_devices/custom_device.dart | 8 -- .../src/dart/generate_synthetic_packages.dart | 13 +- .../lib/src/drive/drive_service.dart | 6 +- .../lib/src/drive/web_driver_service.dart | 6 +- packages/flutter_tools/lib/src/features.dart | 28 +++++ .../lib/src/flutter_device_manager.dart | 4 - .../lib/src/flutter_features.dart | 3 + .../lib/src/flutter_plugins.dart | 41 ++----- packages/flutter_tools/lib/src/ios/mac.dart | 2 +- .../lib/src/isolated/resident_web_runner.dart | 8 -- .../lib/src/macos/cocoapod_utils.dart | 3 +- .../flutter_tools/lib/src/preview_device.dart | 8 -- packages/flutter_tools/lib/src/project.dart | 5 - .../lib/src/resident_runner.dart | 4 - packages/flutter_tools/lib/src/run_cold.dart | 1 - packages/flutter_tools/lib/src/run_hot.dart | 1 - .../lib/src/runner/flutter_command.dart | 2 - .../lib/src/tester/flutter_tester.dart | 6 - .../flutter_tools/lib/src/web/compile.dart | 112 +++++++++++------- .../flutter_tools/lib/src/web/web_runner.dart | 1 - .../commands.shard/hermetic/attach_test.dart | 1 - .../commands.shard/hermetic/daemon_test.dart | 33 ------ .../hermetic/generate_localizations_test.dart | 2 +- .../hermetic/proxied_devices_test.dart | 5 - .../commands.shard/hermetic/run_test.dart | 4 +- .../permeable/build_bundle_test.dart | 1 - .../permeable/packages_test.dart | 8 +- .../general.shard/bundle_builder_test.dart | 3 - .../test/general.shard/cold_test.dart | 5 - .../general.shard/commands/daemon_test.dart | 2 - .../custom_devices/custom_device_test.dart | 16 --- .../generate_synthetic_packages_test.dart | 38 +++--- .../drive/web_driver_service_test.dart | 2 - .../test/general.shard/hot_test.dart | 10 -- .../test/general.shard/isolated/hot_test.dart | 2 - .../isolated/resident_runner_test.dart | 1 - .../general.shard/macos/cocoapods_test.dart | 2 +- .../test/general.shard/plugins_test.dart | 84 ++++++------- .../general.shard/preview_device_test.dart | 7 -- .../test/general.shard/project_test.dart | 30 ++--- .../general.shard/resident_runner_test.dart | 32 ----- .../resident_web_runner_cold_test.dart | 5 - .../resident_web_runner_test.dart | 11 -- .../tester/flutter_tester_test.dart | 2 - .../general.shard/web/compile_web_test.dart | 2 - packages/flutter_tools/test/src/fakes.dart | 5 + packages/flutter_tools/test/src/testbed.dart | 4 +- .../web.shard/web_driver_service_test.dart | 1 - 65 files changed, 224 insertions(+), 436 deletions(-) diff --git a/packages/flutter_tools/lib/src/build_system/build_system.dart b/packages/flutter_tools/lib/src/build_system/build_system.dart index 6a4eac673ce..0fd777ab22d 100644 --- a/packages/flutter_tools/lib/src/build_system/build_system.dart +++ b/packages/flutter_tools/lib/src/build_system/build_system.dart @@ -347,7 +347,6 @@ class Environment { required Analytics analytics, String? engineVersion, required bool generateDartPluginRegistry, - required bool useImplicitPubspecResolution, Directory? buildDir, Map defines = const {}, Map inputs = const {}, @@ -392,7 +391,6 @@ class Environment { engineVersion: engineVersion, inputs: inputs, generateDartPluginRegistry: generateDartPluginRegistry, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); } @@ -414,7 +412,6 @@ class Environment { Usage? usage, Analytics? analytics, bool generateDartPluginRegistry = false, - bool useImplicitPubspecResolution = true, required FileSystem fileSystem, required Logger logger, required Artifacts artifacts, @@ -438,7 +435,6 @@ class Environment { analytics: analytics ?? const NoOpAnalytics(), engineVersion: engineVersion, generateDartPluginRegistry: generateDartPluginRegistry, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); } @@ -461,7 +457,6 @@ class Environment { this.engineVersion, required this.inputs, required this.generateDartPluginRegistry, - required this.useImplicitPubspecResolution, }); /// The [Source] value which is substituted with the path to [projectDir]. @@ -562,10 +557,6 @@ class Environment { /// the new entrypoint. final bool generateDartPluginRegistry; - /// Whether to generate a `.flutter-plugins` file and for Flutter i10n source - /// generation to default to `synthetic-package: true`. - final bool useImplicitPubspecResolution; - late final DepfileService depFileService = DepfileService( logger: logger, fileSystem: fileSystem, diff --git a/packages/flutter_tools/lib/src/build_system/targets/localizations.dart b/packages/flutter_tools/lib/src/build_system/targets/localizations.dart index 2f5bdda24eb..b952e5b77e7 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/localizations.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/localizations.dart @@ -4,6 +4,7 @@ import '../../base/file_system.dart'; import '../../convert.dart'; +import '../../features.dart'; import '../../localizations/gen_l10n.dart'; import '../../localizations/localizations_utils.dart'; import '../build_system.dart'; @@ -56,7 +57,7 @@ class GenerateLocalizationsTarget extends Target { file: configFile, logger: environment.logger, defaultArbDir: defaultArbDir, - defaultSyntheticPackage: environment.useImplicitPubspecResolution, + defaultSyntheticPackage: !featureFlags.isExplicitPackageDependenciesEnabled, ); await generateLocalizations( logger: environment.logger, diff --git a/packages/flutter_tools/lib/src/bundle_builder.dart b/packages/flutter_tools/lib/src/bundle_builder.dart index 632ddcea6bd..effda740a51 100644 --- a/packages/flutter_tools/lib/src/bundle_builder.dart +++ b/packages/flutter_tools/lib/src/bundle_builder.dart @@ -37,7 +37,6 @@ class BundleBuilder { Future build({ required TargetPlatform platform, required BuildInfo buildInfo, - required bool useImplicitPubspecResolution, FlutterProject? project, String? mainPath, String manifestPath = defaultManifestPath, @@ -80,7 +79,6 @@ class BundleBuilder { analytics: globals.analytics, platform: globals.platform, generateDartPluginRegistry: true, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); final Target target = buildInfo.mode == BuildMode.debug ? globals.buildTargets.copyFlutterBundle diff --git a/packages/flutter_tools/lib/src/commands/assemble.dart b/packages/flutter_tools/lib/src/commands/assemble.dart index 3fc926f89d9..1f2de226563 100644 --- a/packages/flutter_tools/lib/src/commands/assemble.dart +++ b/packages/flutter_tools/lib/src/commands/assemble.dart @@ -26,7 +26,6 @@ import '../globals.dart' as globals; import '../project.dart'; import '../reporting/reporting.dart'; import '../runner/flutter_command.dart'; -import '../runner/flutter_command_runner.dart'; /// All currently implemented targets. List _kDefaultTargets = [ @@ -253,7 +252,6 @@ class AssembleCommand extends FlutterCommand { ? null : globals.flutterVersion.engineRevision, generateDartPluginRegistry: true, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); return result; } diff --git a/packages/flutter_tools/lib/src/commands/attach.dart b/packages/flutter_tools/lib/src/commands/attach.dart index 84cb841fc95..2ad5dc1632f 100644 --- a/packages/flutter_tools/lib/src/commands/attach.dart +++ b/packages/flutter_tools/lib/src/commands/attach.dart @@ -279,7 +279,6 @@ known, it can be explicitly provided to attach via the command-line, e.g. ? _logger : NotifyingLogger(verbose: _logger.isVerbose, parent: _logger), logToStdout: true, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ) : null; @@ -466,7 +465,6 @@ known, it can be explicitly provided to attach via the command-line, e.g. printDtd: boolArg(FlutterGlobalOptions.kPrintDtd, global: true), ); - final bool useImplicitPubspecResolution = globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution); return buildInfo.isDebug ? _hotRunnerFactory.build( flutterDevices, @@ -479,13 +477,11 @@ known, it can be explicitly provided to attach via the command-line, e.g. nativeAssetsYamlFile: stringArg(FlutterOptions.kNativeAssetsYamlFile), nativeAssetsBuilder: _nativeAssetsBuilder, analytics: analytics, - useImplicitPubspecResolution: useImplicitPubspecResolution, ) : ColdRunner( flutterDevices, target: targetFile, debuggingOptions: debuggingOptions, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); } @@ -512,7 +508,6 @@ class HotRunnerFactory { FlutterProject? flutterProject, String? nativeAssetsYamlFile, required HotRunnerNativeAssetsBuilder? nativeAssetsBuilder, - required bool useImplicitPubspecResolution, required Analytics analytics, }) => HotRunner( devices, @@ -527,6 +522,5 @@ class HotRunnerFactory { nativeAssetsYamlFile: nativeAssetsYamlFile, nativeAssetsBuilder: nativeAssetsBuilder, analytics: analytics, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); } diff --git a/packages/flutter_tools/lib/src/commands/build_bundle.dart b/packages/flutter_tools/lib/src/commands/build_bundle.dart index fbfa1f49a19..82470cf6071 100644 --- a/packages/flutter_tools/lib/src/commands/build_bundle.dart +++ b/packages/flutter_tools/lib/src/commands/build_bundle.dart @@ -13,7 +13,6 @@ import '../globals.dart' as globals; import '../project.dart'; import '../reporting/reporting.dart'; import '../runner/flutter_command.dart'; -import '../runner/flutter_command_runner.dart'; import 'build.dart'; class BuildBundleCommand extends BuildSubCommand { @@ -150,7 +149,6 @@ class BuildBundleCommand extends BuildSubCommand { depfilePath: stringArg('depfile'), assetDirPath: stringArg('asset-dir'), buildNativeAssets: false, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); return FlutterCommandResult.success(); } diff --git a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart index 3398ba78aa8..fc424ca9e12 100644 --- a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart +++ b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart @@ -21,7 +21,6 @@ import '../flutter_plugins.dart'; import '../globals.dart' as globals; import '../macos/cocoapod_utils.dart'; import '../runner/flutter_command.dart' show DevelopmentArtifact, FlutterCommandResult; -import '../runner/flutter_command_runner.dart'; import '../version.dart'; import 'build.dart'; @@ -461,7 +460,6 @@ end ? null : globals.flutterVersion.engineRevision, generateDartPluginRegistry: true, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); Target target; // Always build debug for simulator. diff --git a/packages/flutter_tools/lib/src/commands/build_macos_framework.dart b/packages/flutter_tools/lib/src/commands/build_macos_framework.dart index 5a8c61f31d2..7794b72860b 100644 --- a/packages/flutter_tools/lib/src/commands/build_macos_framework.dart +++ b/packages/flutter_tools/lib/src/commands/build_macos_framework.dart @@ -19,7 +19,6 @@ import '../flutter_plugins.dart'; import '../globals.dart' as globals; import '../macos/cocoapod_utils.dart'; import '../runner/flutter_command.dart' show DevelopmentArtifact, FlutterCommandResult; -import '../runner/flutter_command_runner.dart'; import '../version.dart'; import 'build_ios_framework.dart'; @@ -240,7 +239,6 @@ end analytics: globals.analytics, engineVersion: globals.artifacts!.usesLocalArtifacts ? null : globals.flutterVersion.engineRevision, generateDartPluginRegistry: true, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); Target target; // Always build debug for simulator. diff --git a/packages/flutter_tools/lib/src/commands/build_web.dart b/packages/flutter_tools/lib/src/commands/build_web.dart index d189c1bbb4b..f0c2e4e2ccd 100644 --- a/packages/flutter_tools/lib/src/commands/build_web.dart +++ b/packages/flutter_tools/lib/src/commands/build_web.dart @@ -10,7 +10,6 @@ import '../features.dart'; import '../globals.dart' as globals; import '../runner/flutter_command.dart' show DevelopmentArtifact, FlutterCommandResult, FlutterOptions; -import '../runner/flutter_command_runner.dart'; import '../web/compile.dart'; import '../web/file_generators/flutter_service_worker_js.dart'; import '../web/web_constants.dart'; @@ -227,7 +226,6 @@ class BuildWebCommand extends BuildSubCommand { flutterVersion: globals.flutterVersion, usage: globals.flutterUsage, analytics: globals.analytics, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); await webBuilder.buildWeb( project, diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index 39386f45c64..761202e629e 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart @@ -26,7 +26,6 @@ import '../macos/swift_packages.dart'; import '../project.dart'; import '../reporting/reporting.dart'; import '../runner/flutter_command.dart'; -import '../runner/flutter_command_runner.dart'; import 'create_base.dart'; const String kPlatformHelp = @@ -459,7 +458,6 @@ class CreateCommand extends CreateBase { macOSPlatform: includeMacos, windowsPlatform: includeWindows, webPlatform: includeWeb, - useImplicitPubspecResolution: boolArg(FlutterGlobalOptions.kImplicitPubspecResolution, global: true), ); } } diff --git a/packages/flutter_tools/lib/src/commands/create_base.dart b/packages/flutter_tools/lib/src/commands/create_base.dart index 4cde6ffacc8..76ff09a32b2 100644 --- a/packages/flutter_tools/lib/src/commands/create_base.dart +++ b/packages/flutter_tools/lib/src/commands/create_base.dart @@ -21,7 +21,6 @@ import '../flutter_project_metadata.dart'; import '../globals.dart' as globals; import '../project.dart'; import '../runner/flutter_command.dart'; -import '../runner/flutter_command_runner.dart'; import '../template.dart'; const List _kAvailablePlatforms = [ @@ -575,7 +574,6 @@ abstract class CreateBase extends FlutterCommand { projectDir: project.directory, packageConfigPath: packageConfigPath(), generateDartPluginRegistry: true, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); // Generate the l10n synthetic package that will be injected into the diff --git a/packages/flutter_tools/lib/src/commands/custom_devices.dart b/packages/flutter_tools/lib/src/commands/custom_devices.dart index 2079881a6c7..9ffe6e8234b 100644 --- a/packages/flutter_tools/lib/src/commands/custom_devices.dart +++ b/packages/flutter_tools/lib/src/commands/custom_devices.dart @@ -378,7 +378,6 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { config: config, logger: logger, processManager: _processManager, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); bool result = true; diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart index 88e8644dea8..6749b988fea 100644 --- a/packages/flutter_tools/lib/src/commands/daemon.dart +++ b/packages/flutter_tools/lib/src/commands/daemon.dart @@ -32,7 +32,6 @@ import '../resident_runner.dart'; import '../run_cold.dart'; import '../run_hot.dart'; import '../runner/flutter_command.dart'; -import '../runner/flutter_command_runner.dart'; import '../vmservice.dart'; import '../web/web_runner.dart'; @@ -67,7 +66,6 @@ class DaemonCommand extends FlutterCommand { @override Future runCommand() async { - final bool useImplicitPubspecResolution = globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution); if (argResults!['listen-on-tcp-port'] != null) { int? port; try { @@ -84,7 +82,6 @@ class DaemonCommand extends FlutterCommand { outputPreferences: globals.outputPreferences, ), notifyingLogger: asLogger(globals.logger), - useImplicitPubspecResolution: useImplicitPubspecResolution, ).run(); return FlutterCommandResult.success(); } @@ -95,7 +92,6 @@ class DaemonCommand extends FlutterCommand { logger: globals.logger, ), notifyingLogger: asLogger(globals.logger), - useImplicitPubspecResolution: useImplicitPubspecResolution, ); final int code = await daemon.onExit; if (code != 0) { @@ -109,11 +105,10 @@ class DaemonCommand extends FlutterCommand { class DaemonServer { DaemonServer({ this.port, - required bool useImplicitPubspecResolution, required this.logger, this.notifyingLogger, @visibleForTesting Future Function(InternetAddress address, int port) bind = ServerSocket.bind, - }) : _bind = bind, _useImplicitPubspecResolution = useImplicitPubspecResolution; + }) : _bind = bind; final int? port; @@ -122,7 +117,6 @@ class DaemonServer { // Logger that sends the message to the other end of daemon connection. final NotifyingLogger? notifyingLogger; - final bool _useImplicitPubspecResolution; final Future Function(InternetAddress address, int port) _bind; @@ -157,7 +151,6 @@ class DaemonServer { logger: logger, ), notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); await daemon.onExit; await socketDone; @@ -176,14 +169,13 @@ typedef CommandHandlerWithBinary = Future Function(Map class Daemon { Daemon( this.connection, { - required bool useImplicitPubspecResolution, this.notifyingLogger, this.logToStdout = false, FileTransfer fileTransfer = const FileTransfer(), }) { // Set up domains. registerDomain(daemonDomain = DaemonDomain(this)); - registerDomain(appDomain = AppDomain(this, useImplicitPubspecResolution: useImplicitPubspecResolution)); + registerDomain(appDomain = AppDomain(this)); registerDomain(deviceDomain = DeviceDomain(this)); registerDomain(emulatorDomain = EmulatorDomain(this)); registerDomain(devToolsDomain = DevToolsDomain(this)); @@ -645,10 +637,7 @@ typedef RunOrAttach = Future Function({ /// /// It fires events for application start, stop, and stdout and stderr. class AppDomain extends Domain { - AppDomain(Daemon daemon, { - required bool useImplicitPubspecResolution, - }) : _useImplicitPubspecResolution = useImplicitPubspecResolution, - super(daemon, 'app') { + AppDomain(Daemon daemon) : super(daemon, 'app') { registerHandler('restart', restart); registerHandler('callServiceExtension', callServiceExtension); registerHandler('stop', stop); @@ -660,7 +649,6 @@ class AppDomain extends Domain { static String _getNewAppId() => _uuidGenerator.v4(); final List _apps = []; - final bool _useImplicitPubspecResolution; final DebounceOperationQueue operationQueue = DebounceOperationQueue(); @@ -717,7 +705,6 @@ class AppDomain extends Domain { systemClock: globals.systemClock, logger: globals.logger, fileSystem: globals.fs, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); } else if (enableHotReload) { runner = HotRunner( @@ -731,7 +718,6 @@ class AppDomain extends Domain { machine: machine, analytics: globals.analytics, nativeAssetsBuilder: nativeAssetsBuilder, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); } else { runner = ColdRunner( @@ -740,7 +726,6 @@ class AppDomain extends Domain { debuggingOptions: options, applicationBinary: applicationBinary, machine: machine, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); } diff --git a/packages/flutter_tools/lib/src/commands/drive.dart b/packages/flutter_tools/lib/src/commands/drive.dart index 85ce947c6dc..4921ccc4285 100644 --- a/packages/flutter_tools/lib/src/commands/drive.dart +++ b/packages/flutter_tools/lib/src/commands/drive.dart @@ -28,7 +28,6 @@ import '../ios/devices.dart'; import '../macos/macos_ipad_device.dart'; import '../resident_runner.dart'; import '../runner/flutter_command.dart' show FlutterCommandCategory, FlutterCommandResult, FlutterOptions; -import '../runner/flutter_command_runner.dart'; import '../web/web_device.dart'; import 'run.dart'; @@ -261,7 +260,6 @@ class DriveCommand extends RunCommandBase { processUtils: globals.processUtils, dartSdkPath: globals.artifacts!.getArtifactPath(Artifact.engineDartBinary), devtoolsLauncher: DevtoolsLauncher.instance!, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); final File packageConfigFile = findPackageConfigFileOrDefault(_fileSystem.currentDirectory); diff --git a/packages/flutter_tools/lib/src/commands/packages.dart b/packages/flutter_tools/lib/src/commands/packages.dart index 211ce5e12cd..9ef6a478088 100644 --- a/packages/flutter_tools/lib/src/commands/packages.dart +++ b/packages/flutter_tools/lib/src/commands/packages.dart @@ -21,7 +21,6 @@ import '../plugins.dart'; import '../project.dart'; import '../reporting/reporting.dart'; import '../runner/flutter_command.dart'; -import '../runner/flutter_command_runner.dart'; /// The function signature of the [print] function. typedef PrintFn = void Function(Object?); @@ -305,7 +304,6 @@ class PackagesGetCommand extends FlutterCommand { projectDir: rootProject.directory, packageConfigPath: packageConfigPath(), generateDartPluginRegistry: true, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); await generateLocalizationsSyntheticPackage( @@ -329,7 +327,6 @@ class PackagesGetCommand extends FlutterCommand { projectDir: rootProject.directory, packageConfigPath: packageConfigPath(), generateDartPluginRegistry: true, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); final BuildResult result = await globals.buildSystem.build( const GenerateLocalizationsTarget(), @@ -386,15 +383,10 @@ class PackagesGetCommand extends FlutterCommand { if (rootProject != null) { // We need to regenerate the platform specific tooling for both the project // itself and example(if present). - final bool useImplicitPubspecResolution = boolArg(FlutterGlobalOptions.kImplicitPubspecResolution, global: true); - await rootProject.regeneratePlatformSpecificTooling( - useImplicitPubspecResolution: useImplicitPubspecResolution, - ); + await rootProject.regeneratePlatformSpecificTooling(); if (example && rootProject.hasExampleApp && rootProject.example.pubspecFile.existsSync()) { final FlutterProject exampleProject = rootProject.example; - await exampleProject.regeneratePlatformSpecificTooling( - useImplicitPubspecResolution: useImplicitPubspecResolution, - ); + await exampleProject.regeneratePlatformSpecificTooling(); } } @@ -407,7 +399,7 @@ class PackagesGetCommand extends FlutterCommand { return []; } - return findPlugins(rootProject, throwOnError: false, useImplicitPubspecResolution: boolArg(FlutterGlobalOptions.kImplicitPubspecResolution, global: true)); + return findPlugins(rootProject, throwOnError: false); })(); late final String? _androidEmbeddingVersion = _rootProject?.android.getEmbeddingVersion().toString().split('.').last; diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index db44e62c94e..4b9cb710bf1 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -681,7 +681,6 @@ class RunCommand extends RunCommandBase { required String? applicationBinaryPath, required FlutterProject flutterProject, }) async { - final bool useImplicitPubspecResolution = globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution); if (hotMode && !webMode) { return HotRunner( flutterDevices, @@ -697,7 +696,6 @@ class RunCommand extends RunCommandBase { analytics: globals.analytics, nativeAssetsYamlFile: stringArg(FlutterOptions.kNativeAssetsYamlFile), nativeAssetsBuilder: _nativeAssetsBuilder, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); } else if (webMode) { return webRunnerFactory!.createWebRunner( @@ -711,7 +709,6 @@ class RunCommand extends RunCommandBase { analytics: globals.analytics, logger: globals.logger, systemClock: globals.systemClock, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); } return ColdRunner( @@ -724,13 +721,11 @@ class RunCommand extends RunCommandBase { ? null : globals.fs.file(applicationBinaryPath), stayResident: stayResident, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); } @visibleForTesting Daemon createMachineDaemon() { - final bool useImplicitPubspecResolution = globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution); final Daemon daemon = Daemon( DaemonConnection( daemonStreams: DaemonStreams.fromStdio(globals.stdio, logger: globals.logger), @@ -740,7 +735,6 @@ class RunCommand extends RunCommandBase { ? globals.logger as NotifyingLogger : NotifyingLogger(verbose: globals.logger.isVerbose, parent: globals.logger), logToStdout: true, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); return daemon; } diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart index cd6755d8509..f01c56fc59c 100644 --- a/packages/flutter_tools/lib/src/context_runner.dart +++ b/packages/flutter_tools/lib/src/context_runner.dart @@ -68,7 +68,6 @@ import 'windows/windows_workflow.dart'; Future runInContext( FutureOr Function() runner, { - bool useImplicitPubspecResolution = true, Map? overrides, }) async { @@ -211,7 +210,6 @@ Future runInContext( operatingSystemUtils: globals.os, customDevicesConfig: globals.customDevicesConfig, nativeAssetsBuilder: globals.nativeAssetsBuilder, - useImplicitPubspecResolution: useImplicitPubspecResolution, ), DevtoolsLauncher: () => DevtoolsServerLauncher( processManager: globals.processManager, diff --git a/packages/flutter_tools/lib/src/custom_devices/custom_device.dart b/packages/flutter_tools/lib/src/custom_devices/custom_device.dart index a6ba1952450..4de1502151e 100644 --- a/packages/flutter_tools/lib/src/custom_devices/custom_device.dart +++ b/packages/flutter_tools/lib/src/custom_devices/custom_device.dart @@ -440,10 +440,8 @@ class CustomDevice extends Device { required CustomDeviceConfig config, required super.logger, required ProcessManager processManager, - required bool useImplicitPubspecResolution, }) : _config = config, _logger = logger, - _useImplicitPubspecResolution = useImplicitPubspecResolution, _processManager = processManager, _processUtils = ProcessUtils( processManager: processManager, @@ -471,7 +469,6 @@ class CustomDevice extends Device { final ProcessUtils _processUtils; final Map _sessions = {}; final CustomDeviceLogReader _globalLogReader; - final bool _useImplicitPubspecResolution; @override final DevicePortForwarder portForwarder; @@ -765,7 +762,6 @@ class CustomDevice extends Device { mainPath: mainPath, depfilePath: defaultDepfilePath, assetDirPath: assetBundleDir, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); // if we have a post build step (needed for some embedders), execute it @@ -827,17 +823,14 @@ class CustomDevices extends PollingDeviceDiscovery { required ProcessManager processManager, required Logger logger, required CustomDevicesConfig config, - required bool useImplicitPubspecResolution, }) : _customDeviceWorkflow = CustomDeviceWorkflow( featureFlags: featureFlags, ), - _useImplicitPubspecResolution = useImplicitPubspecResolution, _logger = logger, _processManager = processManager, _config = config, super('custom devices'); - final bool _useImplicitPubspecResolution; final CustomDeviceWorkflow _customDeviceWorkflow; final ProcessManager _processManager; final Logger _logger; @@ -859,7 +852,6 @@ class CustomDevices extends PollingDeviceDiscovery { config: config, logger: _logger, processManager: _processManager, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ) ).toList(); } diff --git a/packages/flutter_tools/lib/src/dart/generate_synthetic_packages.dart b/packages/flutter_tools/lib/src/dart/generate_synthetic_packages.dart index b5c0e6f1339..066cab28fd0 100644 --- a/packages/flutter_tools/lib/src/dart/generate_synthetic_packages.dart +++ b/packages/flutter_tools/lib/src/dart/generate_synthetic_packages.dart @@ -9,6 +9,7 @@ import '../base/file_system.dart'; import '../base/utils.dart'; import '../build_system/build_system.dart'; import '../build_system/build_targets.dart'; +import '../features.dart'; Future generateLocalizationsSyntheticPackage({ required Environment environment, @@ -51,19 +52,19 @@ Future generateLocalizationsSyntheticPackage({ if (isSyntheticL10nPackage == false) { return; } - } else if (!environment.useImplicitPubspecResolution) { - // --no-implicit-pubspec-resolution was passed, and synthetic-packages: true was not. + } else if (featureFlags.isExplicitPackageDependenciesEnabled) { + // synthetic-packages: true was not set and it is no longer the defualt. return; } - if (!environment.useImplicitPubspecResolution) { + if (featureFlags.isExplicitPackageDependenciesEnabled) { throwToolExit( - 'Cannot generate a synthetic package when --no-implicit-pubspec-resolution is passed.\n' + 'Cannot generate a synthetic package when explicit-package-dependencies is enabled.\n' '\n' 'Synthetic package output (package:flutter_gen) is deprecated: ' 'https://flutter.dev/to/flutter-gen-deprecation. If you are seeing this ' - 'message either you have provided --no-implicit-pubspec-resolution, or ' - 'it is the default value (see flutter --verbose --help).', + 'message either you have provided explicit-package-dependencies, or it ' + 'is the default value (see flutter config --help).', ); } diff --git a/packages/flutter_tools/lib/src/drive/drive_service.dart b/packages/flutter_tools/lib/src/drive/drive_service.dart index b260a031073..bf6ccb6f017 100644 --- a/packages/flutter_tools/lib/src/drive/drive_service.dart +++ b/packages/flutter_tools/lib/src/drive/drive_service.dart @@ -28,20 +28,17 @@ class FlutterDriverFactory { required ProcessUtils processUtils, required String dartSdkPath, required DevtoolsLauncher devtoolsLauncher, - required bool useImplicitPubspecResolution, }) : _applicationPackageFactory = applicationPackageFactory, _logger = logger, _processUtils = processUtils, _dartSdkPath = dartSdkPath, - _devtoolsLauncher = devtoolsLauncher, - _useImplicitPubspecResolution = useImplicitPubspecResolution; + _devtoolsLauncher = devtoolsLauncher; final ApplicationPackageFactory _applicationPackageFactory; final Logger _logger; final ProcessUtils _processUtils; final String _dartSdkPath; final DevtoolsLauncher _devtoolsLauncher; - final bool _useImplicitPubspecResolution; /// Create a driver service for running `flutter drive`. DriverService createDriverService(bool web) { @@ -50,7 +47,6 @@ class FlutterDriverFactory { logger: _logger, processUtils: _processUtils, dartSdkPath: _dartSdkPath, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); } return FlutterDriverService( diff --git a/packages/flutter_tools/lib/src/drive/web_driver_service.dart b/packages/flutter_tools/lib/src/drive/web_driver_service.dart index d95581be4fa..8958a4150b7 100644 --- a/packages/flutter_tools/lib/src/drive/web_driver_service.dart +++ b/packages/flutter_tools/lib/src/drive/web_driver_service.dart @@ -30,16 +30,13 @@ class WebDriverService extends DriverService { required ProcessUtils processUtils, required String dartSdkPath, required Logger logger, - required bool useImplicitPubspecResolution, }) : _processUtils = processUtils, _dartSdkPath = dartSdkPath, - _logger = logger, - _useImplicitPubspecResolution = useImplicitPubspecResolution; + _logger = logger; final ProcessUtils _processUtils; final String _dartSdkPath; final Logger _logger; - final bool _useImplicitPubspecResolution; late ResidentRunner _residentRunner; Uri? _webUri; @@ -97,7 +94,6 @@ class WebDriverService extends DriverService { analytics: globals.analytics, logger: _logger, systemClock: globals.systemClock, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); final Completer appStartedCompleter = Completer.sync(); final Future runFuture = _residentRunner.run( diff --git a/packages/flutter_tools/lib/src/features.dart b/packages/flutter_tools/lib/src/features.dart index 7c86574bc8f..4e91d0abb63 100644 --- a/packages/flutter_tools/lib/src/features.dart +++ b/packages/flutter_tools/lib/src/features.dart @@ -54,6 +54,9 @@ abstract class FeatureFlags { /// Whether Swift Package Manager dependency management is enabled. bool get isSwiftPackageManagerEnabled => false; + /// Whether explicit package dependency management is enabled. + bool get isExplicitPackageDependenciesEnabled => false; + /// Whether a particular feature is enabled for the current channel. /// /// Prefer using one of the specific getters above instead of this API. @@ -74,6 +77,7 @@ const List allFeatures = [ nativeAssets, previewDevice, swiftPackageManager, + explicitPackageDependencies, ]; /// All current Flutter feature flags that can be configured. @@ -193,6 +197,30 @@ const Feature swiftPackageManager = Feature( ), ); +/// Enable explicit resolution and generation of package dependencies. +const Feature explicitPackageDependencies = Feature( + name: 'support for dev_dependency plugins', + configSetting: 'explicit-package-dependencies', + extraHelpText: + 'Plugins that are resolved as result of being in "dev_dependencies" of a ' + 'package are not included in release builds of an app. By enabling this ' + 'feature, the synthetic "package:flutter_gen" can no longer be generated ' + 'and the legacy ".flutter-plugins" tool artifact is no longer generated.\n' + '\n' + 'See also:\n' + '* https://flutter.dev/to/flutter-plugins-configuration.\n' + '* https://flutter.dev/to/flutter-gen-deprecation.', + master: FeatureChannelSetting( + available: true, + ), + beta: FeatureChannelSetting( + available: true, + ), + stable: FeatureChannelSetting( + available: true, + ), +); + /// A [Feature] is a process for conditionally enabling tool features. /// /// All settings are optional, and if not provided will generally default to diff --git a/packages/flutter_tools/lib/src/flutter_device_manager.dart b/packages/flutter_tools/lib/src/flutter_device_manager.dart index a0d33725709..9611519b4bf 100644 --- a/packages/flutter_tools/lib/src/flutter_device_manager.dart +++ b/packages/flutter_tools/lib/src/flutter_device_manager.dart @@ -53,7 +53,6 @@ class FlutterDeviceManager extends DeviceManager { required WindowsWorkflow windowsWorkflow, required CustomDevicesConfig customDevicesConfig, required TestCompilerNativeAssetsBuilder? nativeAssetsBuilder, - required bool useImplicitPubspecResolution, }) : deviceDiscoverers = [ AndroidDevices( logger: logger, @@ -80,7 +79,6 @@ class FlutterDeviceManager extends DeviceManager { logger: logger, artifacts: artifacts, nativeAssetsBuilder: nativeAssetsBuilder, - useImplicitPubspecResolution: useImplicitPubspecResolution, ), MacOSDevices( processManager: processManager, @@ -105,7 +103,6 @@ class FlutterDeviceManager extends DeviceManager { logger: logger, processManager: processManager, featureFlags: featureFlags, - useImplicitPubspecResolution: useImplicitPubspecResolution, ), LinuxDevices( platform: platform, @@ -134,7 +131,6 @@ class FlutterDeviceManager extends DeviceManager { processManager: processManager, logger: logger, config: customDevicesConfig, - useImplicitPubspecResolution: useImplicitPubspecResolution, ), ]; diff --git a/packages/flutter_tools/lib/src/flutter_features.dart b/packages/flutter_tools/lib/src/flutter_features.dart index df5b5c3be8f..9be6cf993e3 100644 --- a/packages/flutter_tools/lib/src/flutter_features.dart +++ b/packages/flutter_tools/lib/src/flutter_features.dart @@ -61,6 +61,9 @@ class FlutterFeatureFlags implements FeatureFlags { @override bool get isSwiftPackageManagerEnabled => isEnabled(swiftPackageManager); + @override + bool get isExplicitPackageDependenciesEnabled => isEnabled(explicitPackageDependencies); + @override bool isEnabled(Feature feature) { final String currentChannel = _flutterVersion.channel; diff --git a/packages/flutter_tools/lib/src/flutter_plugins.dart b/packages/flutter_tools/lib/src/flutter_plugins.dart index fcd45e26d86..5bed044b59e 100644 --- a/packages/flutter_tools/lib/src/flutter_plugins.dart +++ b/packages/flutter_tools/lib/src/flutter_plugins.dart @@ -89,30 +89,13 @@ Future _pluginFromPackage( /// Returns a list of all plugins to be registered with the provided [project]. /// -/// [useImplicitPubspecResolution] defines if legacy rules for traversing the -/// pub dependencies of a package implies, namely, that if `true`, all plugins -/// are assumed to be non-dev dependencies. Code that calls [findPlugins] in -/// order to obtain _other_ information about the plugins, such as whether a -/// plugin uses a specific language or platform can safely pass either `true` -/// or `false`; however a value of `false` _will_ cause `dart pub deps --json` -/// to trigger, which in turn could have other side-effects. -/// -/// Please reach out to matanlurey@ if you find you need: -/// ```dart -/// useImplicitPubspecResolution: true -/// ``` -/// -/// ... in order for your code to function, as that path is being deprecated: -/// . -/// -/// --- -/// /// If [throwOnError] is `true`, an empty package configuration is an error. Future> findPlugins( FlutterProject project, { - required bool useImplicitPubspecResolution, bool throwOnError = true, + bool? determineDevDependencies, }) async { + determineDevDependencies ??= featureFlags.isExplicitPackageDependenciesEnabled; final List plugins = []; final FileSystem fs = project.directory.fileSystem; final File packageConfigFile = findPackageConfigFileOrDefault(project.directory); @@ -122,10 +105,7 @@ Future> findPlugins( throwOnError: throwOnError, ); final Set devDependencies; - if (useImplicitPubspecResolution) { - // With --implicit-pubspec-resolution, we do not want to check for what - // plugins are dev dependencies and instead continue to assume the previous - // behavior (all plugins are non-dev dependencies). + if (!determineDevDependencies) { devDependencies = {}; } else { devDependencies = await computeExclusiveDevDependencies( @@ -1062,14 +1042,16 @@ Future refreshPluginsList( bool iosPlatform = false, bool macOSPlatform = false, bool forceCocoaPodsOnly = false, - required bool useImplicitPubspecResolution, + bool? determineDevDependencies, + bool? generateLegacyPlugins, }) async { - final List plugins = await findPlugins(project, useImplicitPubspecResolution: useImplicitPubspecResolution); + final List plugins = await findPlugins(project, determineDevDependencies: determineDevDependencies); // Sort the plugins by name to keep ordering stable in generated files. plugins.sort((Plugin left, Plugin right) => left.name.compareTo(right.name)); // TODO(matanlurey): Remove once migration is complete. // Write the legacy plugin files to avoid breaking existing apps. - final bool legacyChanged = useImplicitPubspecResolution && _writeFlutterPluginsListLegacy(project, plugins); + generateLegacyPlugins ??= !featureFlags.isExplicitPackageDependenciesEnabled; + final bool legacyChanged = generateLegacyPlugins && _writeFlutterPluginsListLegacy(project, plugins); bool swiftPackageManagerEnabledIos = false; bool swiftPackageManagerEnabledMacos = false; @@ -1119,7 +1101,7 @@ Future injectBuildTimePluginFilesForWebPlatform( FlutterProject project, { required Directory destination, }) async { - final List plugins = await findPlugins(project, useImplicitPubspecResolution: true); + final List plugins = await findPlugins(project); final Map> pluginsByPlatform = _resolvePluginImplementations(plugins, pluginResolutionType: _PluginResolutionType.nativeOrDart); await _writeWebPluginRegistrant(project, pluginsByPlatform[WebPlugin.kConfigKey]!, destination); } @@ -1138,7 +1120,6 @@ Future injectBuildTimePluginFilesForWebPlatform( /// Assumes [refreshPluginsList] has been called since last change to `pubspec.yaml`. Future injectPlugins( FlutterProject project, { - required bool useImplicitPubspecResolution, bool androidPlatform = false, bool iosPlatform = false, bool linuxPlatform = false, @@ -1147,7 +1128,7 @@ Future injectPlugins( Iterable? allowedPlugins, DarwinDependencyManagement? darwinDependencyManagement, }) async { - final List plugins = await findPlugins(project, useImplicitPubspecResolution: useImplicitPubspecResolution); + final List plugins = await findPlugins(project); final Map> pluginsByPlatform = _resolvePluginImplementations(plugins, pluginResolutionType: _PluginResolutionType.nativeOrDart); if (androidPlatform) { @@ -1575,7 +1556,7 @@ Future generateMainDartWithPluginRegistrant( String currentMainUri, File mainFile, ) async { - final List plugins = await findPlugins(rootProject, useImplicitPubspecResolution: true); + final List plugins = await findPlugins(rootProject); final List resolutions = resolvePlatformImplementation( plugins, selectDartPluginsOnly: true, diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index 06be3d76ff0..e634f8dc20a 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart @@ -938,7 +938,7 @@ Future _isPluginSwiftPackageOnly({ required String pluginName, required FileSystem fileSystem, }) async { - final List plugins = await findPlugins(project, useImplicitPubspecResolution: true); + final List plugins = await findPlugins(project); final Plugin? matched = plugins .where((Plugin plugin) => plugin.name.toLowerCase() == pluginName.toLowerCase() && diff --git a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart index 40473a060df..ad5a5f23546 100644 --- a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart +++ b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart @@ -57,7 +57,6 @@ class DwdsWebRunnerFactory extends WebRunnerFactory { required SystemClock systemClock, required Usage usage, required Analytics analytics, - required bool useImplicitPubspecResolution, bool machine = false, }) { return ResidentWebRunner( @@ -73,7 +72,6 @@ class DwdsWebRunnerFactory extends WebRunnerFactory { systemClock: systemClock, fileSystem: fileSystem, logger: logger, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); } } @@ -89,7 +87,6 @@ class ResidentWebRunner extends ResidentRunner { bool stayResident = true, bool machine = false, required this.flutterProject, - required bool useImplicitPubspecResolution, required DebuggingOptions debuggingOptions, required FileSystem fileSystem, required Logger logger, @@ -105,7 +102,6 @@ class ResidentWebRunner extends ResidentRunner { _usage = usage, _analytics = analytics, _urlTunneller = urlTunneller, - _useImplicitPubspecResolution = useImplicitPubspecResolution, super( [device], target: target ?? fileSystem.path.join('lib', 'main.dart'), @@ -113,7 +109,6 @@ class ResidentWebRunner extends ResidentRunner { stayResident: stayResident, machine: machine, devtoolsHandler: devtoolsHandler, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); final FileSystem _fileSystem; @@ -122,7 +117,6 @@ class ResidentWebRunner extends ResidentRunner { final Usage _usage; final Analytics _analytics; final UrlTunneller? _urlTunneller; - final bool _useImplicitPubspecResolution; @override Logger get logger => _logger; @@ -351,7 +345,6 @@ Please provide a valid TCP port (an integer between 0 and 65535, inclusive). flutterVersion: globals.flutterVersion, usage: globals.flutterUsage, analytics: globals.analytics, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); await webBuilder.buildWeb( flutterProject, @@ -448,7 +441,6 @@ Please provide a valid TCP port (an integer between 0 and 65535, inclusive). flutterVersion: globals.flutterVersion, usage: globals.flutterUsage, analytics: globals.analytics, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); await webBuilder.buildWeb( flutterProject, diff --git a/packages/flutter_tools/lib/src/macos/cocoapod_utils.dart b/packages/flutter_tools/lib/src/macos/cocoapod_utils.dart index 007d6206c88..9226778e6b9 100644 --- a/packages/flutter_tools/lib/src/macos/cocoapod_utils.dart +++ b/packages/flutter_tools/lib/src/macos/cocoapod_utils.dart @@ -38,7 +38,8 @@ Future processPodsIfNeeded( // file being generated. A better long-term fix would be not to have a call to refreshPluginsList // at all, and instead have it implicitly run by the FlutterCommand instead. See // https://github.com/flutter/flutter/issues/157391 for details. - useImplicitPubspecResolution: false, + determineDevDependencies: false, + generateLegacyPlugins: false, ); // If there are no plugins and if the project is a not module with an existing diff --git a/packages/flutter_tools/lib/src/preview_device.dart b/packages/flutter_tools/lib/src/preview_device.dart index 71e71122da6..2577a29e607 100644 --- a/packages/flutter_tools/lib/src/preview_device.dart +++ b/packages/flutter_tools/lib/src/preview_device.dart @@ -37,14 +37,12 @@ class PreviewDeviceDiscovery extends PollingDeviceDiscovery { required Logger logger, required ProcessManager processManager, required FeatureFlags featureFlags, - required bool useImplicitPubspecResolution, }) : _artifacts = artifacts, _logger = logger, _processManager = processManager, _fileSystem = fileSystem, _platform = platform, _features = featureFlags, - _useImplicitPubspecResolution = useImplicitPubspecResolution, super('Flutter preview device'); final Platform _platform; @@ -53,7 +51,6 @@ class PreviewDeviceDiscovery extends PollingDeviceDiscovery { final ProcessManager _processManager; final FileSystem _fileSystem; final FeatureFlags _features; - final bool _useImplicitPubspecResolution; @override bool get canListAnything => _platform.isWindows; @@ -78,7 +75,6 @@ class PreviewDeviceDiscovery extends PollingDeviceDiscovery { logger: _logger, processManager: _processManager, previewBinary: previewBinary, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); return [ if (_features.isPreviewDeviceEnabled) @@ -103,7 +99,6 @@ class PreviewDevice extends Device { required FileSystem fileSystem, required Artifacts artifacts, required File previewBinary, - required bool useImplicitPubspecResolution, @visibleForTesting BundleBuilderFactory builderFactory = _defaultBundleBuilder, }) : _previewBinary = previewBinary, _processManager = processManager, @@ -111,7 +106,6 @@ class PreviewDevice extends Device { _fileSystem = fileSystem, _bundleBuilderFactory = builderFactory, _artifacts = artifacts, - _useImplicitPubspecResolution = useImplicitPubspecResolution, super('preview', ephemeral: false, category: Category.desktop, platformType: PlatformType.windowsPreview); final ProcessManager _processManager; @@ -120,7 +114,6 @@ class PreviewDevice extends Device { final BundleBuilderFactory _bundleBuilderFactory; final Artifacts _artifacts; final File _previewBinary; - final bool _useImplicitPubspecResolution; /// The set of plugins that are allowed to be used by Preview users. /// @@ -191,7 +184,6 @@ class PreviewDevice extends Device { mainPath: mainPath, platform: TargetPlatform.windows_x64, assetDirPath: getAssetBuildDirectory(), - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); copyDirectory(_fileSystem.directory( getAssetBuildDirectory()), diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart index 12e10760835..d222e273a25 100644 --- a/packages/flutter_tools/lib/src/project.dart +++ b/packages/flutter_tools/lib/src/project.dart @@ -321,7 +321,6 @@ class FlutterProject { Future regeneratePlatformSpecificTooling({ DeprecationBehavior deprecationBehavior = DeprecationBehavior.none, Iterable? allowedPlugins, - required bool useImplicitPubspecResolution, }) async { return ensureReadyForPlatformSpecificTooling( androidPlatform: android.existsSync(), @@ -334,7 +333,6 @@ class FlutterProject { webPlatform: featureFlags.isWebEnabled && web.existsSync(), deprecationBehavior: deprecationBehavior, allowedPlugins: allowedPlugins, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); } @@ -349,7 +347,6 @@ class FlutterProject { bool webPlatform = false, DeprecationBehavior deprecationBehavior = DeprecationBehavior.none, Iterable? allowedPlugins, - required bool useImplicitPubspecResolution, }) async { if (!directory.existsSync() || isPlugin) { return; @@ -358,7 +355,6 @@ class FlutterProject { this, iosPlatform: iosPlatform, macOSPlatform: macOSPlatform, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); if (androidPlatform) { await android.ensureReadyForPlatformSpecificTooling(deprecationBehavior: deprecationBehavior); @@ -386,7 +382,6 @@ class FlutterProject { macOSPlatform: macOSPlatform, windowsPlatform: windowsPlatform, allowedPlugins: allowedPlugins, - useImplicitPubspecResolution: useImplicitPubspecResolution, ); } diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index b88ba4b1664..af8aabbea5d 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -1053,7 +1053,6 @@ abstract class ResidentRunner extends ResidentHandlers { this.flutterDevices, { required this.target, required this.debuggingOptions, - required bool useImplicitPubspecResolution, String? projectRootPath, this.stayResident = true, this.hotMode = true, @@ -1064,7 +1063,6 @@ abstract class ResidentRunner extends ResidentHandlers { packagesFilePath = debuggingOptions.buildInfo.packageConfigPath, projectRootPath = projectRootPath ?? globals.fs.currentDirectory.path, _dillOutputPath = dillOutputPath, - _useImplicitPubspecResolution = useImplicitPubspecResolution, artifactDirectory = dillOutputPath == null ? globals.fs.systemTempDirectory.createTempSync('flutter_tool.') : globals.fs.file(dillOutputPath).parent, @@ -1097,7 +1095,6 @@ abstract class ResidentRunner extends ResidentHandlers { @override final bool stayResident; final String? _dillOutputPath; - final bool _useImplicitPubspecResolution; /// The parent location of the incremental artifacts. final Directory artifactDirectory; final String packagesFilePath; @@ -1224,7 +1221,6 @@ abstract class ResidentRunner extends ResidentHandlers { // Needed for Dart plugin registry generation. kTargetFile: mainPath, }, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); final CompositeTarget compositeTarget = CompositeTarget([ diff --git a/packages/flutter_tools/lib/src/run_cold.dart b/packages/flutter_tools/lib/src/run_cold.dart index b07ee54dbb1..55e699cdc14 100644 --- a/packages/flutter_tools/lib/src/run_cold.dart +++ b/packages/flutter_tools/lib/src/run_cold.dart @@ -18,7 +18,6 @@ class ColdRunner extends ResidentRunner { super.flutterDevices, { required super.target, required super.debuggingOptions, - required super.useImplicitPubspecResolution, this.traceStartup = false, this.awaitFirstFrameWhenTracing = true, this.applicationBinary, diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index 733c7c8ec5b..dc27fd0bf37 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart @@ -79,7 +79,6 @@ class HotRunner extends ResidentRunner { super.flutterDevices, { required super.target, required super.debuggingOptions, - required super.useImplicitPubspecResolution, this.benchmarkMode = false, this.applicationBinary, this.hostIsIde = false, diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index 44b573a112e..102d500e38a 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -1770,7 +1770,6 @@ Run 'flutter -h' (or 'flutter -h') for available flutter commands and projectDir: project.directory, packageConfigPath: packageConfigPath(), generateDartPluginRegistry: true, - useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution), ); await pub.get( @@ -1793,7 +1792,6 @@ Run 'flutter -h' (or 'flutter -h') for available flutter commands and } await project.regeneratePlatformSpecificTooling( allowedPlugins: allowedPlugins, - useImplicitPubspecResolution: boolArg(FlutterGlobalOptions.kImplicitPubspecResolution, global: true), ); if (reportNullSafety) { await _sendNullSafetyAnalyticsEvents(project); diff --git a/packages/flutter_tools/lib/src/tester/flutter_tester.dart b/packages/flutter_tools/lib/src/tester/flutter_tester.dart index 1ee57e3251c..651ab118854 100644 --- a/packages/flutter_tools/lib/src/tester/flutter_tester.dart +++ b/packages/flutter_tools/lib/src/tester/flutter_tester.dart @@ -51,7 +51,6 @@ class FlutterTesterDevice extends Device { required super.logger, required FileSystem fileSystem, required Artifacts artifacts, - required bool useImplicitPubspecResolution, TestCompilerNativeAssetsBuilder? nativeAssetsBuilder, }) : _processManager = processManager, _flutterVersion = flutterVersion, @@ -59,7 +58,6 @@ class FlutterTesterDevice extends Device { _fileSystem = fileSystem, _artifacts = artifacts, _nativeAssetsBuilder = nativeAssetsBuilder, - _useImplicitPubspecResolution = useImplicitPubspecResolution, super( platformType: null, category: null, @@ -72,7 +70,6 @@ class FlutterTesterDevice extends Device { final FileSystem _fileSystem; final Artifacts _artifacts; final TestCompilerNativeAssetsBuilder? _nativeAssetsBuilder; - final bool _useImplicitPubspecResolution; Process? _process; final DevicePortForwarder _portForwarder = const NoOpDevicePortForwarder(); @@ -167,7 +164,6 @@ class FlutterTesterDevice extends Device { applicationKernelFilePath: applicationKernelFilePath, platform: TargetPlatform.tester, assetDirPath: assetDirectory.path, - useImplicitPubspecResolution: _useImplicitPubspecResolution, ); final List command = [ @@ -269,7 +265,6 @@ class FlutterTesterDevices extends PollingDeviceDiscovery { required ProcessManager processManager, required Logger logger, required FlutterVersion flutterVersion, - required bool useImplicitPubspecResolution, TestCompilerNativeAssetsBuilder? nativeAssetsBuilder, }) : _testerDevice = FlutterTesterDevice( kTesterDeviceId, @@ -279,7 +274,6 @@ class FlutterTesterDevices extends PollingDeviceDiscovery { logger: logger, flutterVersion: flutterVersion, nativeAssetsBuilder: nativeAssetsBuilder, - useImplicitPubspecResolution: useImplicitPubspecResolution, ), super('Flutter tester'); diff --git a/packages/flutter_tools/lib/src/web/compile.dart b/packages/flutter_tools/lib/src/web/compile.dart index 5928479a642..466596ce5b9 100644 --- a/packages/flutter_tools/lib/src/web/compile.dart +++ b/packages/flutter_tools/lib/src/web/compile.dart @@ -46,15 +46,13 @@ class WebBuilder { required Analytics analytics, required FlutterVersion flutterVersion, required FileSystem fileSystem, - required bool useImplicitPubspecResolution, }) : _logger = logger, _processManager = processManager, _buildSystem = buildSystem, _flutterUsage = usage, _analytics = analytics, _flutterVersion = flutterVersion, - _fileSystem = fileSystem, - _useImplicitPubspecResolution = useImplicitPubspecResolution; + _fileSystem = fileSystem; final Logger _logger; final ProcessManager _processManager; @@ -63,7 +61,6 @@ class WebBuilder { final Analytics _analytics; final FlutterVersion _flutterVersion; final FileSystem _fileSystem; - final bool _useImplicitPubspecResolution; Future buildWeb( FlutterProject flutterProject, @@ -74,8 +71,8 @@ class WebBuilder { String? baseHref, String? outputDirectoryPath, }) async { - final bool hasWebPlugins = - (await findPlugins(flutterProject, useImplicitPubspecResolution: true)).any((Plugin p) => p.platforms.containsKey(WebPlugin.kConfigKey)); + final bool hasWebPlugins = (await findPlugins(flutterProject)) + .any((Plugin p) => p.platforms.containsKey(WebPlugin.kConfigKey)); final Directory outputDirectory = outputDirectoryPath == null ? _fileSystem.directory(getWebBuildDirectory()) : _fileSystem.directory(outputDirectoryPath); @@ -89,7 +86,8 @@ class WebBuilder { final ProjectMigration migration = ProjectMigration(migrators); await migration.run(); - final Status status = _logger.startProgress('Compiling $target for the Web...'); + final Status status = + _logger.startProgress('Compiling $target for the Web...'); final Stopwatch sw = Stopwatch()..start(); try { final BuildResult result = await _buildSystem.build( @@ -97,7 +95,9 @@ class WebBuilder { Environment( projectDir: _fileSystem.currentDirectory, outputDir: outputDirectory, - buildDir: flutterProject.directory.childDirectory('.dart_tool').childDirectory('flutter_build'), + buildDir: flutterProject.directory + .childDirectory('.dart_tool') + .childDirectory('flutter_build'), defines: { kTargetFile: target, kHasWebPlugins: hasWebPlugins.toString(), @@ -114,15 +114,17 @@ class WebBuilder { usage: _flutterUsage, analytics: _analytics, cacheDir: globals.cache.getRoot(), - engineVersion: globals.artifacts!.usesLocalArtifacts ? null : _flutterVersion.engineRevision, + engineVersion: globals.artifacts!.usesLocalArtifacts + ? null + : _flutterVersion.engineRevision, flutterRootDir: _fileSystem.directory(Cache.flutterRoot), // Web uses a different Dart plugin registry. // https://github.com/flutter/flutter/issues/80406 generateDartPluginRegistry: false, - useImplicitPubspecResolution: _useImplicitPubspecResolution, )); if (!result.success) { - for (final ExceptionMeasurement measurement in result.exceptions.values) { + for (final ExceptionMeasurement measurement + in result.exceptions.values) { _logger.printError( 'Target ${measurement.target} failed: ${measurement.exception}', stackTrace: measurement.fatal ? measurement.stackTrace : null, @@ -161,7 +163,8 @@ class WebBuilder { )); final Duration elapsedDuration = sw.elapsed; - final String variableName = compilerConfigs.length > 1 ? 'dual-compile' : 'dart2js'; + final String variableName = + compilerConfigs.length > 1 ? 'dual-compile' : 'dart2js'; _flutterUsage.sendTiming( 'build', variableName, @@ -189,7 +192,8 @@ enum WebRendererMode implements CliEnum { /// Always use skwasm. skwasm; - factory WebRendererMode.fromCliOption(String? webRendererString, {required bool useWasm}) { + factory WebRendererMode.fromCliOption(String? webRendererString, + {required bool useWasm}) { if (webRendererString == null) { return getDefault(useWasm: useWasm); } @@ -215,8 +219,8 @@ enum WebRendererMode implements CliEnum { /// Returns a consistent deprecation warning for the WebRendererMode. String get deprecationWarning => - 'The HTML Renderer is deprecated. Do not use "--web-renderer=$name".' - '\nSee: https://docs.flutter.dev/to/web-html-renderer-deprecation'; + 'The HTML Renderer is deprecated. Do not use "--web-renderer=$name".' + '\nSee: https://docs.flutter.dev/to/web-html-renderer-deprecation'; @override String get cliName => kebabCase(name); @@ -253,9 +257,11 @@ enum WebRendererMode implements CliEnum { List updateDartDefines(List inputDefines) { final Set dartDefinesSet = inputDefines.toSet(); - if (!inputDefines.any((String d) => d.startsWith('FLUTTER_WEB_AUTO_DETECT=')) - && inputDefines.any((String d) => d.startsWith('FLUTTER_WEB_USE_SKIA='))) { - dartDefinesSet.removeWhere((String d) => d.startsWith('FLUTTER_WEB_USE_SKIA=')); + if (!inputDefines + .any((String d) => d.startsWith('FLUTTER_WEB_AUTO_DETECT=')) && + inputDefines.any((String d) => d.startsWith('FLUTTER_WEB_USE_SKIA='))) { + dartDefinesSet + .removeWhere((String d) => d.startsWith('FLUTTER_WEB_USE_SKIA=')); } dartDefinesSet.addAll(dartDefines); return dartDefinesSet.toList(); @@ -264,16 +270,19 @@ enum WebRendererMode implements CliEnum { /// The correct precompiled artifact to use for each build and render mode for DDC with AMD modules. // TODO(markzipan): delete this when DDC's AMD module system is deprecated, https://github.com/flutter/flutter/issues/142060. -const Map> kAmdDartSdkJsArtifactMap = >{ - WebRendererMode.auto: { - NullSafetyMode.sound: HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSoundSdk, +const Map> + kAmdDartSdkJsArtifactMap = + >{ + WebRendererMode.auto: { + NullSafetyMode.sound: + HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSoundSdk, NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSdk, }, - WebRendererMode.canvaskit: { + WebRendererMode.canvaskit: { NullSafetyMode.sound: HostArtifact.webPrecompiledAmdCanvaskitSoundSdk, NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdCanvaskitSdk, }, - WebRendererMode.html: { + WebRendererMode.html: { NullSafetyMode.sound: HostArtifact.webPrecompiledAmdSoundSdk, NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdSdk, }, @@ -281,48 +290,63 @@ const Map> kAmdDartSdkJsArtif /// The correct source map artifact to use for each build and render mode for DDC with AMD modules. // TODO(markzipan): delete this when DDC's AMD module system is deprecated, https://github.com/flutter/flutter/issues/142060. -const Map> kAmdDartSdkJsMapArtifactMap = >{ - WebRendererMode.auto: { - NullSafetyMode.sound: HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSoundSdkSourcemaps, - NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSdkSourcemaps, +const Map> + kAmdDartSdkJsMapArtifactMap = + >{ + WebRendererMode.auto: { + NullSafetyMode.sound: + HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSoundSdkSourcemaps, + NullSafetyMode.unsound: + HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSdkSourcemaps, }, - WebRendererMode.canvaskit: { - NullSafetyMode.sound: HostArtifact.webPrecompiledAmdCanvaskitSoundSdkSourcemaps, - NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdCanvaskitSdkSourcemaps, + WebRendererMode.canvaskit: { + NullSafetyMode.sound: + HostArtifact.webPrecompiledAmdCanvaskitSoundSdkSourcemaps, + NullSafetyMode.unsound: + HostArtifact.webPrecompiledAmdCanvaskitSdkSourcemaps, }, - WebRendererMode.html: { + WebRendererMode.html: { NullSafetyMode.sound: HostArtifact.webPrecompiledAmdSoundSdkSourcemaps, NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdSdkSourcemaps, }, }; /// The correct precompiled artifact to use for each build and render mode for DDC with DDC modules. -const Map> kDdcDartSdkJsArtifactMap = >{ - WebRendererMode.auto: { - NullSafetyMode.sound: HostArtifact.webPrecompiledDdcCanvaskitAndHtmlSoundSdk, +const Map> + kDdcDartSdkJsArtifactMap = + >{ + WebRendererMode.auto: { + NullSafetyMode.sound: + HostArtifact.webPrecompiledDdcCanvaskitAndHtmlSoundSdk, NullSafetyMode.unsound: HostArtifact.webPrecompiledDdcCanvaskitAndHtmlSdk, }, - WebRendererMode.canvaskit: { + WebRendererMode.canvaskit: { NullSafetyMode.sound: HostArtifact.webPrecompiledDdcCanvaskitSoundSdk, NullSafetyMode.unsound: HostArtifact.webPrecompiledDdcCanvaskitSdk, }, - WebRendererMode.html: { + WebRendererMode.html: { NullSafetyMode.sound: HostArtifact.webPrecompiledDdcSoundSdk, NullSafetyMode.unsound: HostArtifact.webPrecompiledDdcSdk, }, }; /// The correct source map artifact to use for each build and render mode for DDC with DDC modules. -const Map> kDdcDartSdkJsMapArtifactMap = >{ - WebRendererMode.auto: { - NullSafetyMode.sound: HostArtifact.webPrecompiledDdcCanvaskitAndHtmlSoundSdkSourcemaps, - NullSafetyMode.unsound: HostArtifact.webPrecompiledDdcCanvaskitAndHtmlSdkSourcemaps, +const Map> + kDdcDartSdkJsMapArtifactMap = + >{ + WebRendererMode.auto: { + NullSafetyMode.sound: + HostArtifact.webPrecompiledDdcCanvaskitAndHtmlSoundSdkSourcemaps, + NullSafetyMode.unsound: + HostArtifact.webPrecompiledDdcCanvaskitAndHtmlSdkSourcemaps, }, - WebRendererMode.canvaskit: { - NullSafetyMode.sound: HostArtifact.webPrecompiledDdcCanvaskitSoundSdkSourcemaps, - NullSafetyMode.unsound: HostArtifact.webPrecompiledDdcCanvaskitSdkSourcemaps, + WebRendererMode.canvaskit: { + NullSafetyMode.sound: + HostArtifact.webPrecompiledDdcCanvaskitSoundSdkSourcemaps, + NullSafetyMode.unsound: + HostArtifact.webPrecompiledDdcCanvaskitSdkSourcemaps, }, - WebRendererMode.html: { + WebRendererMode.html: { NullSafetyMode.sound: HostArtifact.webPrecompiledDdcSoundSdkSourcemaps, NullSafetyMode.unsound: HostArtifact.webPrecompiledDdcSdkSourcemaps, }, diff --git a/packages/flutter_tools/lib/src/web/web_runner.dart b/packages/flutter_tools/lib/src/web/web_runner.dart index 6cf020bd849..af7424a3b71 100644 --- a/packages/flutter_tools/lib/src/web/web_runner.dart +++ b/packages/flutter_tools/lib/src/web/web_runner.dart @@ -33,7 +33,6 @@ abstract class WebRunnerFactory { required SystemClock systemClock, required Usage usage, required Analytics analytics, - required bool useImplicitPubspecResolution, bool machine = false, }); } diff --git a/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart index 175239ea501..31ce4464493 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart @@ -1259,7 +1259,6 @@ class FakeHotRunnerFactory extends Fake implements HotRunnerFactory { Analytics? analytics, String? nativeAssetsYamlFile, HotRunnerNativeAssetsBuilder? nativeAssetsBuilder, - required bool useImplicitPubspecResolution, }) { if (_artifactTester != null) { for (final FlutterDevice device in devices) { diff --git a/packages/flutter_tools/test/commands.shard/hermetic/daemon_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/daemon_test.dart index 11922609f57..4e62f13b903 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/daemon_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/daemon_test.dart @@ -99,7 +99,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'daemon.version'})); final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere(_notEvent); @@ -112,7 +111,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); // Use the flutter_gallery project which has a known set of supported platforms. final String projectPath = globals.fs.path.join(getFlutterRoot(), 'dev', 'integration_tests', 'flutter_gallery'); @@ -217,7 +215,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); globals.printError('daemon.logMessage test'); final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere((DaemonMessage message) { @@ -236,7 +233,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); globals.printWarning('daemon.logMessage test'); final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere((DaemonMessage message) { @@ -257,7 +253,6 @@ void main() { daemonConnection, notifyingLogger: notifyingLogger, logToStdout: true, - useImplicitPubspecResolution: true, ); globals.printStatus('daemon.logMessage test'); return Future.value(); @@ -274,7 +269,6 @@ void main() { daemonConnection, notifyingLogger: notifyingLogger, logToStdout: true, - useImplicitPubspecResolution: true, ); globals.printBox('This is the box message', title: 'Sample title'); return Future.value(); @@ -289,7 +283,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); notifyingLogger.notifyVerbose = false; globals.printTrace('daemon.logMessage test 1'); @@ -311,7 +304,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); expect(notifyingLogger.notifyVerbose, false); @@ -330,7 +322,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); notifyingLogger.notifyVerbose = false; @@ -349,7 +340,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'daemon.shutdown'})); return daemon.onExit.then((int code) async { @@ -362,7 +352,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'app.restart'})); @@ -375,7 +364,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({ @@ -394,7 +382,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'app.stop'})); @@ -407,7 +394,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'device.getDevices'})); final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere(_notEvent); @@ -419,7 +405,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); daemon.deviceDomain.addDeviceDiscoverer(discoverer); @@ -436,7 +421,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); @@ -450,7 +434,6 @@ void main() { previewBinary: fs.file(r'preview_device.exe'), artifacts: Artifacts.test(fileSystem: fs), builderFactory: () => throw UnimplementedError('TODO implement builder factory'), - useImplicitPubspecResolution: true, )); final List> names = >[]; @@ -521,7 +504,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'device.discoverDevices'})); final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere(_notEvent); @@ -533,7 +515,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); daemon.deviceDomain.addDeviceDiscoverer(discoverer); @@ -551,7 +532,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); daemon.deviceDomain.addDeviceDiscoverer(discoverer); @@ -576,7 +556,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); daemon.deviceDomain.addDeviceDiscoverer(discoverer); @@ -628,7 +607,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); daemon.deviceDomain.addDeviceDiscoverer(discoverer); @@ -695,7 +673,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); daemon.deviceDomain.addDeviceDiscoverer(discoverer); @@ -755,7 +732,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); final FakePollingDeviceDiscovery discoverer1 = FakePollingDeviceDiscovery(); discoverer1.diagnostics = ['fake diagnostic 1', 'fake diagnostic 2']; @@ -781,7 +757,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'emulator.launch'})); @@ -794,7 +769,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); final Map params = {'emulatorId': 'device', 'coldBoot': 1}; daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'emulator.launch', 'params': params})); @@ -807,7 +781,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'emulator.getEmulators'})); final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere(_notEvent); @@ -822,7 +795,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); // Respond to any requests from the daemon to expose a URL. @@ -842,7 +814,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'devtools.serve'})); @@ -859,7 +830,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'devtools.serve'})); @@ -890,7 +860,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'proxy.connect', 'params': {'port': 123}})); @@ -951,7 +920,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'proxy.connect', 'params': {'port': 123}})); @@ -972,7 +940,6 @@ void main() { daemon = Daemon( daemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); daemonStreams.inputs.add(DaemonMessage({'id': 0, 'method': 'proxy.connect', 'params': {'port': 123}})); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/generate_localizations_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/generate_localizations_test.dart index 654c697b0a3..3572f24e3cd 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/generate_localizations_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/generate_localizations_test.dart @@ -377,7 +377,7 @@ untranslated-messages-file: lib/l10n/untranslated.json }); // Regression test for https://github.com/flutter/flutter/issues/120530. - testWithoutContext('dart format is run when generateLocalizations is called through build target', () async { + testUsingContext('dart format is run when generateLocalizations is called through build target', () async { final File arbFile = fileSystem.file(fileSystem.path.join('lib', 'l10n', 'app_en.arb')) ..createSync(recursive: true); arbFile.writeAsStringSync(''' diff --git a/packages/flutter_tools/test/commands.shard/hermetic/proxied_devices_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/proxied_devices_test.dart index bbf6da01b84..35468443cbb 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/proxied_devices_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/proxied_devices_test.dart @@ -71,7 +71,6 @@ void main() { daemon = Daemon( serverDaemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); fakeDevice = FakeAndroidDevice(); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); @@ -93,7 +92,6 @@ void main() { daemon = Daemon( serverDaemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); fakeDevice = FakeAndroidDevice(); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); @@ -116,7 +114,6 @@ void main() { daemon = Daemon( serverDaemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); fakeDevice = FakeAndroidDevice(); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); @@ -147,7 +144,6 @@ void main() { daemon = Daemon( serverDaemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); fakeDevice = FakeAndroidDevice(); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); @@ -201,7 +197,6 @@ void main() { daemon = Daemon( serverDaemonConnection, notifyingLogger: notifyingLogger, - useImplicitPubspecResolution: true, ); fakeDevice = FakeAndroidDevice(); final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery(); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart index ae038dd3ffa..1474fe995d9 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart @@ -1583,14 +1583,14 @@ class DaemonCapturingRunCommand extends RunCommand { @override Daemon createMachineDaemon() { daemon = super.createMachineDaemon(); - appDomain = daemon.appDomain = CapturingAppDomain(daemon, useImplicitPubspecResolution: true); + appDomain = daemon.appDomain = CapturingAppDomain(daemon); daemon.registerDomain(appDomain); return daemon; } } class CapturingAppDomain extends AppDomain { - CapturingAppDomain(super.daemon, {required super.useImplicitPubspecResolution}); + CapturingAppDomain(super.daemon); String? userIdentifier; bool? enableDevTools; diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart index 143fd71414f..0cba55056ea 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart @@ -544,6 +544,5 @@ class FakeBundleBuilder extends Fake implements BundleBuilder { String? assetDirPath, bool buildNativeAssets = true, @visibleForTesting BuildSystem? buildSystem, - required bool useImplicitPubspecResolution, }) async {} } diff --git a/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart b/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart index 31101526e14..86522c56129 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart @@ -15,6 +15,7 @@ import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/packages.dart'; import 'package:flutter_tools/src/dart/pub.dart'; +import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:unified_analytics/unified_analytics.dart'; import 'package:yaml/yaml.dart'; @@ -636,7 +637,7 @@ workspace: ), }); - testUsingContext('get --no-implicit-pubspec-resolution omits ".flutter-plugins"', () async { + testUsingContext('get explicit-packages-resolution omits ".flutter-plugins"', () async { final String projectPath = await createProject( tempDir, arguments: ['--template=plugin', '--no-pub', '--platforms=ios,android'], @@ -646,12 +647,15 @@ workspace: removeGeneratedFiles(exampleProjectPath); // Running flutter packages get also resolves the dependencies in the example/ project. - await runCommandIn(projectPath, 'get', globalArgs: ['--no-implicit-pubspec-resolution']); + await runCommandIn(projectPath, 'get'); expectDependenciesResolved(projectPath); expectDependenciesResolved(exampleProjectPath); expectPluginInjected(exampleProjectPath, includeLegacyPluginsList: false); }, overrides: { + FeatureFlags: () => TestFeatureFlags( + isExplicitPackageDependenciesEnabled: true, + ), Stdio: () => mockStdio, Pub: () => Pub.test( fileSystem: globals.fs, diff --git a/packages/flutter_tools/test/general.shard/bundle_builder_test.dart b/packages/flutter_tools/test/general.shard/bundle_builder_test.dart index 29618bd22e8..a9c9ad40663 100644 --- a/packages/flutter_tools/test/general.shard/bundle_builder_test.dart +++ b/packages/flutter_tools/test/general.shard/bundle_builder_test.dart @@ -48,7 +48,6 @@ void main() { assetDirPath: 'example', depfilePath: 'example.d', buildSystem: buildSystem, - useImplicitPubspecResolution: true, ); expect(globals.fs.file(globals.fs.path.join('example', 'kernel_blob.bin')).existsSync(), true); expect(globals.fs.file(globals.fs.path.join('example', 'LICENSE')).existsSync(), true); @@ -138,7 +137,6 @@ void main() { assetDirPath: 'example', depfilePath: 'example.d', buildSystem: TestBuildSystem.all(BuildResult(success: false)), - useImplicitPubspecResolution: true, ), throwsToolExit() ); @@ -184,7 +182,6 @@ void main() { assetDirPath: assetDirPath, depfilePath: depfilePath, buildSystem: buildSystem, - useImplicitPubspecResolution: true, ); expect(env, isNotNull); diff --git a/packages/flutter_tools/test/general.shard/cold_test.dart b/packages/flutter_tools/test/general.shard/cold_test.dart index ceaa0353125..51521645e4f 100644 --- a/packages/flutter_tools/test/general.shard/cold_test.dart +++ b/packages/flutter_tools/test/general.shard/cold_test.dart @@ -42,7 +42,6 @@ void main() { final int exitCode = await ColdRunner(devices, debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug), target: 'main.dart', - useImplicitPubspecResolution: true, ).attach(); expect(exitCode, 2); }); @@ -59,7 +58,6 @@ void main() { await ColdRunner(devices, debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug), target: 'main.dart', - useImplicitPubspecResolution: true, ).cleanupAtFinish(); expect(flutterDevice1.stopEchoingDeviceLogCount, 1); @@ -89,7 +87,6 @@ void main() { applicationBinary: applicationBinary, debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug), target: 'main.dart', - useImplicitPubspecResolution: true, ).run(); expect(result, 1); @@ -106,7 +103,6 @@ void main() { debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug), target: 'main.dart', traceStartup: true, - useImplicitPubspecResolution: true, ).run(); expect(result, 0); @@ -130,7 +126,6 @@ void main() { debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug), target: 'main.dart', traceStartup: true, - useImplicitPubspecResolution: true, ).run(); expect(result, 0); diff --git a/packages/flutter_tools/test/general.shard/commands/daemon_test.dart b/packages/flutter_tools/test/general.shard/commands/daemon_test.dart index b2240362d86..b294e6cb9fb 100644 --- a/packages/flutter_tools/test/general.shard/commands/daemon_test.dart +++ b/packages/flutter_tools/test/general.shard/commands/daemon_test.dart @@ -29,7 +29,6 @@ void main() { bindPorts.add(port); return socket; }, - useImplicitPubspecResolution: true, ); await server.run(); expect(bindCalledTimes, 1); @@ -57,7 +56,6 @@ void main() { } return socket; }, - useImplicitPubspecResolution: true, ); await server.run(); expect(bindCalledTimes, 2); diff --git a/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart b/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart index 9dc78fdaf6a..67f2a5d4846 100644 --- a/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart +++ b/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart @@ -123,7 +123,6 @@ void main() { config: testConfig, processManager: FakeProcessManager.any(), logger: BufferLogger.test(), - useImplicitPubspecResolution: true, ); final PrebuiltLinuxApp linuxApp = PrebuiltLinuxApp(executable: 'foo'); @@ -167,7 +166,6 @@ void main() { directory: dir, logger: BufferLogger.test() ), - useImplicitPubspecResolution: true, ).devices(), []); }); @@ -186,7 +184,6 @@ void main() { directory: dir, logger: BufferLogger.test() ), - useImplicitPubspecResolution: true, ).devices(), []); }); @@ -211,7 +208,6 @@ void main() { directory: dir, logger: BufferLogger.test() ), - useImplicitPubspecResolution: true, ).devices(), hasLength(1) ); @@ -240,7 +236,6 @@ void main() { directory: dir, logger: BufferLogger.test(), ), - useImplicitPubspecResolution: true, ); final List discoveredDevices = await discovery.discoverDevices(); @@ -270,7 +265,6 @@ void main() { directory: dir, logger: BufferLogger.test(), ), - useImplicitPubspecResolution: true, ); expect(await discovery.discoverDevices(), hasLength(0)); @@ -295,7 +289,6 @@ void main() { directory: dir, logger: BufferLogger.test(), ), - useImplicitPubspecResolution: true, ); expect(await discovery.discoverDevices(), hasLength(0)); @@ -315,7 +308,6 @@ void main() { config: testConfig, logger: BufferLogger.test(), processManager: FakeProcessManager.any(), - useImplicitPubspecResolution: true, ).isSupportedForProject(flutterProject), true); }); @@ -331,7 +323,6 @@ void main() { FakeCommand(command: testConfig.uninstallCommand), FakeCommand(command: testConfig.installCommand, onRun: (_) => bothCommandsWereExecuted = true), ]), - useImplicitPubspecResolution: true, ); expect(await device.installApp(PrebuiltLinuxApp(executable: 'exe')), true); @@ -394,7 +385,6 @@ void main() { config: testConfig, logger: BufferLogger.test(), processManager: processManager, - useImplicitPubspecResolution: true, ), appPackage: PrebuiltLinuxApp(executable: 'testexecutable'), logger: BufferLogger.test(), @@ -432,7 +422,6 @@ void main() { config: testConfigNonForwarding, logger: BufferLogger.test(), processManager: processManager, - useImplicitPubspecResolution: true, ), appPackage: PrebuiltLinuxApp(executable: 'testexecutable'), logger: BufferLogger.test(), @@ -498,7 +487,6 @@ void main() { directory: configFileDir, logger: BufferLogger.test() ), - useImplicitPubspecResolution: true, ); final List devices = await customDevices.discoverDevices(); @@ -548,7 +536,6 @@ void main() { config: testConfig, logger: BufferLogger.test(), processManager: processManager, - useImplicitPubspecResolution: true, ); expect(device.supportsScreenshot, true); @@ -577,7 +564,6 @@ void main() { ), logger: BufferLogger.test(), processManager: processManager, - useImplicitPubspecResolution: true, ); expect(device.supportsScreenshot, false); @@ -596,7 +582,6 @@ void main() { ), logger: BufferLogger.test(), processManager: FakeProcessManager.empty(), - useImplicitPubspecResolution: true, ); expect(await device.targetPlatform, TargetPlatform.linux_x64); @@ -664,7 +649,6 @@ class FakeBundleBuilder extends Fake implements BundleBuilder { String? assetDirPath, Uri? nativeAssets, bool buildNativeAssets = true, - required bool useImplicitPubspecResolution, @visibleForTesting BuildSystem? buildSystem }) async {} } diff --git a/packages/flutter_tools/test/general.shard/dart/generate_synthetic_packages_test.dart b/packages/flutter_tools/test/general.shard/dart/generate_synthetic_packages_test.dart index f29ca480209..e8d3c42ef0a 100644 --- a/packages/flutter_tools/test/general.shard/dart/generate_synthetic_packages_test.dart +++ b/packages/flutter_tools/test/general.shard/dart/generate_synthetic_packages_test.dart @@ -12,14 +12,16 @@ import 'package:flutter_tools/src/build_system/build_system.dart'; import 'package:flutter_tools/src/build_system/build_targets.dart'; import 'package:flutter_tools/src/build_system/targets/localizations.dart'; import 'package:flutter_tools/src/dart/generate_synthetic_packages.dart'; +import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/isolated/build_targets.dart'; import '../../src/common.dart'; -import '../../src/fake_process_manager.dart'; +import '../../src/context.dart'; +import '../../src/fakes.dart'; import '../../src/test_build_system.dart'; void main() { - testWithoutContext('calls buildSystem.build with blank l10n.yaml file', () async { + testUsingContext('calls buildSystem.build with blank l10n.yaml file', () async { // Project directory setup for gen_l10n logic final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -68,7 +70,7 @@ void main() { await completer.future; }); - testWithoutContext('calls buildSystem.build with l10n.yaml synthetic-package: true', () async { + testUsingContext('calls buildSystem.build with l10n.yaml synthetic-package: true', () async { // Project directory setup for gen_l10n logic final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -118,7 +120,7 @@ void main() { await completer.future; }); - testWithoutContext('calls buildSystem.build with l10n.yaml synthetic-package: null', () async { + testUsingContext('calls buildSystem.build with l10n.yaml synthetic-package: null', () async { // Project directory setup for gen_l10n logic final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -166,7 +168,7 @@ void main() { await completer.future; }); - testWithoutContext('does not call buildSystem.build when l10n.yaml is not present', () async { + testUsingContext('does not call buildSystem.build when l10n.yaml is not present', () async { // Project directory setup for gen_l10n logic final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -196,7 +198,7 @@ void main() { ); }); - testWithoutContext('does not call buildSystem.build with incorrect l10n.yaml format', () async { + testUsingContext('does not call buildSystem.build with incorrect l10n.yaml format', () async { // Project directory setup for gen_l10n logic final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -232,7 +234,7 @@ void main() { ); }); - testWithoutContext('does not call buildSystem.build with non-bool "synthetic-package" value', () async { + testUsingContext('does not call buildSystem.build with non-bool "synthetic-package" value', () async { // Project directory setup for gen_l10n logic final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -268,7 +270,7 @@ void main() { ); }); - testWithoutContext('synthetic-package: true (implicit) logs a deprecation warning', () async { + testUsingContext('synthetic-package: true (implicit) logs a deprecation warning', () async { // Project directory setup for gen_l10n logic. final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -305,7 +307,7 @@ void main() { ); }); - testWithoutContext('synthetic-package: true (explicit) logs a deprecation warning', () async { + testUsingContext('synthetic-package: true (explicit) logs a deprecation warning', () async { // Project directory setup for gen_l10n logic. final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -340,7 +342,7 @@ void main() { ); }); - testWithoutContext('synthetic-package: false has no deprecation warning', () async { + testUsingContext('synthetic-package: false has no deprecation warning', () async { // Project directory setup for gen_l10n logic final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -375,7 +377,7 @@ void main() { ); }); - testWithoutContext('synthetic-package: true with --no-implicit-pubspec-resolution is an error', () async { + testUsingContext('synthetic-package: true with explicit-packages-resolution is an error', () async { // Project directory setup for gen_l10n logic final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -397,7 +399,6 @@ void main() { logger: mockBufferLogger, artifacts: Artifacts.test(), processManager: FakeProcessManager.any(), - useImplicitPubspecResolution: false, ); // Will throw if build is called. final TestBuildSystem buildSystem = TestBuildSystem.all(null); @@ -408,11 +409,15 @@ void main() { buildSystem: buildSystem, buildTargets: const NoOpBuildTargets(), ), - throwsToolExit(message: 'Cannot generate a synthetic package when --no-implicit-pubspec-resolution is passed'), + throwsToolExit(message: 'Cannot generate a synthetic package when explicit-package-dependencies is enabled'), ); + }, overrides: { + FeatureFlags: () => TestFeatureFlags( + isExplicitPackageDependenciesEnabled: true, + ), }); - testWithoutContext('synthetic-package defaults to false if --no-implicit-pubspec-resolution is passed', () async { + testUsingContext('synthetic-package defaults to false if explicit-package-dependencies is enabled', () async { // Project directory setup for gen_l10n logic final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -434,7 +439,6 @@ void main() { logger: mockBufferLogger, artifacts: Artifacts.test(), processManager: FakeProcessManager.any(), - useImplicitPubspecResolution: false, ); // Will throw if build is called. final TestBuildSystem buildSystem = TestBuildSystem.all(null); @@ -447,5 +451,9 @@ void main() { ), returnsNormally, ); + }, overrides: { + FeatureFlags: () => TestFeatureFlags( + isExplicitPackageDependenciesEnabled: true, + ), }); } diff --git a/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart b/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart index 840a872d7e2..8854e2c7a62 100644 --- a/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart +++ b/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart @@ -318,7 +318,6 @@ class FakeWebRunnerFactory implements WebRunnerFactory { Usage? usage, Analytics? analytics, bool machine = false, - required bool useImplicitPubspecResolution, }) { expect(stayResident, isTrue); return FakeResidentRunner( @@ -382,7 +381,6 @@ WebDriverService setUpDriverService() { processManager: FakeProcessManager.any(), ), dartSdkPath: 'dart', - useImplicitPubspecResolution: true, ); } diff --git a/packages/flutter_tools/test/general.shard/hot_test.dart b/packages/flutter_tools/test/general.shard/hot_test.dart index 6a2b4bad382..6e25dbab72b 100644 --- a/packages/flutter_tools/test/general.shard/hot_test.dart +++ b/packages/flutter_tools/test/general.shard/hot_test.dart @@ -149,7 +149,6 @@ void main() { debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug), target: 'main.dart', devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, analytics: fakeAnalytics, ).restart(fullRestart: true); expect(result.isOk, false); @@ -182,7 +181,6 @@ void main() { debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug), target: 'main.dart', devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, reassembleHelper: ( List flutterDevices, Map> viewCache, @@ -232,7 +230,6 @@ void main() { debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug), target: 'main.dart', analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ).cleanupAfterSignal(); expect(shutdownTestingConfig.shutdownHookCalled, true); }, overrides: { @@ -261,7 +258,6 @@ void main() { debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug), target: 'main.dart', analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ).preExit(); expect(shutdownTestingConfig.shutdownHookCalled, true); }, overrides: { @@ -312,7 +308,6 @@ void main() { devtoolsHandler: createNoOpHandler, stopwatchFactory: fakeStopwatchFactory, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ).restart(fullRestart: true); expect(result.isOk, true); @@ -400,7 +395,6 @@ void main() { devtoolsHandler: createNoOpHandler, stopwatchFactory: fakeStopwatchFactory, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, reloadSourcesHelper: ( HotRunner hotRunner, List flutterDevices, @@ -507,7 +501,6 @@ void main() { target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); await expectLater(runner.restart(fullRestart: true), throwsA(isA().having((Exception e) => e.toString(), 'message', 'Exception: updateDevFS failed'))); @@ -543,7 +536,6 @@ void main() { target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); await expectLater(runner.restart(), throwsA(isA().having((Exception e) => e.toString(), 'message', 'Exception: updateDevFS failed'))); @@ -597,7 +589,6 @@ void main() { debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug), target: 'main.dart', analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ).attach(needsFullRestart: false); expect(exitCode, 2); }, overrides: { @@ -636,7 +627,6 @@ void main() { debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug), target: 'main.dart', analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ).cleanupAtFinish(); expect(device1.disposed, true); diff --git a/packages/flutter_tools/test/general.shard/isolated/hot_test.dart b/packages/flutter_tools/test/general.shard/isolated/hot_test.dart index f1fe433f343..60ee84f6b0a 100644 --- a/packages/flutter_tools/test/general.shard/isolated/hot_test.dart +++ b/packages/flutter_tools/test/general.shard/isolated/hot_test.dart @@ -90,7 +90,6 @@ void main() { devtoolsHandler: createNoOpHandler, nativeAssetsBuilder: FakeHotRunnerNativeAssetsBuilder(buildRunner), analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); final OperationResult result = await hotRunner.restart(fullRestart: true); expect(result.isOk, true); @@ -161,7 +160,6 @@ void main() { devtoolsHandler: createNoOpHandler, nativeAssetsBuilder: FakeHotRunnerNativeAssetsBuilder(buildRunner), analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); expect( () => hotRunner.run(), diff --git a/packages/flutter_tools/test/general.shard/isolated/resident_runner_test.dart b/packages/flutter_tools/test/general.shard/isolated/resident_runner_test.dart index 45999bdd01c..aec25320856 100644 --- a/packages/flutter_tools/test/general.shard/isolated/resident_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/isolated/resident_runner_test.dart @@ -74,7 +74,6 @@ void main() { nativeAssetsBuilder: FakeHotRunnerNativeAssetsBuilder(buildRunner), analytics: FakeAnalytics(), nativeAssetsYamlFile: 'foo.yaml', - useImplicitPubspecResolution: true, ); final int result = await residentRunner.run(); diff --git a/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart b/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart index 97c3899a3a5..1e2faf3613f 100644 --- a/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart @@ -345,7 +345,7 @@ void main() { ..writeAsStringSync('Existing release config'); final FlutterProject project = FlutterProject.fromDirectoryTest(fileSystem.directory('project')); - await injectPlugins(project, iosPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(project, iosPlatform: true); final String debugContents = projectUnderTest.ios.xcodeConfigFor('Debug').readAsStringSync(); expect(debugContents, contains( diff --git a/packages/flutter_tools/test/general.shard/plugins_test.dart b/packages/flutter_tools/test/general.shard/plugins_test.dart index 8c38156dbac..443d94980f9 100644 --- a/packages/flutter_tools/test/general.shard/plugins_test.dart +++ b/packages/flutter_tools/test/general.shard/plugins_test.dart @@ -404,7 +404,7 @@ dependencies: group('refreshPlugins', () { testUsingContext('Refreshing the plugin list is a no-op when the plugins list stays empty', () async { - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject); expect(flutterProject.flutterPluginsFile.existsSync(), false); expect(flutterProject.flutterPluginsDependenciesFile.existsSync(), false); @@ -417,7 +417,7 @@ dependencies: flutterProject.flutterPluginsFile.createSync(); flutterProject.flutterPluginsDependenciesFile.createSync(); - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject); expect(flutterProject.flutterPluginsFile.existsSync(), false); expect(flutterProject.flutterPluginsDependenciesFile.existsSync(), false); @@ -436,7 +436,7 @@ dependencies: iosProject.testExists = true; - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject); expect(flutterProject.flutterPluginsFile.existsSync(), true); expect(flutterProject.flutterPluginsDependenciesFile.existsSync(), true); @@ -450,7 +450,7 @@ dependencies: ProcessManager: () => FakeProcessManager.any(), }); - testUsingContext('Opting out of useImplicitPubspecResolution omits .flutter-plugins', () async { + testUsingContext('Opting in to explicit-package-dependencies omits .flutter-plugins', () async { createFakePlugins(fs, [ 'plugin_d', 'plugin_a', @@ -458,11 +458,14 @@ dependencies: '/local_plugins/plugin_b', ]); - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: false); + await refreshPluginsList(flutterProject); expect(flutterProject.flutterPluginsFile, isNot(exists)); expect(flutterProject.flutterPluginsDependenciesFile, exists); }, overrides: { + FeatureFlags: () => TestFeatureFlags( + isExplicitPackageDependenciesEnabled: true, + ), FileSystem: () => fs, ProcessManager: FakeProcessManager.empty, Pub: FakePubWithPrimedDeps.new, @@ -479,7 +482,7 @@ dependencies: final DateTime dateCreated = DateTime(1970); systemClock.currentTime = dateCreated; - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject); // Verify .flutter-plugins-dependencies is configured correctly. expect(flutterProject.flutterPluginsFile.existsSync(), true); @@ -597,7 +600,7 @@ dependencies: final DateTime dateCreated = DateTime(1970); systemClock.currentTime = dateCreated; - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject); expect(flutterProject.flutterPluginsDependenciesFile.existsSync(), true); final String pluginsString = flutterProject.flutterPluginsDependenciesFile.readAsStringSync(); @@ -674,7 +677,6 @@ dependencies: flutterProject, iosPlatform: true, macOSPlatform: true, - useImplicitPubspecResolution: true, ); expect(flutterProject.flutterPluginsDependenciesFile.existsSync(), true); @@ -720,7 +722,7 @@ dependencies: iosProject.usesSwiftPackageManager = true; macosProject.usesSwiftPackageManager = true; - await refreshPluginsList(flutterProject, forceCocoaPodsOnly: true, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject, forceCocoaPodsOnly: true); expect(flutterProject.flutterPluginsDependenciesFile.existsSync(), true); final String pluginsString = flutterProject.flutterPluginsDependenciesFile @@ -768,7 +770,6 @@ dependencies: flutterProject, iosPlatform: true, macOSPlatform: true, - useImplicitPubspecResolution: true, ); expect(flutterProject.flutterPluginsDependenciesFile.existsSync(), true); @@ -798,7 +799,7 @@ dependencies: iosProject.testExists = true; macosProject.exists = true; - await refreshPluginsList(flutterProject, iosPlatform: true, macOSPlatform: true, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject, iosPlatform: true, macOSPlatform: true); expect(iosProject.podManifestLock.existsSync(), false); expect(macosProject.podManifestLock.existsSync(), false); }, overrides: { @@ -817,11 +818,11 @@ dependencies: // Since there was no plugins list, the lock files will be invalidated. // The second call is where the plugins list is compared to the existing one, and if there is no change, // the podfiles shouldn't be invalidated. - await refreshPluginsList(flutterProject, iosPlatform: true, macOSPlatform: true, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject, iosPlatform: true, macOSPlatform: true); simulatePodInstallRun(iosProject); simulatePodInstallRun(macosProject); - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject); expect(iosProject.podManifestLock.existsSync(), true); expect(macosProject.podManifestLock.existsSync(), true); }, overrides: { @@ -842,7 +843,7 @@ dependencies: testUsingContext('Registrant uses new embedding if app uses new embedding', () async { androidProject.embeddingVersion = AndroidEmbeddingVersion.v2; - await injectPlugins(flutterProject, androidPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, androidPlatform: true); final File registrant = flutterProject.directory .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'io', 'flutter', 'plugins')) @@ -865,7 +866,7 @@ dependencies: await expectLater( () async { - await injectPlugins(flutterProject, androidPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, androidPlatform: true); }, throwsToolExit( message: "The plugin `plugin1` doesn't have a main class defined in " @@ -887,7 +888,7 @@ dependencies: createDualSupportJavaPlugin4(); - await injectPlugins(flutterProject, androidPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, androidPlatform: true); final File registrant = flutterProject.directory .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'io', 'flutter', 'plugins')) @@ -908,7 +909,7 @@ dependencies: flutterProject.isModule = true; androidProject.embeddingVersion = AndroidEmbeddingVersion.v2; - await injectPlugins(flutterProject, androidPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, androidPlatform: true); final File registrant = flutterProject.directory .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'io', 'flutter', 'plugins')) @@ -929,7 +930,7 @@ dependencies: createNewJavaPlugin1(); - await injectPlugins(flutterProject, androidPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, androidPlatform: true); final File registrant = flutterProject.directory .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'io', 'flutter', 'plugins')) @@ -950,7 +951,7 @@ dependencies: createDualSupportJavaPlugin4(); - await injectPlugins(flutterProject, androidPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, androidPlatform: true); final File registrant = flutterProject.directory .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'io', 'flutter', 'plugins')) @@ -971,7 +972,7 @@ dependencies: createDualSupportJavaPlugin4(); - await injectPlugins(flutterProject, androidPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, androidPlatform: true); final File registrant = flutterProject.directory .childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'io', 'flutter', 'plugins')) @@ -989,7 +990,7 @@ dependencies: testUsingContext('Does not throw when AndroidManifest.xml is not found', () async { final File manifest = fs.file('AndroidManifest.xml'); androidProject.appManifestFile = manifest; - await injectPlugins(flutterProject, androidPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, androidPlatform: true); }, overrides: { FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), @@ -1099,7 +1100,7 @@ flutter: dartPluginClass: SomePlugin '''); - await injectPlugins(flutterProject, androidPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, androidPlatform: true); final File registrantFile = androidProject.pluginRegistrantHost .childDirectory(fs.path.join('src', 'main', 'java', 'io', 'flutter', 'plugins')) @@ -1128,7 +1129,6 @@ flutter: flutterProject, iosPlatform: true, darwinDependencyManagement: dependencyManagement, - useImplicitPubspecResolution: true, ); final File registrantFile = iosProject.pluginRegistrantImplementation; @@ -1156,7 +1156,6 @@ flutter: flutterProject, macOSPlatform: true, darwinDependencyManagement: dependencyManagement, - useImplicitPubspecResolution: true, ); final File registrantFile = macosProject.managedDirectory.childFile('GeneratedPluginRegistrant.swift'); @@ -1185,7 +1184,6 @@ flutter: flutterProject, macOSPlatform: true, darwinDependencyManagement: dependencyManagement, - useImplicitPubspecResolution: true, ); final File registrantFile = macosProject.managedDirectory.childFile('GeneratedPluginRegistrant.swift'); @@ -1210,7 +1208,6 @@ flutter: flutterProject, macOSPlatform: true, darwinDependencyManagement: dependencyManagement, - useImplicitPubspecResolution: true, ); final File registrantFile = macosProject.managedDirectory.childFile('GeneratedPluginRegistrant.swift'); @@ -1224,7 +1221,7 @@ flutter: testUsingContext('Injecting creates generated Linux registrant', () async { createFakePlugin(fs); - await injectPlugins(flutterProject, linuxPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, linuxPlatform: true); final File registrantHeader = linuxProject.managedDirectory.childFile('generated_plugin_registrant.h'); final File registrantImpl = linuxProject.managedDirectory.childFile('generated_plugin_registrant.cc'); @@ -1273,7 +1270,7 @@ dependencies: flutterProject.manifest = manifest; - await injectPlugins(flutterProject, linuxPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, linuxPlatform: true); final File registrantImpl = linuxProject.managedDirectory.childFile('generated_plugin_registrant.cc'); @@ -1331,7 +1328,7 @@ dependencies: flutterProject.manifest = manifest; - await injectPlugins(flutterProject, linuxPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, linuxPlatform: true); final File registrantImpl = linuxProject.managedDirectory.childFile('generated_plugin_registrant.cc'); @@ -1354,7 +1351,7 @@ flutter: dartPluginClass: SomePlugin '''); - await injectPlugins(flutterProject, linuxPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, linuxPlatform: true); final File registrantImpl = linuxProject.managedDirectory.childFile('generated_plugin_registrant.cc'); @@ -1378,7 +1375,7 @@ flutter: dartPluginClass: SomePlugin '''); - await injectPlugins(flutterProject, linuxPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, linuxPlatform: true); final File registrantImpl = linuxProject.managedDirectory.childFile('generated_plugin_registrant.cc'); @@ -1393,7 +1390,7 @@ flutter: testUsingContext('Injecting creates generated Linux plugin Cmake file', () async { createFakePlugin(fs); - await injectPlugins(flutterProject, linuxPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, linuxPlatform: true); final File pluginMakefile = linuxProject.generatedPluginCmakeFile; @@ -1416,7 +1413,7 @@ flutter: '/local_plugins/plugin_b', ]); - await injectPlugins(flutterProject, linuxPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, linuxPlatform: true); final File pluginCmakeFile = linuxProject.generatedPluginCmakeFile; final File pluginRegistrant = linuxProject.managedDirectory.childFile('generated_plugin_registrant.cc'); @@ -1434,7 +1431,7 @@ flutter: testUsingContext('Injecting creates generated Windows registrant', () async { createFakePlugin(fs); - await injectPlugins(flutterProject, windowsPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, windowsPlatform: true); final File registrantHeader = windowsProject.managedDirectory.childFile('generated_plugin_registrant.h'); final File registrantImpl = windowsProject.managedDirectory.childFile('generated_plugin_registrant.cc'); @@ -1458,7 +1455,7 @@ flutter: dartPluginClass: SomePlugin '''); - await injectPlugins(flutterProject, windowsPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, windowsPlatform: true); final File registrantImpl = windowsProject.managedDirectory.childFile('generated_plugin_registrant.cc'); @@ -1481,7 +1478,7 @@ flutter: dartPluginClass: SomePlugin '''); - await injectPlugins(flutterProject, windowsPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, windowsPlatform: true); final File registrantImpl = windowsProject.managedDirectory.childFile('generated_plugin_registrant.cc'); @@ -1501,7 +1498,7 @@ flutter: '/local_plugins/plugin_b', ]); - await injectPlugins(flutterProject, windowsPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, windowsPlatform: true); final File pluginCmakeFile = windowsProject.generatedPluginCmakeFile; final File pluginRegistrant = windowsProject.managedDirectory.childFile('generated_plugin_registrant.cc'); @@ -1521,7 +1518,7 @@ flutter: setUpProject(fsWindows); createFakePlugin(fsWindows); - await injectPlugins(flutterProject, linuxPlatform: true, windowsPlatform: true, useImplicitPubspecResolution: true); + await injectPlugins(flutterProject, linuxPlatform: true, windowsPlatform: true); for (final CmakeBasedProject? project in [linuxProject, windowsProject]) { final File pluginCmakefile = project!.generatedPluginCmakeFile; @@ -1546,7 +1543,6 @@ flutter: linuxPlatform: true, windowsPlatform: true, allowedPlugins: PreviewDevice.supportedPubPlugins, - useImplicitPubspecResolution: true, ), throwsToolExit(message: ''' The Flutter Preview device does not support the following plugins from your pubspec.yaml: @@ -1566,7 +1562,6 @@ The Flutter Preview device does not support the following plugins from your pubs iosPlatform: true, macOSPlatform: true, darwinDependencyManagement: dependencyManagement, - useImplicitPubspecResolution: true, ); expect( dependencyManagement.setupPlatforms, @@ -1582,7 +1577,6 @@ The Flutter Preview device does not support the following plugins from your pubs await injectPlugins( flutterProject, darwinDependencyManagement: dependencyManagement, - useImplicitPubspecResolution: true, ); expect(dependencyManagement.setupPlatforms, []); }, overrides: { @@ -1602,7 +1596,7 @@ The Flutter Preview device does not support the following plugins from your pubs linuxProject.exists = true; createFakePlugin(fs); // refreshPluginsList should call createPluginSymlinks. - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject); expect(linuxProject.pluginSymlinkDirectory.childLink('some_plugin').existsSync(), true); }, overrides: { @@ -1615,7 +1609,7 @@ The Flutter Preview device does not support the following plugins from your pubs windowsProject.exists = true; createFakePlugin(fs); // refreshPluginsList should call createPluginSymlinks. - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject); expect(windowsProject.pluginSymlinkDirectory.childLink('some_plugin').existsSync(), true); }, overrides: { @@ -1661,7 +1655,7 @@ The Flutter Preview device does not support the following plugins from your pubs // refreshPluginsList should remove existing links and recreate on changes. createFakePlugin(fs); - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject); for (final File file in dummyFiles) { expect(file.existsSync(), false); @@ -1700,7 +1694,7 @@ The Flutter Preview device does not support the following plugins from your pubs linuxProject.exists = true; windowsProject.exists = true; createFakePlugin(fs); - await refreshPluginsList(flutterProject, useImplicitPubspecResolution: true); + await refreshPluginsList(flutterProject); final List links = [ linuxProject.pluginSymlinkDirectory.childLink('some_plugin'), diff --git a/packages/flutter_tools/test/general.shard/preview_device_test.dart b/packages/flutter_tools/test/general.shard/preview_device_test.dart index b00fb12fd18..c363186ec88 100644 --- a/packages/flutter_tools/test/general.shard/preview_device_test.dart +++ b/packages/flutter_tools/test/general.shard/preview_device_test.dart @@ -49,7 +49,6 @@ void main() { processManager: FakeProcessManager.any(), previewBinary: previewBinary, logger: BufferLogger.test(), - useImplicitPubspecResolution: true, ); expect(await device.isLocalEmulator, false); @@ -85,7 +84,6 @@ void main() { ]), logger: logger, builderFactory: () => FakeBundleBuilder(fs), - useImplicitPubspecResolution: true, ); final Directory previewDeviceCacheDir = fs .directory('Artifact.windowsDesktopPath.TargetPlatform.windows_x64.debug') @@ -123,7 +121,6 @@ void main() { processManager: processManager, platform: linuxPlatform, featureFlags: featureFlags, - useImplicitPubspecResolution: true, ); final List devices = await discovery.devices(); @@ -139,7 +136,6 @@ void main() { processManager: processManager, platform: macPlatform, featureFlags: featureFlags, - useImplicitPubspecResolution: true, ); final List devices = await discovery.devices(); @@ -157,7 +153,6 @@ void main() { processManager: processManager, platform: windowsPlatform, featureFlags: featureFlags, - useImplicitPubspecResolution: true, ); final List devices = await discovery.devices(); @@ -175,7 +170,6 @@ void main() { processManager: processManager, platform: windowsPlatform, featureFlags: featureFlags, - useImplicitPubspecResolution: true, ); final List devices = await discovery.devices(); @@ -204,7 +198,6 @@ class FakeBundleBuilder extends Fake implements BundleBuilder { String? assetDirPath, bool buildNativeAssets = true, @visibleForTesting BuildSystem? buildSystem, - required bool useImplicitPubspecResolution, }) async { final Directory assetDirectory = fileSystem .directory(assetDirPath) diff --git a/packages/flutter_tools/test/general.shard/project_test.dart b/packages/flutter_tools/test/general.shard/project_test.dart index 6c1e8f15ae6..5180e043e6d 100644 --- a/packages/flutter_tools/test/general.shard/project_test.dart +++ b/packages/flutter_tools/test/general.shard/project_test.dart @@ -141,12 +141,12 @@ void main() { FlutterManifest.empty(logger: logger), FlutterManifest.empty(logger: logger), ); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectNotExists(project.directory); }); _testInMemory('does nothing in plugin or package root project', () async { final FlutterProject project = await aPluginProject(); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectNotExists(project.ios.hostAppRoot.childDirectory('Runner').childFile('GeneratedPluginRegistrant.h')); expectNotExists(androidPluginRegistrant(project.android.hostAppGradleRoot.childDirectory('app'))); expectNotExists(project.ios.hostAppRoot.childDirectory('Flutter').childFile('Generated.xcconfig')); @@ -158,7 +158,7 @@ void main() { // that a project was a plugin, but shouldn't be as this creates false // positives. project.directory.childDirectory('example').createSync(); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(project.ios.hostAppRoot.childDirectory('Runner').childFile('GeneratedPluginRegistrant.h')); expectExists(androidPluginRegistrant(project.android.hostAppGradleRoot.childDirectory('app'))); expectExists(project.ios.hostAppRoot.childDirectory('Flutter').childFile('Generated.xcconfig')); @@ -166,22 +166,22 @@ void main() { }); _testInMemory('injects plugins for iOS', () async { final FlutterProject project = await someProject(); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(project.ios.hostAppRoot.childDirectory('Runner').childFile('GeneratedPluginRegistrant.h')); }); _testInMemory('generates Xcode configuration for iOS', () async { final FlutterProject project = await someProject(); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(project.ios.hostAppRoot.childDirectory('Flutter').childFile('Generated.xcconfig')); }); _testInMemory('injects plugins for Android', () async { final FlutterProject project = await someProject(); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(androidPluginRegistrant(project.android.hostAppGradleRoot.childDirectory('app'))); }); _testInMemory('updates local properties for Android', () async { final FlutterProject project = await someProject(); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(project.android.hostAppGradleRoot.childFile('local.properties')); }); _testInMemory('checkForDeprecation fails on invalid android app manifest file', () async { @@ -224,18 +224,18 @@ void main() { final FlutterProject project = await aPluginProject(); project.example.directory.deleteSync(); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expect(testLogger.statusText, isNot(contains('https://github.com/flutter/flutter/blob/main/docs/platforms/android/Upgrading-pre-1.12-Android-projects.md'))); }); _testInMemory('updates local properties for Android', () async { final FlutterProject project = await someProject(); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(project.android.hostAppGradleRoot.childFile('local.properties')); }); testUsingContext('injects plugins for macOS', () async { final FlutterProject project = await someProject(); project.macos.managedDirectory.createSync(recursive: true); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(project.macos.pluginRegistrantImplementation); }, overrides: { FileSystem: () => MemoryFileSystem.test(), @@ -249,7 +249,7 @@ void main() { testUsingContext('generates Xcode configuration for macOS', () async { final FlutterProject project = await someProject(); project.macos.managedDirectory.createSync(recursive: true); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(project.macos.generatedXcodePropertiesFile); }, overrides: { FileSystem: () => MemoryFileSystem.test(), @@ -263,7 +263,7 @@ void main() { testUsingContext('injects plugins for Linux', () async { final FlutterProject project = await someProject(); project.linux.cmakeFile.createSync(recursive: true); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(project.linux.managedDirectory.childFile('generated_plugin_registrant.h')); expectExists(project.linux.managedDirectory.childFile('generated_plugin_registrant.cc')); }, overrides: { @@ -278,7 +278,7 @@ void main() { testUsingContext('injects plugins for Windows', () async { final FlutterProject project = await someProject(); project.windows.cmakeFile.createSync(recursive: true); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(project.windows.managedDirectory.childFile('generated_plugin_registrant.h')); expectExists(project.windows.managedDirectory.childFile('generated_plugin_registrant.cc')); }, overrides: { @@ -292,14 +292,14 @@ void main() { }); _testInMemory('creates Android library in module', () async { final FlutterProject project = await aModuleProject(); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); expectExists(project.android.hostAppGradleRoot.childFile('settings.gradle')); expectExists(project.android.hostAppGradleRoot.childFile('local.properties')); expectExists(androidPluginRegistrant(project.android.hostAppGradleRoot.childDirectory('Flutter'))); }); _testInMemory('creates iOS pod in module', () async { final FlutterProject project = await aModuleProject(); - await project.regeneratePlatformSpecificTooling(useImplicitPubspecResolution: true); + await project.regeneratePlatformSpecificTooling(); final Directory flutter = project.ios.hostAppRoot.childDirectory('Flutter'); expectExists(flutter.childFile('podhelper.rb')); expectExists(flutter.childFile('flutter_export_environment.sh')); diff --git a/packages/flutter_tools/test/general.shard/resident_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_runner_test.dart index 6e619fd2ff8..a140cc1f6f5 100644 --- a/packages/flutter_tools/test/general.shard/resident_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_runner_test.dart @@ -63,7 +63,6 @@ void main() { target: 'main.dart', analytics: fakeAnalytics, devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); }, overrides: { Analytics: () => FakeAnalytics(), @@ -115,7 +114,6 @@ void main() { target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: globals.analytics, - useImplicitPubspecResolution: true, ); flutterDevice.generator = residentCompiler; @@ -140,7 +138,6 @@ void main() { target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: globals.analytics, - useImplicitPubspecResolution: true, ); flutterDevice.generator = residentCompiler; @@ -162,7 +159,6 @@ void main() { debuggingOptions: DebuggingOptions.enabled(BuildInfo.release), target: 'main.dart', devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); flutterDevice.runColdCode = 1; @@ -184,7 +180,6 @@ void main() { debuggingOptions: DebuggingOptions.enabled(BuildInfo.release), target: 'main.dart', devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); flutterDevice.runColdError = Exception('BAD STUFF'); @@ -213,7 +208,6 @@ void main() { target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: globals.analytics, - useImplicitPubspecResolution: true, ); flutterDevice.generator = residentCompiler; @@ -274,7 +268,6 @@ void main() { target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: globals.analytics, - useImplicitPubspecResolution: true, ); final Completer futureConnectionInfo = Completer.sync(); final Completer futureAppStart = Completer.sync(); @@ -416,7 +409,6 @@ void main() { enableDevTools: false, ), analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); final Completer futureConnectionInfo = Completer.sync(); final Completer futureAppStart = Completer.sync(); @@ -481,7 +473,6 @@ void main() { target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); final Completer futureConnectionInfo = Completer.sync(); final Completer futureAppStart = Completer.sync(); @@ -746,7 +737,6 @@ void main() { target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); devFS.nextUpdateReport = UpdateFSReport( success: true, @@ -1091,7 +1081,6 @@ void main() { target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); expect(otherRunner.artifactDirectory.path, contains('foobar')); })); @@ -1205,7 +1194,6 @@ flutter: target: 'custom_main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); await residentRunner.runSourceGenerators(); @@ -1266,7 +1254,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); flutterDevice.generator = residentCompiler; @@ -1367,7 +1354,6 @@ flutter: debuggingOptions: DebuggingOptions.disabled(BuildInfo.release), target: 'main.dart', devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); residentRunner.printHelp(details: true); @@ -1403,7 +1389,6 @@ flutter: debuggingOptions: DebuggingOptions.disabled(BuildInfo.release), target: 'main.dart', devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); residentRunner.printHelp(details: false); @@ -1493,7 +1478,6 @@ flutter: debuggingOptions: DebuggingOptions.enabled(BuildInfo.profile, vmserviceOutFile: 'foo', enableDevTools: false), target: 'main.dart', devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); final Future result = residentRunner.attach(); @@ -1539,7 +1523,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); await residentRunner.run(); @@ -1570,7 +1553,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC'); @@ -1602,7 +1584,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC'); @@ -1635,7 +1616,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC'); @@ -1660,7 +1640,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC'); @@ -1686,7 +1665,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC'); @@ -1716,7 +1694,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC'); @@ -1740,7 +1717,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); await residentRunner.run(); @@ -1762,7 +1738,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); await residentRunner.run(); @@ -1786,7 +1761,6 @@ flutter: debuggingOptions: DebuggingOptions.enabled(BuildInfo.profile, vmserviceOutFile: 'foo'), devtoolsHandler: createNoOpHandler, target: 'main.dart', - useImplicitPubspecResolution: true, ); await residentRunner.run(); @@ -2168,7 +2142,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); await residentRunner.cleanupAtFinish(); @@ -2190,7 +2163,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); (flutterDevice.devFS! as FakeDevFS).assetPathsToEvict = {'asset'}; @@ -2216,7 +2188,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); (flutterDevice.devFS! as FakeDevFS).shaderPathsToEvict = {'foo.frag'}; @@ -2239,7 +2210,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); expect(flutterDevice.devFS!.hasSetAssetDirectory, false); @@ -2262,7 +2232,6 @@ flutter: target: 'main.dart', devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); (flutterDevice.devFS! as FakeDevFS).assetPathsToEvict = {'asset'}; @@ -2312,7 +2281,6 @@ flutter: devtoolsHandler: createNoOpHandler, analytics: globals.analytics, nativeAssetsYamlFile: 'foo.yaml', - useImplicitPubspecResolution: true, ); final int? result = await residentRunner.run(); diff --git a/packages/flutter_tools/test/general.shard/resident_web_runner_cold_test.dart b/packages/flutter_tools/test/general.shard/resident_web_runner_cold_test.dart index ecef00234cf..ceb06a96a1e 100644 --- a/packages/flutter_tools/test/general.shard/resident_web_runner_cold_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_web_runner_cold_test.dart @@ -61,7 +61,6 @@ void main() { fs: fileSystem, fakeFlutterVersion: FakeFlutterVersion(), ), - useImplicitPubspecResolution: true, ); final Completer connectionInfoCompleter = Completer(); @@ -92,7 +91,6 @@ void main() { fs: fileSystem, fakeFlutterVersion: FakeFlutterVersion(), ), - useImplicitPubspecResolution: true, ); expect(() => residentWebRunner.run(), throwsToolExit()); @@ -118,7 +116,6 @@ void main() { fs: fileSystem, fakeFlutterVersion: FakeFlutterVersion(), ), - useImplicitPubspecResolution: true, ); expect(() async => residentWebRunner.run(), throwsException); @@ -143,7 +140,6 @@ void main() { fs: fileSystem, fakeFlutterVersion: FakeFlutterVersion(), ), - useImplicitPubspecResolution: true, ); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( @@ -173,7 +169,6 @@ void main() { fs: fileSystem, fakeFlutterVersion: FakeFlutterVersion(), ), - useImplicitPubspecResolution: true, ); final Completer connectionInfoCompleter = Completer(); unawaited(residentWebRunner.run( diff --git a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart index 108306f7114..6b82c518a82 100644 --- a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart @@ -170,7 +170,6 @@ void main() { usage: globals.flutterUsage, analytics: globals.analytics, systemClock: globals.systemClock, - useImplicitPubspecResolution: true, ); expect(profileResidentWebRunner.debuggingEnabled, false); @@ -203,7 +202,6 @@ void main() { usage: globals.flutterUsage, analytics: globals.analytics, systemClock: globals.systemClock, - useImplicitPubspecResolution: true, ); expect(profileResidentWebRunner.uri, webDevFS.baseUri); @@ -223,7 +221,6 @@ void main() { usage: globals.flutterUsage, analytics: globals.analytics, systemClock: globals.systemClock, - useImplicitPubspecResolution: true, ); fakeVmServiceHost = FakeVmServiceHost(requests: []); flutterDevice.device = chromeDevice; @@ -237,7 +234,6 @@ void main() { usage: globals.flutterUsage, analytics: globals.analytics, systemClock: globals.systemClock, - useImplicitPubspecResolution: true, ); expect(profileResidentWebRunner.supportsServiceProtocol, false); @@ -372,7 +368,6 @@ void main() { analytics: globals.analytics, systemClock: globals.systemClock, devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); expect(await residentWebRunner.run(), 0); @@ -400,7 +395,6 @@ void main() { analytics: globals.analytics, systemClock: globals.systemClock, devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); expect(await residentWebRunner.run(), 0); @@ -602,7 +596,6 @@ void main() { analytics: globals.analytics, systemClock: globals.systemClock, devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); fakeVmServiceHost = FakeVmServiceHost(requests: kAttachExpectations.toList()); @@ -1130,7 +1123,6 @@ void main() { analytics: globals.analytics, systemClock: globals.systemClock, devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); final Completer connectionInfoCompleter = @@ -1180,7 +1172,6 @@ void main() { analytics: globals.analytics, systemClock: globals.systemClock, devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); final Completer connectionInfoCompleter = @@ -1224,7 +1215,6 @@ void main() { analytics: globals.analytics, systemClock: globals.systemClock, devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); // Create necessary files. @@ -1481,7 +1471,6 @@ ResidentRunner setUpResidentRunner( fileSystem: globals.fs, logger: logger ?? BufferLogger.test(), devtoolsHandler: createNoOpHandler, - useImplicitPubspecResolution: true, ); } diff --git a/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart b/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart index fce8dbef67b..672eb9d03c4 100644 --- a/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart +++ b/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart @@ -98,7 +98,6 @@ void main() { artifacts: Artifacts.test(), logger: BufferLogger.test(), flutterVersion: FakeFlutterVersion(), - useImplicitPubspecResolution: true, ); logLines = []; device.getLogReader().logLines.listen(logLines.add); @@ -218,7 +217,6 @@ FlutterTesterDevices setUpFlutterTesterDevices() { processManager: FakeProcessManager.any(), fileSystem: MemoryFileSystem.test(), flutterVersion: FakeFlutterVersion(), - useImplicitPubspecResolution: true, ); } diff --git a/packages/flutter_tools/test/general.shard/web/compile_web_test.dart b/packages/flutter_tools/test/general.shard/web/compile_web_test.dart index 475a5094947..4cc624f4314 100644 --- a/packages/flutter_tools/test/general.shard/web/compile_web_test.dart +++ b/packages/flutter_tools/test/general.shard/web/compile_web_test.dart @@ -70,7 +70,6 @@ void main() { flutterVersion: flutterVersion, fileSystem: fileSystem, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); await webBuilder.buildWeb( flutterProject, @@ -163,7 +162,6 @@ void main() { flutterVersion: flutterVersion, fileSystem: fileSystem, analytics: fakeAnalytics, - useImplicitPubspecResolution: true, ); await expectLater( () async => webBuilder.buildWeb( diff --git a/packages/flutter_tools/test/src/fakes.dart b/packages/flutter_tools/test/src/fakes.dart index 71ef35c4265..ec5d5296b15 100644 --- a/packages/flutter_tools/test/src/fakes.dart +++ b/packages/flutter_tools/test/src/fakes.dart @@ -482,6 +482,7 @@ class TestFeatureFlags implements FeatureFlags { this.isNativeAssetsEnabled = false, this.isPreviewDeviceEnabled = false, this.isSwiftPackageManagerEnabled = false, + this.isExplicitPackageDependenciesEnabled = false, }); @override @@ -520,6 +521,9 @@ class TestFeatureFlags implements FeatureFlags { @override final bool isSwiftPackageManagerEnabled; + @override + final bool isExplicitPackageDependenciesEnabled; + @override bool isEnabled(Feature feature) { return switch (feature) { @@ -533,6 +537,7 @@ class TestFeatureFlags implements FeatureFlags { flutterCustomDevicesFeature => areCustomDevicesEnabled, cliAnimation => isCliAnimationEnabled, nativeAssets => isNativeAssetsEnabled, + explicitPackageDependencies => isExplicitPackageDependenciesEnabled, _ => false, }; } diff --git a/packages/flutter_tools/test/src/testbed.dart b/packages/flutter_tools/test/src/testbed.dart index b8b86c742cd..27b09d71a27 100644 --- a/packages/flutter_tools/test/src/testbed.dart +++ b/packages/flutter_tools/test/src/testbed.dart @@ -92,7 +92,7 @@ class Testbed { /// /// `overrides` may be used to provide new context values for the single test /// case or override any context values from the setup. - Future run(FutureOr Function() test, {Map? overrides, bool useImplicitPubspecResolution = true}) { + Future run(FutureOr Function() test, {Map? overrides}) { final Map testOverrides = { ..._testbedDefaults, // Add the initial setUp overrides @@ -139,7 +139,7 @@ class Testbed { } return null; }); - }, useImplicitPubspecResolution: useImplicitPubspecResolution); + }); }, createHttpClient: (SecurityContext? c) => FakeHttpClient.any()); } } diff --git a/packages/flutter_tools/test/web.shard/web_driver_service_test.dart b/packages/flutter_tools/test/web.shard/web_driver_service_test.dart index 8d47b72ffd7..6b9cfb8316a 100644 --- a/packages/flutter_tools/test/web.shard/web_driver_service_test.dart +++ b/packages/flutter_tools/test/web.shard/web_driver_service_test.dart @@ -21,7 +21,6 @@ void main() { processManager: FakeProcessManager.empty(), ), dartSdkPath: 'dart', - useImplicitPubspecResolution: true, ); const String link = 'https://flutter.dev/to/integration-test-on-web'; try {