diff --git a/packages/flutter_tools/lib/src/dart/pub.dart b/packages/flutter_tools/lib/src/dart/pub.dart index 3db880b0345..e9524f32916 100644 --- a/packages/flutter_tools/lib/src/dart/pub.dart +++ b/packages/flutter_tools/lib/src/dart/pub.dart @@ -94,7 +94,6 @@ abstract class Pub { bool offline = false, bool generateSyntheticPackage = false, String flutterRootOverride, - bool checkUpToDate = false, }); /// Runs pub in 'batch' mode. @@ -119,6 +118,7 @@ abstract class Pub { bool showTraceForErrors, }); + /// Runs pub in 'interactive' mode. /// /// directly piping the stdin stream of this process to that of pub, and the @@ -164,33 +164,12 @@ class _DefaultPub implements Pub { bool offline = false, bool generateSyntheticPackage = false, String flutterRootOverride, - bool checkUpToDate = false, }) async { directory ??= _fileSystem.currentDirectory.path; final File packageConfigFile = _fileSystem.file( _fileSystem.path.join(directory, '.dart_tool', 'package_config.json')); final Directory generatedDirectory = _fileSystem.directory( _fileSystem.path.join(directory, '.dart_tool', 'flutter_gen')); - final File lastVersion = _fileSystem.file( - _fileSystem.path.join(directory, '.dart_tool', 'version')); - final File currentVersion = _fileSystem.file( - _fileSystem.path.join(Cache.flutterRoot, 'version')); - final File pubspecYaml = _fileSystem.file( - _fileSystem.path.join(directory, 'pubspec.yaml')); - - // If the pubspec.yaml is older than the package config file and the last - // flutter version used is the same as the current version skip pub get. - // This will incorrectly skip pub on the master branch if dependencies - // are being added/removed from the flutter framework packages, but this - // can be worked around by manually running pub. - if (checkUpToDate && - packageConfigFile.existsSync() && - pubspecYaml.lastModifiedSync().isBefore(packageConfigFile.lastModifiedSync()) && - lastVersion.existsSync() && - lastVersion.readAsStringSync() == currentVersion.readAsStringSync()) { - _logger.printTrace('Skipping pub get: version match.'); - return; - } final String command = upgrade ? 'upgrade' : 'get'; final Status status = _logger.startProgress( @@ -228,7 +207,6 @@ class _DefaultPub implements Pub { if (!packageConfigFile.existsSync()) { throwToolExit('$directory: pub did not create .dart_tools/package_config.json file.'); } - lastVersion.writeAsStringSync(currentVersion.readAsStringSync()); await _updatePackageConfig( packageConfigFile, generatedDirectory, diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index fda23a8e8ac..243c03e4bef 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -1061,7 +1061,6 @@ abstract class FlutterCommand extends Command { await pub.get( context: PubContext.getVerifyContext(name), generateSyntheticPackage: project.manifest.generateSyntheticPackage, - checkUpToDate: true, ); await project.regeneratePlatformSpecificTooling(); } diff --git a/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart b/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart index 89f35cfa949..6919771558c 100644 --- a/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart +++ b/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart @@ -30,187 +30,6 @@ void main() { MockDirectory.findCache = false; }); - testWithoutContext('checkUpToDate skips pub get if the package config is newer than the pubspec ' - 'and the current framework version is the same as the last version', () async { - final FakeProcessManager processManager = FakeProcessManager.list([]); - final BufferLogger logger = BufferLogger.test(); - final MemoryFileSystem fileSystem = MemoryFileSystem.test(); - - fileSystem.file('pubspec.yaml').createSync(); - fileSystem.file('.dart_tool/package_config.json').createSync(recursive: true); - fileSystem.file('.dart_tool/version').writeAsStringSync('a'); - fileSystem.file('version').writeAsStringSync('a'); - - final Pub pub = Pub( - fileSystem: fileSystem, - logger: logger, - processManager: processManager, - usage: MockUsage(), - platform: FakePlatform( - environment: const {}, - ), - botDetector: const BotDetectorAlwaysNo(), - ); - - await pub.get( - context: PubContext.pubGet, - checkUpToDate: true, - ); - - expect(logger.traceText, contains('Skipping pub get: version match.')); - }); - - testWithoutContext('checkUpToDate does not skip pub get if the package config is newer than the pubspec ' - 'but the current framework version is not the same as the last version', () async { - final FakeProcessManager processManager = FakeProcessManager.list([ - const FakeCommand(command: [ - 'bin/cache/dart-sdk/bin/pub', - '--verbosity=warning', - 'get', - '--no-precompile', - ]) - ]); - final BufferLogger logger = BufferLogger.test(); - final MemoryFileSystem fileSystem = MemoryFileSystem.test(); - - fileSystem.file('pubspec.yaml').createSync(); - fileSystem.file('.dart_tool/package_config.json').createSync(recursive: true); - fileSystem.file('.dart_tool/version').writeAsStringSync('a'); - fileSystem.file('version').writeAsStringSync('b'); - - final Pub pub = Pub( - fileSystem: fileSystem, - logger: logger, - processManager: processManager, - usage: MockUsage(), - platform: FakePlatform( - environment: const {}, - ), - botDetector: const BotDetectorAlwaysNo(), - ); - - await pub.get( - context: PubContext.pubGet, - checkUpToDate: true, - ); - - expect(processManager.hasRemainingExpectations, false); - expect(fileSystem.file('.dart_tool/version').readAsStringSync(), 'b'); - }); - - testWithoutContext('checkUpToDate does not skip pub get if the package config is newer than the pubspec ' - 'but the current framework version does not exist yet', () async { - final FakeProcessManager processManager = FakeProcessManager.list([ - const FakeCommand(command: [ - 'bin/cache/dart-sdk/bin/pub', - '--verbosity=warning', - 'get', - '--no-precompile', - ]) - ]); - final BufferLogger logger = BufferLogger.test(); - final MemoryFileSystem fileSystem = MemoryFileSystem.test(); - - fileSystem.file('pubspec.yaml').createSync(); - fileSystem.file('.dart_tool/package_config.json').createSync(recursive: true); - fileSystem.file('version').writeAsStringSync('b'); - - final Pub pub = Pub( - fileSystem: fileSystem, - logger: logger, - processManager: processManager, - usage: MockUsage(), - platform: FakePlatform( - environment: const {}, - ), - botDetector: const BotDetectorAlwaysNo(), - ); - - await pub.get( - context: PubContext.pubGet, - checkUpToDate: true, - ); - - expect(processManager.hasRemainingExpectations, false); - expect(fileSystem.file('.dart_tool/version').readAsStringSync(), 'b'); - }); - - testWithoutContext('checkUpToDate does not skip pub get if the package config does not exist', () async { - final MemoryFileSystem fileSystem = MemoryFileSystem.test(); - final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: const [ - 'bin/cache/dart-sdk/bin/pub', - '--verbosity=warning', - 'get', - '--no-precompile', - ], onRun: () { - fileSystem.file('.dart_tool/package_config.json').createSync(recursive: true); - }) - ]); - final BufferLogger logger = BufferLogger.test(); - - fileSystem.file('pubspec.yaml').createSync(); - fileSystem.file('version').writeAsStringSync('b'); - - final Pub pub = Pub( - fileSystem: fileSystem, - logger: logger, - processManager: processManager, - usage: MockUsage(), - platform: FakePlatform( - environment: const {}, - ), - botDetector: const BotDetectorAlwaysNo(), - ); - - await pub.get( - context: PubContext.pubGet, - checkUpToDate: true, - ); - - expect(processManager.hasRemainingExpectations, false); - expect(fileSystem.file('.dart_tool/version').readAsStringSync(), 'b'); - }); - - - testWithoutContext('checkUpToDate does not skip pub get if the package config is older that the pubspec', () async { - final FakeProcessManager processManager = FakeProcessManager.list([ - const FakeCommand(command: [ - 'bin/cache/dart-sdk/bin/pub', - '--verbosity=warning', - 'get', - '--no-precompile', - ]) - ]); - final BufferLogger logger = BufferLogger.test(); - final MemoryFileSystem fileSystem = MemoryFileSystem.test(); - - fileSystem.file('pubspec.yaml').createSync(); - fileSystem.file('.dart_tool/package_config.json') - ..createSync(recursive: true) - ..setLastModifiedSync(DateTime(1991)); - fileSystem.file('version').writeAsStringSync('b'); - - final Pub pub = Pub( - fileSystem: fileSystem, - logger: logger, - processManager: processManager, - usage: MockUsage(), - platform: FakePlatform( - environment: const {}, - ), - botDetector: const BotDetectorAlwaysNo(), - ); - - await pub.get( - context: PubContext.pubGet, - checkUpToDate: true, - ); - - expect(processManager.hasRemainingExpectations, false); - expect(fileSystem.file('.dart_tool/version').readAsStringSync(), 'b'); - }); - testWithoutContext('pub get 69', () async { String error; @@ -390,7 +209,6 @@ void main() { } ), ); - fileSystem.file('version').createSync(); fileSystem.file('pubspec.yaml').createSync(); fileSystem.file('.dart_tool/package_config.json') ..createSync(recursive: true) @@ -419,7 +237,6 @@ void main() { } ), ); - fileSystem.file('version').createSync(); fileSystem.file('pubspec.yaml').createSync(); fileSystem.file('.dart_tool/package_config.json') ..createSync(recursive: true) @@ -560,7 +377,6 @@ void main() { botDetector: const BotDetectorAlwaysNo() ); - fileSystem.file('version').createSync(); // the good scenario: .packages is old, pub updates the file. fileSystem.file('.dart_tool/package_config.json') ..createSync(recursive: true) diff --git a/packages/flutter_tools/test/src/throwing_pub.dart b/packages/flutter_tools/test/src/throwing_pub.dart index 41a150905a6..36656870f3b 100644 --- a/packages/flutter_tools/test/src/throwing_pub.dart +++ b/packages/flutter_tools/test/src/throwing_pub.dart @@ -30,7 +30,6 @@ class ThrowingPub implements Pub { bool skipPubspecYamlCheck = false, bool generateSyntheticPackage = false, String flutterRootOverride, - bool checkUpToDate = false, }) { throw UnsupportedError('Attempted to invoke pub during test.'); }