Skip to content

Commit cb67513

Browse files
author
Jonah Williams
authored
[flutter_tools] Reland: simplify pub cache logic (flutter#67589)
There have been some more additional reports of a missing 'package:characters' import after upgrading flutter. This has me concerned that our pub caching logic is incorrect. Instead of the tool attempting to guess when pub should be run, always delegate to pub. Also takes an opportunity to fix the kernel snapshot depending on the .packages or package_config. Due to the generated: date field this causes extra rebuilds. Instead when pub get is run, write out an additional file with just the package contents and version. Fixes flutter#66777 Fixes flutter#65723
1 parent 6cb6eef commit cb67513

File tree

18 files changed

+43
-199
lines changed

18 files changed

+43
-199
lines changed

packages/flutter_tools/lib/src/base/build.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ class AOTSnapshotter {
109109
@required TargetPlatform platform,
110110
@required BuildMode buildMode,
111111
@required String mainPath,
112-
@required String packagesPath,
113112
@required String outputPath,
114113
DarwinArch darwinArch,
115114
List<String> extraGenSnapshotOptions = const <String>[],

packages/flutter_tools/lib/src/build_system/targets/android.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,6 @@ class AndroidAot extends AotElfBase {
233233
platform: targetPlatform,
234234
buildMode: buildMode,
235235
mainPath: environment.buildDir.childFile('app.dill').path,
236-
packagesPath: environment.projectDir.childFile('.packages').path,
237236
outputPath: output.path,
238237
bitcode: false,
239238
extraGenSnapshotOptions: extraGenSnapshotOptions,

packages/flutter_tools/lib/src/build_system/targets/common.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,6 @@ abstract class AotElfBase extends Target {
323323
platform: targetPlatform,
324324
buildMode: buildMode,
325325
mainPath: environment.buildDir.childFile('app.dill').path,
326-
packagesPath: environment.projectDir.childFile('.packages').path,
327326
outputPath: outputPath,
328327
bitcode: false,
329328
extraGenSnapshotOptions: extraGenSnapshotOptions,

packages/flutter_tools/lib/src/build_system/targets/ios.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ abstract class AotAssemblyBase extends Target {
8787
platform: targetPlatform,
8888
buildMode: buildMode,
8989
mainPath: environment.buildDir.childFile('app.dill').path,
90-
packagesPath: environment.projectDir.childFile('.packages').path,
9190
outputPath: environment.fileSystem.path.join(buildOutputPath, getNameForDarwinArch(darwinArch)),
9291
darwinArch: darwinArch,
9392
bitcode: bitcode,
@@ -128,7 +127,6 @@ class AotAssemblyRelease extends AotAssemblyBase {
128127
List<Source> get inputs => const <Source>[
129128
Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/ios.dart'),
130129
Source.pattern('{BUILD_DIR}/app.dill'),
131-
Source.pattern('{PROJECT_DIR}/.packages'),
132130
Source.artifact(Artifact.engineDartBinary),
133131
Source.artifact(Artifact.skyEnginePath),
134132
// TODO(jonahwilliams): cannot reference gen_snapshot with artifacts since
@@ -163,7 +161,6 @@ class AotAssemblyProfile extends AotAssemblyBase {
163161
List<Source> get inputs => const <Source>[
164162
Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/ios.dart'),
165163
Source.pattern('{BUILD_DIR}/app.dill'),
166-
Source.pattern('{PROJECT_DIR}/.packages'),
167164
Source.artifact(Artifact.engineDartBinary),
168165
Source.artifact(Artifact.skyEnginePath),
169166
// TODO(jonahwilliams): cannot reference gen_snapshot with artifacts since

packages/flutter_tools/lib/src/build_system/targets/macos.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,6 @@ class CompileMacOSFramework extends Target {
227227
outputPath: environment.buildDir.path,
228228
platform: TargetPlatform.darwin_x64,
229229
darwinArch: DarwinArch.x86_64,
230-
packagesPath: environment.projectDir.childFile('.packages').path,
231230
splitDebugInfo: splitDebugInfo,
232231
dartObfuscation: dartObfuscation,
233232
extraGenSnapshotOptions: extraGenSnapshotOptions,

packages/flutter_tools/lib/src/build_system/targets/web.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ class Dart2JSTarget extends Target {
183183
Source.artifact(Artifact.dart2jsSnapshot),
184184
Source.artifact(Artifact.engineDartBinary),
185185
Source.pattern('{BUILD_DIR}/main.dart'),
186-
Source.pattern('{PROJECT_DIR}/.packages'),
186+
Source.pattern('{PROJECT_DIR}/.dart_tool/package_config_subset'),
187187
];
188188

189189
@override

packages/flutter_tools/lib/src/cache.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,6 @@ class PubDependencies extends ArtifactSet {
703703
context: PubContext.pubGet,
704704
directory: _fileSystem.path.join(_flutterRoot(), 'packages', 'flutter_tools'),
705705
generateSyntheticPackage: false,
706-
skipPubspecYamlCheck: true,
707-
checkLastModified: false,
708706
);
709707
}
710708
}

packages/flutter_tools/lib/src/commands/packages.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ class PackagesGetCommand extends FlutterCommand {
117117
directory: directory,
118118
upgrade: upgrade ,
119119
offline: boolArg('offline'),
120-
checkLastModified: false,
121120
generateSyntheticPackage: flutterProject.manifest.generateSyntheticPackage,
122121
);
123122
pubGetTimer.stop();

packages/flutter_tools/lib/src/commands/test.dart

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,8 @@ import '../asset.dart';
88
import '../base/common.dart';
99
import '../base/file_system.dart';
1010
import '../build_info.dart';
11-
import '../build_system/build_system.dart';
1211
import '../bundle.dart';
1312
import '../cache.dart';
14-
import '../dart/generate_synthetic_packages.dart';
15-
import '../dart/pub.dart';
1613
import '../devfs.dart';
1714
import '../globals.dart' as globals;
1815
import '../project.dart';
@@ -169,32 +166,6 @@ class TestCommand extends FlutterCommand {
169166
'directory (or one of its subdirectories).');
170167
}
171168
final FlutterProject flutterProject = FlutterProject.current();
172-
if (shouldRunPub) {
173-
if (flutterProject.manifest.generateSyntheticPackage) {
174-
final Environment environment = Environment(
175-
artifacts: globals.artifacts,
176-
logger: globals.logger,
177-
cacheDir: globals.cache.getRoot(),
178-
engineVersion: globals.flutterVersion.engineRevision,
179-
fileSystem: globals.fs,
180-
flutterRootDir: globals.fs.directory(Cache.flutterRoot),
181-
outputDir: globals.fs.directory(getBuildDirectory()),
182-
processManager: globals.processManager,
183-
projectDir: flutterProject.directory,
184-
);
185-
186-
await generateLocalizationsSyntheticPackage(
187-
environment: environment,
188-
buildSystem: globals.buildSystem,
189-
);
190-
}
191-
192-
await pub.get(
193-
context: PubContext.getVerifyContext(name),
194-
skipPubspecYamlCheck: true,
195-
generateSyntheticPackage: flutterProject.manifest.generateSyntheticPackage,
196-
);
197-
}
198169
final bool buildTestAssets = boolArg('test-assets');
199170
final List<String> names = stringsArg('name');
200171
final List<String> plainNames = stringsArg('plain-name');

packages/flutter_tools/lib/src/commands/update_packages.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,6 @@ class UpdatePackagesCommand extends FlutterCommand {
329329
context: PubContext.updatePackages,
330330
directory: tempDir.path,
331331
upgrade: true,
332-
checkLastModified: false,
333332
offline: offline,
334333
flutterRootOverride: upgrade
335334
? temporaryFlutterSdk.path
@@ -412,7 +411,6 @@ class UpdatePackagesCommand extends FlutterCommand {
412411
await pub.get(
413412
context: PubContext.updatePackages,
414413
directory: dir.path,
415-
checkLastModified: false,
416414
offline: offline,
417415
generateSyntheticPackage: false,
418416
);

0 commit comments

Comments
 (0)