From 593b40d3e4d3ca75221cc4590324e823d73a5468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Sharma?= <737941+loic-sharma@users.noreply.github.com> Date: Wed, 8 Jan 2025 16:30:06 -0800 Subject: [PATCH] Revert "[SwiftPM] Add separate feature flag for the app migration (#158897)" (#161342) This reverts https://github.com/flutter/flutter/pull/158897 (commit e7a1b6808635464839c556c1a242765210f12df9) as it is intended to be in the same release as https://github.com/flutter/flutter/pull/161275. However, https://github.com/flutter/flutter/pull/161275 had to be reverted and won't be relanded until after the release cutoff. Hence, I'm reverting this as well. --- packages/flutter_tools/lib/src/features.dart | 15 -- .../lib/src/flutter_features.dart | 9 - ...package_manager_integration_migration.dart | 8 - .../flutter_tools/lib/src/xcode_project.dart | 9 - .../test/general.shard/features_test.dart | 45 +--- .../general.shard/macos/cocoapods_test.dart | 6 +- ...ge_manager_integration_migration_test.dart | 36 +-- .../general.shard/xcode_project_test.dart | 62 +----- .../swift_package_manager_test.dart | 206 ------------------ .../swift_package_manager_utils.dart | 47 +--- packages/flutter_tools/test/src/fakes.dart | 4 - 11 files changed, 13 insertions(+), 434 deletions(-) diff --git a/packages/flutter_tools/lib/src/features.dart b/packages/flutter_tools/lib/src/features.dart index c0258340b8f..49be312c5ab 100644 --- a/packages/flutter_tools/lib/src/features.dart +++ b/packages/flutter_tools/lib/src/features.dart @@ -54,10 +54,6 @@ abstract class FeatureFlags { /// Whether Swift Package Manager dependency management is enabled. bool get isSwiftPackageManagerEnabled => false; - /// Whether apps are automatically migrated to add Swift Package Manager - /// integration. Requires [isSwiftPackageManagerEnabled]. - bool get isSwiftPackageManagerMigrationEnabled => false; - /// Whether explicit package dependency management is enabled. bool get isExplicitPackageDependenciesEnabled => false; @@ -81,7 +77,6 @@ const List allFeatures = [ nativeAssets, previewDevice, swiftPackageManager, - swiftPackageManagerMigration, explicitPackageDependencies, ]; @@ -183,16 +178,6 @@ const Feature swiftPackageManager = Feature( stable: FeatureChannelSetting(available: true), ); -/// Enable migrating iOS and macOS apps to add Swift Package Manager integration. -const Feature swiftPackageManagerMigration = Feature( - name: 'migrate iOS and macOS apps to add Swift Package Manager integration', - configSetting: 'enable-swift-package-manager-migration', - environmentOverride: 'FLUTTER_SWIFT_PACKAGE_MANAGER_MIGRATION', - master: FeatureChannelSetting(available: true), - beta: FeatureChannelSetting(available: true), - stable: FeatureChannelSetting(available: true), -); - /// Enable explicit resolution and generation of package dependencies. const Feature explicitPackageDependencies = Feature( name: 'support for dev_dependency plugins', diff --git a/packages/flutter_tools/lib/src/flutter_features.dart b/packages/flutter_tools/lib/src/flutter_features.dart index cd4fef5465f..9be6cf993e3 100644 --- a/packages/flutter_tools/lib/src/flutter_features.dart +++ b/packages/flutter_tools/lib/src/flutter_features.dart @@ -61,15 +61,6 @@ class FlutterFeatureFlags implements FeatureFlags { @override bool get isSwiftPackageManagerEnabled => isEnabled(swiftPackageManager); - @override - bool get isSwiftPackageManagerMigrationEnabled { - if (!isEnabled(swiftPackageManager)) { - return false; - } - - return isEnabled(swiftPackageManagerMigration); - } - @override bool get isExplicitPackageDependenciesEnabled => isEnabled(explicitPackageDependencies); diff --git a/packages/flutter_tools/lib/src/migrations/swift_package_manager_integration_migration.dart b/packages/flutter_tools/lib/src/migrations/swift_package_manager_integration_migration.dart index fc9c283d230..b04eed06d9a 100644 --- a/packages/flutter_tools/lib/src/migrations/swift_package_manager_integration_migration.dart +++ b/packages/flutter_tools/lib/src/migrations/swift_package_manager_integration_migration.dart @@ -118,14 +118,6 @@ class SwiftPackageManagerIntegrationMigration extends ProjectMigrator { return; } - if (!_features.isSwiftPackageManagerMigrationEnabled) { - logger.printTrace( - 'The migration to add Swift Package Manager integration is off. ' - 'Skipping...', - ); - return; - } - if (!_xcodeProject.flutterPluginSwiftPackageManifest.existsSync()) { logger.printTrace( 'The tool did not generate a Swift package. ' diff --git a/packages/flutter_tools/lib/src/xcode_project.dart b/packages/flutter_tools/lib/src/xcode_project.dart index 54d28659264..270d8dfe9b6 100644 --- a/packages/flutter_tools/lib/src/xcode_project.dart +++ b/packages/flutter_tools/lib/src/xcode_project.dart @@ -182,15 +182,6 @@ abstract class XcodeBasedProject extends FlutterProjectPlatform { return false; } - // If the project doesn't have Swift Package Manager integration yet, - // the SwiftPM migration feature is required (as that will add SwiftPM - // integration to the project). - if (!flutterPluginSwiftPackageInProjectSettings) { - if (!featureFlags.isSwiftPackageManagerMigrationEnabled) { - return false; - } - } - return true; } diff --git a/packages/flutter_tools/test/general.shard/features_test.dart b/packages/flutter_tools/test/general.shard/features_test.dart index 9ef0b675d5a..10d8fe3e30b 100644 --- a/packages/flutter_tools/test/general.shard/features_test.dart +++ b/packages/flutter_tools/test/general.shard/features_test.dart @@ -409,7 +409,7 @@ void main() { }); group('Swift Package Manager feature', () { - testWithoutContext('availability and default enabled', () { + test('availability and default enabled', () { expect(swiftPackageManager.master.enabledByDefault, false); expect(swiftPackageManager.master.available, true); expect(swiftPackageManager.beta.enabledByDefault, false); @@ -418,52 +418,11 @@ void main() { expect(swiftPackageManager.stable.available, true); }); - testWithoutContext('can be enabled', () { + test('can be enabled', () { platform.environment = {'FLUTTER_SWIFT_PACKAGE_MANAGER': 'true'}; expect(featureFlags.isSwiftPackageManagerEnabled, isTrue); }); }); - - group('Swift Package Manager app migration feature', () { - testWithoutContext('availability and default enabled', () { - expect(swiftPackageManagerMigration.master.enabledByDefault, false); - expect(swiftPackageManagerMigration.master.available, true); - expect(swiftPackageManagerMigration.beta.enabledByDefault, false); - expect(swiftPackageManagerMigration.beta.available, true); - expect(swiftPackageManagerMigration.stable.enabledByDefault, false); - expect(swiftPackageManagerMigration.stable.available, true); - }); - - testWithoutContext('requires Swift Package Manager feature', () { - platform.environment = { - 'FLUTTER_SWIFT_PACKAGE_MANAGER': 'false', - 'FLUTTER_SWIFT_PACKAGE_MANAGER_MIGRATION': 'true', - }; - - expect(featureFlags.isSwiftPackageManagerEnabled, isFalse); - expect(featureFlags.isSwiftPackageManagerMigrationEnabled, isFalse); - }); - - testWithoutContext('is separate from the Swift Package Manager feature', () { - platform.environment = { - 'FLUTTER_SWIFT_PACKAGE_MANAGER': 'true', - 'FLUTTER_SWIFT_PACKAGE_MANAGER_MIGRATION': 'false', - }; - - expect(featureFlags.isSwiftPackageManagerEnabled, isTrue); - expect(featureFlags.isSwiftPackageManagerMigrationEnabled, isFalse); - }); - - testWithoutContext('can be enabled', () { - platform.environment = { - 'FLUTTER_SWIFT_PACKAGE_MANAGER': 'true', - 'FLUTTER_SWIFT_PACKAGE_MANAGER_MIGRATION': 'true', - }; - - expect(featureFlags.isSwiftPackageManagerEnabled, isTrue); - expect(featureFlags.isSwiftPackageManagerEnabled, isTrue); - }); - }); }); } 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 fbb1b9f6053..58298afaf82 100644 --- a/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart @@ -566,11 +566,7 @@ void main() { expect(fakeProcessManager, hasNoRemainingExpectations); }, overrides: { - FeatureFlags: - () => TestFeatureFlags( - isSwiftPackageManagerEnabled: true, - isSwiftPackageManagerMigrationEnabled: true, - ), + FeatureFlags: () => TestFeatureFlags(isSwiftPackageManagerEnabled: true), XcodeProjectInterpreter: () => FakeXcodeProjectInterpreter(version: Version(15, 0, 0)), }, ); diff --git a/packages/flutter_tools/test/general.shard/migrations/swift_package_manager_integration_migration_test.dart b/packages/flutter_tools/test/general.shard/migrations/swift_package_manager_integration_migration_test.dart index 47e9fe2cd87..98ada0d56cf 100644 --- a/packages/flutter_tools/test/general.shard/migrations/swift_package_manager_integration_migration_test.dart +++ b/packages/flutter_tools/test/general.shard/migrations/swift_package_manager_integration_migration_test.dart @@ -25,11 +25,10 @@ const List supportedPlatforms = [ void main() { final TestFeatureFlags swiftPackageManagerFullyEnabledFlags = TestFeatureFlags( isSwiftPackageManagerEnabled: true, - isSwiftPackageManagerMigrationEnabled: true, ); group('Flutter Package Migration', () { - testWithoutContext('skips if Swift Package Manager is off', () async { + testWithoutContext('skips if swift package manager is off', () async { final MemoryFileSystem memoryFileSystem = MemoryFileSystem(); final BufferLogger testLogger = BufferLogger.test(); @@ -46,9 +45,8 @@ void main() { logger: testLogger, fileSystem: memoryFileSystem, plistParser: FakePlistParser(), - features: TestFeatureFlags(isSwiftPackageManagerMigrationEnabled: true), + features: TestFeatureFlags(), ); - await projectMigration.migrate(); expect( testLogger.traceText, @@ -57,36 +55,6 @@ void main() { expect(testLogger.statusText, isEmpty); }); - testWithoutContext('skips if Swift Package Manager migration is off', () async { - final MemoryFileSystem memoryFileSystem = MemoryFileSystem(); - final BufferLogger testLogger = BufferLogger.test(); - - final SwiftPackageManagerIntegrationMigration projectMigration = - SwiftPackageManagerIntegrationMigration( - FakeXcodeProject( - platform: SupportedPlatform.ios.name, - fileSystem: memoryFileSystem, - logger: testLogger, - ), - SupportedPlatform.ios, - BuildInfo.debug, - xcodeProjectInterpreter: FakeXcodeProjectInterpreter(), - logger: testLogger, - fileSystem: memoryFileSystem, - plistParser: FakePlistParser(), - features: TestFeatureFlags(isSwiftPackageManagerEnabled: true), - ); - await projectMigration.migrate(); - expect( - testLogger.traceText, - contains( - 'The migration to add Swift Package Manager integration is off. ' - 'Skipping...', - ), - ); - expect(testLogger.statusText, isEmpty); - }); - testWithoutContext("skips if there's no generated swift package", () async { final MemoryFileSystem memoryFileSystem = MemoryFileSystem(); final BufferLogger testLogger = BufferLogger.test(); diff --git a/packages/flutter_tools/test/general.shard/xcode_project_test.dart b/packages/flutter_tools/test/general.shard/xcode_project_test.dart index 2c36a8eb8f8..f26d78ea33c 100644 --- a/packages/flutter_tools/test/general.shard/xcode_project_test.dart +++ b/packages/flutter_tools/test/general.shard/xcode_project_test.dart @@ -122,7 +122,7 @@ void main() { group('usesSwiftPackageManager', () { testUsingContext( - 'is true if the feature is on', + 'is true when iOS project exists', () async { final MemoryFileSystem fs = MemoryFileSystem.test(); final Directory projectDirectory = fs.directory('path'); @@ -131,35 +131,6 @@ void main() { final FlutterProject project = FlutterProject(projectDirectory, manifest, manifest); expect(project.ios.usesSwiftPackageManager, isTrue); }, - overrides: { - FeatureFlags: - () => TestFeatureFlags( - isSwiftPackageManagerEnabled: true, - isSwiftPackageManagerMigrationEnabled: true, - ), - XcodeProjectInterpreter: () => FakeXcodeProjectInterpreter(version: Version(15, 0, 0)), - }, - ); - - testUsingContext( - 'is true if migration feature is off but project is migrated', - () async { - final MemoryFileSystem fs = MemoryFileSystem.test(); - final Directory projectDirectory = fs.directory('path'); - projectDirectory.childDirectory('ios').createSync(recursive: true); - - // Create an Xcode project that appears to have SwiftPM integration. - final File xcodeProjectFile = projectDirectory - .childDirectory('ios') - .childDirectory('Runner.xcodeproj') - .childFile('project.pbxproj'); - xcodeProjectFile.createSync(recursive: true); - xcodeProjectFile.writeAsStringSync('FlutterGeneratedPluginSwiftPackage'); - - final FlutterManifest manifest = FakeFlutterManifest(); - final FlutterProject project = FlutterProject(projectDirectory, manifest, manifest); - expect(project.ios.usesSwiftPackageManager, isTrue); - }, overrides: { FeatureFlags: () => TestFeatureFlags(isSwiftPackageManagerEnabled: true), XcodeProjectInterpreter: () => FakeXcodeProjectInterpreter(version: Version(15, 0, 0)), @@ -283,7 +254,7 @@ void main() { group('usesSwiftPackageManager', () { testUsingContext( - 'is true if feature on', + 'is true when macOS project exists', () async { final MemoryFileSystem fs = MemoryFileSystem.test(); final Directory projectDirectory = fs.directory('path'); @@ -292,35 +263,6 @@ void main() { final FlutterProject project = FlutterProject(projectDirectory, manifest, manifest); expect(project.macos.usesSwiftPackageManager, isTrue); }, - overrides: { - FeatureFlags: - () => TestFeatureFlags( - isSwiftPackageManagerEnabled: true, - isSwiftPackageManagerMigrationEnabled: true, - ), - XcodeProjectInterpreter: () => FakeXcodeProjectInterpreter(version: Version(15, 0, 0)), - }, - ); - - testUsingContext( - 'is true if migration feature is off but project is migrated', - () async { - final MemoryFileSystem fs = MemoryFileSystem.test(); - final Directory projectDirectory = fs.directory('path'); - projectDirectory.childDirectory('macos').createSync(recursive: true); - - // Create an Xcode project that appears to have SwiftPM integration. - final File xcodeProjectFile = projectDirectory - .childDirectory('macos') - .childDirectory('Runner.xcodeproj') - .childFile('project.pbxproj'); - xcodeProjectFile.createSync(recursive: true); - xcodeProjectFile.writeAsStringSync('FlutterGeneratedPluginSwiftPackage'); - - final FlutterManifest manifest = FakeFlutterManifest(); - final FlutterProject project = FlutterProject(projectDirectory, manifest, manifest); - expect(project.macos.usesSwiftPackageManager, isTrue); - }, overrides: { FeatureFlags: () => TestFeatureFlags(isSwiftPackageManagerEnabled: true), XcodeProjectInterpreter: () => FakeXcodeProjectInterpreter(version: Version(15, 0, 0)), diff --git a/packages/flutter_tools/test/integration.shard/swift_package_manager_test.dart b/packages/flutter_tools/test/integration.shard/swift_package_manager_test.dart index 7b90e296d03..fef95beb4f5 100644 --- a/packages/flutter_tools/test/integration.shard/swift_package_manager_test.dart +++ b/packages/flutter_tools/test/integration.shard/swift_package_manager_test.dart @@ -861,210 +861,4 @@ void main() { expect(generatedManifest, contains(emptyDependencies)); expect(cocoaPodsPluginFramework, exists); }, skip: !platform.isMacOS); // [intended] Swift Package Manager only works on macos. - - test( - 'App is not migrated if Swift Package Manager is turned on but not migration', - () async { - final Directory workingDirectory = fileSystem.systemTempDirectory.createTempSync( - 'swift_package_manager_spm_on_migration_off_legacy_app.', - ); - final String workingDirectoryPath = workingDirectory.path; - - addTearDown(() async { - await SwiftPackageManagerUtils.disableSwiftPackageManager(flutterBin, workingDirectoryPath); - ErrorHandlingFileSystem.deleteIfExists(workingDirectory, recursive: true); - }); - - // Create an app that uses CocoaPods. - await SwiftPackageManagerUtils.disableSwiftPackageManager(flutterBin, workingDirectoryPath); - final String appDirectoryPath = await SwiftPackageManagerUtils.createApp( - flutterBin, - workingDirectoryPath, - iosLanguage: 'swift', - platform: 'ios', - options: ['--platforms=ios'], - ); - final SwiftPackageManagerPlugin integrationTestPlugin = - SwiftPackageManagerUtils.integrationTestPlugin('ios'); - SwiftPackageManagerUtils.addDependency( - appDirectoryPath: appDirectoryPath, - plugin: integrationTestPlugin, - ); - - await SwiftPackageManagerUtils.buildApp( - flutterBin, - appDirectoryPath, - options: ['ios', '--config-only', '-v'], - ); - - // Turn on the Swift Package Manager feature but not the app migration - // and build the app. - await SwiftPackageManagerUtils.cleanApp(flutterBin, appDirectoryPath); - await SwiftPackageManagerUtils.enableSwiftPackageManager( - flutterBin, - workingDirectoryPath, - enableMigration: false, - ); - await SwiftPackageManagerUtils.buildApp( - flutterBin, - appDirectoryPath, - options: ['ios', '-v'], - ); - - // The app should be built using CocoaPods. - // The app should not have been migrated to add SwiftPM integration. - final File xcodeProjectFile = fileSystem - .directory(appDirectoryPath) - .childDirectory('ios') - .childDirectory('Runner.xcodeproj') - .childFile('project.pbxproj'); - final File generatedManifestFile = fileSystem - .directory(appDirectoryPath) - .childDirectory('ios') - .childDirectory('Flutter') - .childDirectory('ephemeral') - .childDirectory('Packages') - .childDirectory('FlutterGeneratedPluginSwiftPackage') - .childFile('Package.swift'); - final Directory cocoaPodsPluginFramework = fileSystem - .directory(appDirectoryPath) - .childDirectory('build') - .childDirectory('ios') - .childDirectory('iphoneos') - .childDirectory('Runner.app') - .childDirectory('Frameworks') - .childDirectory('${integrationTestPlugin.pluginName}.framework'); - - expect(xcodeProjectFile, exists); - expect(generatedManifestFile, isNot(exists)); - expect(cocoaPodsPluginFramework, exists); - - expect( - xcodeProjectFile.readAsStringSync(), - isNot(contains('FlutterGeneratedPluginSwiftPackage')), - ); - }, - skip: !platform.isMacOS, // [intended] Swift Package Manager only works on macos. - ); - - test('iOS can use Swift Package Manager while macOS uses CocoaPods', () async { - final Directory workingDirectory = fileSystem.systemTempDirectory.createTempSync( - 'swift_package_manager_ios_on_cocoapods_macos_on_swiftpm.', - ); - final String workingDirectoryPath = workingDirectory.path; - - addTearDown(() async { - await SwiftPackageManagerUtils.disableSwiftPackageManager(flutterBin, workingDirectoryPath); - ErrorHandlingFileSystem.deleteIfExists(workingDirectory, recursive: true); - }); - - // Create an app that uses CocoaPods. - await SwiftPackageManagerUtils.disableSwiftPackageManager(flutterBin, workingDirectoryPath); - final String appDirectoryPath = await SwiftPackageManagerUtils.createApp( - flutterBin, - workingDirectoryPath, - iosLanguage: 'swift', - platform: 'ios', - options: ['--platforms=ios,macos'], - ); - final SwiftPackageManagerPlugin integrationTestPlugin = - SwiftPackageManagerUtils.integrationTestPlugin('ios'); - SwiftPackageManagerUtils.addDependency( - appDirectoryPath: appDirectoryPath, - plugin: integrationTestPlugin, - ); - - await SwiftPackageManagerUtils.buildApp( - flutterBin, - appDirectoryPath, - options: ['ios', '--config-only', '-v'], - ); - - // Turn on the Swift Package Manager feature and its migration and build - // the iOS app. This migrates the iOS app to Swift Package Manager - but not - // the macOS app! - await SwiftPackageManagerUtils.cleanApp(flutterBin, appDirectoryPath); - await SwiftPackageManagerUtils.enableSwiftPackageManager(flutterBin, workingDirectoryPath); - await SwiftPackageManagerUtils.buildApp( - flutterBin, - appDirectoryPath, - options: ['ios', '-v'], - ); - - // Turn off the migration but turn on the Swift Package Manager feature. - await SwiftPackageManagerUtils.cleanApp(flutterBin, appDirectoryPath); - await SwiftPackageManagerUtils.disableSwiftPackageManager(flutterBin, workingDirectoryPath); - await SwiftPackageManagerUtils.enableSwiftPackageManager( - flutterBin, - workingDirectoryPath, - enableMigration: false, - ); - - // Build the iOS and macOS apps. iOS should build using Swift Package Manager, - // macOS should build using CocoaPods. - await SwiftPackageManagerUtils.buildApp( - flutterBin, - appDirectoryPath, - options: ['ios', '--config-only', '-v'], - ); - await SwiftPackageManagerUtils.buildApp( - flutterBin, - appDirectoryPath, - options: ['macos', '--config-only', '-v'], - ); - - final File flutterPluginsDependenciesFile = fileSystem - .directory(appDirectoryPath) - .childFile('.flutter-plugins-dependencies'); - - final File generatedSwiftPackageIos = fileSystem - .directory(appDirectoryPath) - .childDirectory('ios') - .childDirectory('Flutter') - .childDirectory('ephemeral') - .childDirectory('Packages') - .childDirectory('FlutterGeneratedPluginSwiftPackage') - .childFile('Package.swift'); - final File generatedSwiftPackageMacos = fileSystem - .directory(appDirectoryPath) - .childDirectory('macos') - .childDirectory('Flutter') - .childDirectory('ephemeral') - .childDirectory('Packages') - .childDirectory('FlutterGeneratedPluginSwiftPackage') - .childFile('Package.swift'); - - final File xcodeProjectFileIos = fileSystem - .directory(appDirectoryPath) - .childDirectory('ios') - .childDirectory('Runner.xcodeproj') - .childFile('project.pbxproj'); - final File xcodeProjectFileMacos = fileSystem - .directory(appDirectoryPath) - .childDirectory('macos') - .childDirectory('Runner.xcodeproj') - .childFile('project.pbxproj'); - - // The build should have used SwiftPM for iOS but CocoaPods for macOS. - expect(flutterPluginsDependenciesFile, exists); - expect(generatedSwiftPackageIos, exists); - expect(generatedSwiftPackageMacos, isNot(exists)); - expect(xcodeProjectFileIos, exists); - expect(xcodeProjectFileMacos, exists); - - final String dependenciesString = flutterPluginsDependenciesFile.readAsStringSync(); - final Map dependenciesJson = - json.decode(dependenciesString) as Map; - - expect(dependenciesJson['swift_package_manager_enabled'], { - 'ios': true, - 'macos': false, - }); - - expect(xcodeProjectFileIos.readAsStringSync(), contains('FlutterGeneratedPluginSwiftPackage')); - expect( - xcodeProjectFileMacos.readAsStringSync(), - isNot(contains('FlutterGeneratedPluginSwiftPackage')), - ); - }, skip: !platform.isMacOS); // [intended] Swift Package Manager only works on macos. } diff --git a/packages/flutter_tools/test/integration.shard/swift_package_manager_utils.dart b/packages/flutter_tools/test/integration.shard/swift_package_manager_utils.dart index 9df699f8b09..6fb45949b64 100644 --- a/packages/flutter_tools/test/integration.shard/swift_package_manager_utils.dart +++ b/packages/flutter_tools/test/integration.shard/swift_package_manager_utils.dart @@ -6,78 +6,43 @@ import 'dart:convert'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; -import 'package:flutter_tools/src/features.dart'; import '../src/common.dart'; import 'test_utils.dart'; class SwiftPackageManagerUtils { - static Future enableSwiftPackageManager( - String flutterBin, - String workingDirectory, { - bool enableMigration = true, - }) async { - await _enableFeature(flutterBin, workingDirectory, swiftPackageManager); - - if (enableMigration) { - await _enableFeature(flutterBin, workingDirectory, swiftPackageManagerMigration); - } - } - - static Future disableSwiftPackageManager( - String flutterBin, - String workingDirectory, { - bool disableMigration = true, - }) async { - if (disableMigration) { - await _disableFeature(flutterBin, workingDirectory, swiftPackageManagerMigration); - } - - await _disableFeature(flutterBin, workingDirectory, swiftPackageManager); - } - - static Future _enableFeature( - String flutterBin, - String workingDirectory, - Feature feature, - ) async { + static Future enableSwiftPackageManager(String flutterBin, String workingDirectory) async { final ProcessResult result = await processManager.run([ flutterBin, ...getLocalEngineArguments(), 'config', - '--${feature.configSetting}', + '--enable-swift-package-manager', '-v', ], workingDirectory: workingDirectory); - expect( result.exitCode, 0, reason: - 'Failed to enable feature "${feature.name}": \n' + 'Failed to enable Swift Package Manager: \n' 'stdout: \n${result.stdout}\n' 'stderr: \n${result.stderr}\n', verbose: true, ); } - static Future _disableFeature( - String flutterBin, - String workingDirectory, - Feature feature, - ) async { + static Future disableSwiftPackageManager(String flutterBin, String workingDirectory) async { final ProcessResult result = await processManager.run([ flutterBin, ...getLocalEngineArguments(), 'config', - '--no-${feature.configSetting}', + '--no-enable-swift-package-manager', '-v', ], workingDirectory: workingDirectory); - expect( result.exitCode, 0, reason: - 'Failed to disable feature "${feature.name}": \n' + 'Failed to disable Swift Package Manager: \n' 'stdout: \n${result.stdout}\n' 'stderr: \n${result.stderr}\n', verbose: true, diff --git a/packages/flutter_tools/test/src/fakes.dart b/packages/flutter_tools/test/src/fakes.dart index 2b17e4666cd..a16eed54e58 100644 --- a/packages/flutter_tools/test/src/fakes.dart +++ b/packages/flutter_tools/test/src/fakes.dart @@ -489,7 +489,6 @@ class TestFeatureFlags implements FeatureFlags { this.isNativeAssetsEnabled = false, this.isPreviewDeviceEnabled = false, this.isSwiftPackageManagerEnabled = false, - this.isSwiftPackageManagerMigrationEnabled = false, this.isExplicitPackageDependenciesEnabled = false, }); @@ -529,9 +528,6 @@ class TestFeatureFlags implements FeatureFlags { @override final bool isSwiftPackageManagerEnabled; - @override - final bool isSwiftPackageManagerMigrationEnabled; - @override final bool isExplicitPackageDependenciesEnabled;