Unverified Commit db141ecd authored by Jason Simmons's avatar Jason Simmons Committed by GitHub

Copy the flutter version JSON file into the simulated Flutter SDK used by update_packages (#143035)

Dart pub now expects that file to be present in a Flutter SDK (see
https://dart.googlesource.com/pub/+/dce232ec195df802a730eb3a66163e28d2ec6444)
parent bf9aa556
...@@ -19,6 +19,7 @@ import '../globals.dart' as globals; ...@@ -19,6 +19,7 @@ import '../globals.dart' as globals;
import '../project.dart'; import '../project.dart';
import '../runner/flutter_command.dart'; import '../runner/flutter_command.dart';
import '../update_packages_pins.dart'; import '../update_packages_pins.dart';
import '../version.dart';
class UpdatePackagesCommand extends FlutterCommand { class UpdatePackagesCommand extends FlutterCommand {
UpdatePackagesCommand() { UpdatePackagesCommand() {
...@@ -1713,6 +1714,10 @@ Directory createTemporaryFlutterSdk( ...@@ -1713,6 +1714,10 @@ Directory createTemporaryFlutterSdk(
// Fill in version info. // Fill in version info.
realFlutter.childFile('version') realFlutter.childFile('version')
.copySync(directory.childFile('version').path); .copySync(directory.childFile('version').path);
final File versionJson = FlutterVersion.getVersionFile(realFlutter.fileSystem, realFlutter.path);
final Directory binCacheDirectory = directory.childDirectory('bin').childDirectory('cache');
binCacheDirectory.createSync(recursive: true);
versionJson.copySync(binCacheDirectory.childFile('flutter.version.json').path);
// Directory structure should mirror the current Flutter SDK // Directory structure should mirror the current Flutter SDK
final Directory packages = directory.childDirectory('packages'); final Directory packages = directory.childDirectory('packages');
......
...@@ -73,6 +73,20 @@ dependencies: ...@@ -73,6 +73,20 @@ dependencies:
# PUBSPEC CHECKSUM: 6543 # PUBSPEC CHECKSUM: 6543
'''; ''';
const String kVersionJson = '''
{
"frameworkVersion": "1.2.3",
"channel": "[user-branch]",
"repositoryUrl": "git@github.com:flutter/flutter.git",
"frameworkRevision": "1234567812345678123456781234567812345678",
"frameworkCommitDate": "2024-02-06 22:26:52 +0100",
"engineRevision": "abcdef01abcdef01abcdef01abcdef01abcdef01",
"dartSdkVersion": "1.2.3",
"devToolsVersion": "1.2.3",
"flutterVersion": "1.2.3"
}
''';
void main() { void main() {
group('update-packages', () { group('update-packages', () {
late FileSystem fileSystem; late FileSystem fileSystem;
...@@ -91,6 +105,9 @@ void main() { ...@@ -91,6 +105,9 @@ void main() {
fileSystem = MemoryFileSystem.test(); fileSystem = MemoryFileSystem.test();
flutterSdk = fileSystem.directory('flutter')..createSync(); flutterSdk = fileSystem.directory('flutter')..createSync();
flutterSdk.childFile('version').writeAsStringSync('1.2.3'); flutterSdk.childFile('version').writeAsStringSync('1.2.3');
flutterSdk.childDirectory('bin').childDirectory('cache').childFile('flutter.version.json')
..createSync(recursive: true)
..writeAsStringSync(kVersionJson);
flutter = flutterSdk.childDirectory('packages').childDirectory('flutter') flutter = flutterSdk.childDirectory('packages').childDirectory('flutter')
..createSync(recursive: true); ..createSync(recursive: true);
flutterSdk.childDirectory('dev').createSync(recursive: true); flutterSdk.childDirectory('dev').createSync(recursive: true);
......
...@@ -77,6 +77,20 @@ dependencies: ...@@ -77,6 +77,20 @@ dependencies:
git: git:
'''; ''';
const String kVersionJson = '''
{
"frameworkVersion": "1.2.3",
"channel": "[user-branch]",
"repositoryUrl": "git@github.com:flutter/flutter.git",
"frameworkRevision": "1234567812345678123456781234567812345678",
"frameworkCommitDate": "2024-02-06 22:26:52 +0100",
"engineRevision": "abcdef01abcdef01abcdef01abcdef01abcdef01",
"dartSdkVersion": "1.2.3",
"devToolsVersion": "1.2.3",
"flutterVersion": "1.2.3"
}
''';
void main() { void main() {
late FileSystem fileSystem; late FileSystem fileSystem;
late Directory flutterSdk; late Directory flutterSdk;
...@@ -88,6 +102,10 @@ void main() { ...@@ -88,6 +102,10 @@ void main() {
flutterSdk = fileSystem.directory('flutter')..createSync(); flutterSdk = fileSystem.directory('flutter')..createSync();
// Create version file // Create version file
flutterSdk.childFile('version').writeAsStringSync('1.2.3'); flutterSdk.childFile('version').writeAsStringSync('1.2.3');
// Create version JSON file
flutterSdk.childDirectory('bin').childDirectory('cache').childFile('flutter.version.json')
..createSync(recursive: true)
..writeAsStringSync(kVersionJson);
// Create a pubspec file // Create a pubspec file
flutter = flutterSdk.childDirectory('packages').childDirectory('flutter') flutter = flutterSdk.childDirectory('packages').childDirectory('flutter')
..createSync(recursive: true); ..createSync(recursive: true);
...@@ -144,6 +162,7 @@ void main() { ...@@ -144,6 +162,7 @@ void main() {
// The version file exists. // The version file exists.
expect(result.childFile('version'), exists); expect(result.childFile('version'), exists);
expect(result.childFile('version').readAsStringSync(), '1.2.3'); expect(result.childFile('version').readAsStringSync(), '1.2.3');
expect(fileSystem.file(fileSystem.path.join(result.path, 'bin', 'cache', 'flutter.version.json')), exists);
// The sky_engine package exists // The sky_engine package exists
expect(fileSystem.directory('${result.path}/bin/cache/pkg/sky_engine'), exists); expect(fileSystem.directory('${result.path}/bin/cache/pkg/sky_engine'), exists);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment