Skip to content

Commit 276674e

Browse files
authored
Revert "Load parent package config" (#153752)
Reverts flutter/flutter#150850 Seems we need a G3Fix
1 parent e3dd966 commit 276674e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+391
-613
lines changed

packages/flutter_tools/bin/fuchsia_asset_builder.dart

+2-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import 'package:flutter_tools/src/bundle.dart';
1414
import 'package:flutter_tools/src/bundle_builder.dart';
1515
import 'package:flutter_tools/src/cache.dart';
1616
import 'package:flutter_tools/src/context_runner.dart';
17-
import 'package:flutter_tools/src/dart/package_map.dart';
1817
import 'package:flutter_tools/src/globals.dart' as globals;
1918
import 'package:flutter_tools/src/reporting/reporting.dart';
2019

@@ -45,7 +44,7 @@ Future<void> writeAssetFile(libfs.File outputFile, AssetBundleEntry asset) async
4544

4645
Future<void> run(List<String> args) async {
4746
final ArgParser parser = ArgParser()
48-
..addOption(_kOptionPackages, help: 'The .dart_tool/package_config file')
47+
..addOption(_kOptionPackages, help: 'The .packages file')
4948
..addOption(_kOptionAsset,
5049
help: 'The directory where to put temporary files')
5150
..addOption(_kOptionManifest, help: 'The manifest file')
@@ -64,8 +63,7 @@ Future<void> run(List<String> args) async {
6463
final AssetBundle? assets = await buildAssets(
6564
manifestPath: argResults[_kOptionManifest] as String? ?? defaultManifestPath,
6665
assetDirPath: assetDir,
67-
packageConfigPath: argResults[_kOptionPackages] as String? ??
68-
findPackageConfigFileOrDefault(globals.fs.currentDirectory).path,
66+
packagesPath: argResults[_kOptionPackages] as String?,
6967
targetPlatform: TargetPlatform.fuchsia_arm64 // This is not arch specific.
7068
);
7169

packages/flutter_tools/lib/src/asset.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ abstract class AssetBundle {
125125
/// Returns 0 for success; non-zero for failure.
126126
Future<int> build({
127127
String manifestPath = defaultManifestPath,
128-
required String packageConfigPath,
128+
required String packagesPath,
129129
bool deferredComponentsEnabled = false,
130130
TargetPlatform? targetPlatform,
131131
String? flavor,
@@ -246,7 +246,7 @@ class ManifestAssetBundle implements AssetBundle {
246246
Future<int> build({
247247
String manifestPath = defaultManifestPath,
248248
FlutterProject? flutterProject,
249-
required String packageConfigPath,
249+
required String packagesPath,
250250
bool deferredComponentsEnabled = false,
251251
TargetPlatform? targetPlatform,
252252
String? flavor,
@@ -293,7 +293,7 @@ class ManifestAssetBundle implements AssetBundle {
293293
}
294294

295295
final String assetBasePath = _fileSystem.path.dirname(_fileSystem.path.absolute(manifestPath));
296-
final File packageConfigFile = _fileSystem.file(packageConfigPath);
296+
final File packageConfigFile = _fileSystem.file(packagesPath);
297297
inputFiles.add(packageConfigFile);
298298
final PackageConfig packageConfig = await loadPackageConfigWithLogging(
299299
packageConfigFile,

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

+1-17
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,6 @@ class Environment {
334334
/// [engineVersion] should be set to null for local engine builds.
335335
factory Environment({
336336
required Directory projectDir,
337-
required String packageConfigPath,
338337
required Directory outputDir,
339338
required Directory cacheDir,
340339
required Directory flutterRootDir,
@@ -375,7 +374,6 @@ class Environment {
375374
return Environment._(
376375
outputDir: outputDir,
377376
projectDir: projectDir,
378-
packageConfigPath: packageConfigPath,
379377
buildDir: buildDirectory,
380378
rootBuildDir: rootBuildDir,
381379
cacheDir: cacheDir,
@@ -400,7 +398,6 @@ class Environment {
400398
@visibleForTesting
401399
factory Environment.test(Directory testDirectory, {
402400
Directory? projectDir,
403-
String? packageConfigPath,
404401
Directory? outputDir,
405402
Directory? cacheDir,
406403
Directory? flutterRootDir,
@@ -419,7 +416,6 @@ class Environment {
419416
}) {
420417
return Environment(
421418
projectDir: projectDir ?? testDirectory,
422-
packageConfigPath: packageConfigPath ?? '.dart_tool/package_config.json',
423419
outputDir: outputDir ?? testDirectory,
424420
cacheDir: cacheDir ?? testDirectory,
425421
flutterRootDir: flutterRootDir ?? testDirectory,
@@ -441,7 +437,6 @@ class Environment {
441437
Environment._({
442438
required this.outputDir,
443439
required this.projectDir,
444-
required this.packageConfigPath,
445440
required this.buildDir,
446441
required this.rootBuildDir,
447442
required this.cacheDir,
@@ -462,11 +457,6 @@ class Environment {
462457
/// The [Source] value which is substituted with the path to [projectDir].
463458
static const String kProjectDirectory = '{PROJECT_DIR}';
464459

465-
/// The [Source] value which is substituted with the path to the directory
466-
/// that contains `.dart_tool/package_config.json1`.
467-
/// That is the grand-parent of [BuildInfo.packageConfigPath].
468-
static const String kWorkspaceDirectory = '{WORKSPACE_DIR}';
469-
470460
/// The [Source] value which is substituted with the path to [buildDir].
471461
static const String kBuildDirectory = '{BUILD_DIR}';
472462

@@ -485,16 +475,10 @@ class Environment {
485475
/// can be located.
486476
final Directory projectDir;
487477

488-
/// The path to the package configuration file to use for compilation.
489-
///
490-
/// This is used by package:package_config to locate the actual package_config.json
491-
/// file. If not provided, defaults to `.dart_tool/package_config.json`.
492-
final String packageConfigPath;
493-
494478
/// The `BUILD_DIR` environment variable.
495479
///
496480
/// The root of the output directory where build step intermediates and
497-
/// outputs are written. Current usages of assemble configure this to be
481+
/// outputs are written. Current usages of assemble configure ths to be
498482
/// a unique directory under `.dart_tool/flutter_build`, though it can
499483
/// be placed anywhere. The uniqueness is only enforced by callers, and
500484
/// is currently done by hashing the build configuration.

packages/flutter_tools/lib/src/build_system/source.dart

-6
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,6 @@ class SourceVisitor implements ResolvedFiles {
9999
// flutter root will not contain a symbolic link.
100100
Environment.kFlutterRootDirectory => environment.flutterRootDir.absolute.path,
101101
Environment.kProjectDirectory => environment.projectDir.resolveSymbolicLinksSync(),
102-
Environment.kWorkspaceDirectory =>
103-
environment.fileSystem.path.dirname(
104-
environment.fileSystem.path.dirname(
105-
environment.packageConfigPath,
106-
),
107-
),
108102
Environment.kBuildDirectory => environment.buildDir.resolveSymbolicLinksSync(),
109103
Environment.kCacheDirectory => environment.cacheDir.resolveSymbolicLinksSync(),
110104
Environment.kOutputDirectory => environment.outputDir.resolveSymbolicLinksSync(),

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

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import '../../base/file_system.dart';
1111
import '../../base/logger.dart';
1212
import '../../build_info.dart';
1313
import '../../convert.dart';
14-
import '../../dart/package_map.dart';
1514
import '../../devfs.dart';
1615
import '../../flutter_manifest.dart';
1716
import '../build_system.dart';
@@ -61,7 +60,7 @@ Future<Depfile> copyAssets(
6160
).createBundle();
6261
final int resultCode = await assetBundle.build(
6362
manifestPath: pubspecFile.path,
64-
packageConfigPath: findPackageConfigFileOrDefault(environment.projectDir).path,
63+
packagesPath: environment.projectDir.childFile('.packages').path,
6564
deferredComponentsEnabled: environment.defines[kDeferredComponents] == 'true',
6665
targetPlatform: targetPlatform,
6766
flavor: flavor,

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

+8-4
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,9 @@ class KernelSnapshotProgram extends Target {
181181
}
182182
final BuildMode buildMode = BuildMode.fromCliName(buildModeEnvironment);
183183
final String targetFile = environment.defines[kTargetFile] ?? environment.fileSystem.path.join('lib', 'main.dart');
184-
final File packagesFile = findPackageConfigFileOrDefault(environment.projectDir);
184+
final File packagesFile = environment.projectDir
185+
.childDirectory('.dart_tool')
186+
.childFile('package_config.json');
185187
final String targetFileAbsolute = environment.fileSystem.file(targetFile).absolute.path;
186188
// everything besides 'false' is considered to be enabled.
187189
final bool trackWidgetCreation = environment.defines[kTrackWidgetCreation] != 'false';
@@ -338,7 +340,9 @@ class KernelSnapshotNativeAssets extends Target {
338340
throw MissingDefineException(kTargetPlatform, 'kernel_snapshot');
339341
}
340342
final BuildMode buildMode = BuildMode.fromCliName(buildModeEnvironment);
341-
final File packageConfigFile = findPackageConfigFileOrDefault(environment.projectDir);
343+
final File packagesFile = environment.projectDir
344+
.childDirectory('.dart_tool')
345+
.childFile('package_config.json');
342346

343347
final TargetPlatform targetPlatform = getTargetPlatformForName(targetPlatformEnvironment);
344348

@@ -351,7 +355,7 @@ class KernelSnapshotNativeAssets extends Target {
351355
environment.logger.printTrace('Embedding native assets mapping $nativeAssets in kernel.');
352356

353357
final PackageConfig packageConfig = await loadPackageConfigWithLogging(
354-
packageConfigFile,
358+
packagesFile,
355359
logger: environment.logger,
356360
);
357361

@@ -367,7 +371,7 @@ class KernelSnapshotNativeAssets extends Target {
367371
buildMode: buildMode,
368372
trackWidgetCreation: false,
369373
outputFilePath: dillPath,
370-
packagesPath: packageConfigFile.path,
374+
packagesPath: packagesFile.path,
371375
frontendServerStarterPath: frontendServerStarterPath,
372376
packageConfig: packageConfig,
373377
buildDir: environment.buildDir,

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

+2-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,8 @@ class DartPluginRegistrantTarget extends Target {
3131
assert(environment.generateDartPluginRegistry);
3232
final FlutterProject project = _project
3333
?? FlutterProject.fromDirectory(environment.projectDir);
34-
final File packageConfigFile = findPackageConfigFileOrDefault(environment.projectDir);
3534
final PackageConfig packageConfig = await loadPackageConfigWithLogging(
36-
packageConfigFile,
35+
project.packageConfigFile,
3736
logger: environment.logger,
3837
);
3938
final String targetFilePath = environment.defines[kTargetFile] ??
@@ -74,7 +73,7 @@ class DartPluginRegistrantTarget extends Target {
7473

7574
@override
7675
List<Source> get inputs => <Source>[
77-
const Source.pattern('{WORKSPACE_DIR}/.dart_tool/package_config_subset'),
76+
const Source.pattern('{PROJECT_DIR}/.dart_tool/package_config_subset'),
7877
];
7978

8079
@override

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

+6-4
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,17 @@ class NativeAssets extends Target {
6464
}
6565
final TargetPlatform targetPlatform = getTargetPlatformForName(targetPlatformEnvironment);
6666
final Uri projectUri = environment.projectDir.uri;
67-
67+
final File packagesFile = fileSystem
68+
.directory(projectUri)
69+
.childDirectory('.dart_tool')
70+
.childFile('package_config.json');
6871
final PackageConfig packageConfig = await loadPackageConfigWithLogging(
69-
fileSystem.file(environment.packageConfigPath),
72+
packagesFile,
7073
logger: environment.logger,
7174
);
7275
final NativeAssetsBuildRunner buildRunner = _buildRunner ??
7376
NativeAssetsBuildRunnerImpl(
7477
projectUri,
75-
environment.packageConfigPath,
7678
packageConfig,
7779
fileSystem,
7880
environment.logger,
@@ -378,7 +380,7 @@ class NativeAssets extends Target {
378380
List<Source> get inputs => const <Source>[
379381
Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/native_assets.dart'),
380382
// If different packages are resolved, different native assets might need to be built.
381-
Source.pattern('{WORKSPACE_DIR}/.dart_tool/package_config_subset'),
383+
Source.pattern('{PROJECT_DIR}/.dart_tool/package_config_subset'),
382384
// TODO(mosuem): Should consume resources.json. https://github.com/flutter/flutter/issues/146263
383385
];
384386

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

+6-6
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ class WebEntrypointTarget extends Target {
5454
Future<void> build(Environment environment) async {
5555
final String? targetFile = environment.defines[kTargetFile];
5656
final Uri importUri = environment.fileSystem.file(targetFile).absolute.uri;
57-
final File packageConfigFile = findPackageConfigFileOrDefault(environment.projectDir);
58-
57+
// TODO(zanderso): support configuration of this file.
58+
const String packageFile = '.packages';
5959
final PackageConfig packageConfig = await loadPackageConfigWithLogging(
60-
packageConfigFile,
60+
environment.fileSystem.file(packageFile),
6161
logger: environment.logger,
6262
);
6363
final FlutterProject flutterProject = FlutterProject.current();
@@ -129,7 +129,7 @@ abstract class Dart2WebTarget extends Target {
129129
compilerSnapshot,
130130
const Source.artifact(Artifact.engineDartBinary),
131131
const Source.pattern('{BUILD_DIR}/main.dart'),
132-
const Source.pattern('{WORKSPACE_DIR}/.dart_tool/package_config_subset'),
132+
const Source.pattern('{PROJECT_DIR}/.dart_tool/package_config_subset'),
133133
];
134134

135135
@override
@@ -188,7 +188,7 @@ class Dart2JSTarget extends Dart2WebTarget {
188188
...compilerConfig.toSharedCommandOptions(buildMode),
189189
'-o',
190190
environment.buildDir.childFile('app.dill').path,
191-
'--packages=${findPackageConfigFileOrDefault(environment.projectDir).path}',
191+
'--packages=.dart_tool/package_config.json',
192192
'--cfe-only',
193193
environment.buildDir.childFile('main.dart').path, // dartfile
194194
];
@@ -302,7 +302,7 @@ class Dart2WasmTarget extends Dart2WebTarget {
302302
artifacts.getArtifactPath(Artifact.engineDartBinary, platform: TargetPlatform.web_javascript),
303303
'compile',
304304
'wasm',
305-
'--packages=${findPackageConfigFileOrDefault(environment.projectDir).path}',
305+
'--packages=.dart_tool/package_config.json',
306306
'--extra-compiler-option=--platform=$platformFilePath',
307307
'--extra-compiler-option=--delete-tostring-package-uri=dart:ui',
308308
'--extra-compiler-option=--delete-tostring-package-uri=package:flutter',

packages/flutter_tools/lib/src/bundle_builder.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ class BundleBuilder {
5555
// If the precompiled flag was not passed, force us into debug mode.
5656
final Environment environment = Environment(
5757
projectDir: project.directory,
58-
packageConfigPath: buildInfo.packageConfigPath,
5958
outputDir: globals.fs.directory(assetDirPath),
6059
buildDir: project.dartTool.childDirectory('flutter_build'),
6160
cacheDir: globals.cache.getRoot(),
@@ -116,17 +115,18 @@ class BundleBuilder {
116115
Future<AssetBundle?> buildAssets({
117116
required String manifestPath,
118117
String? assetDirPath,
119-
required String packageConfigPath,
118+
String? packagesPath,
120119
TargetPlatform? targetPlatform,
121120
String? flavor,
122121
}) async {
123122
assetDirPath ??= getAssetBuildDirectory();
123+
packagesPath ??= globals.fs.path.absolute('.packages');
124124

125125
// Build the asset bundle.
126126
final AssetBundle assetBundle = AssetBundleFactory.instance.createBundle();
127127
final int result = await assetBundle.build(
128128
manifestPath: manifestPath,
129-
packageConfigPath: packageConfigPath,
129+
packagesPath: packagesPath,
130130
targetPlatform: targetPlatform,
131131
flavor: flavor,
132132
);

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

-1
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,6 @@ class AssembleCommand extends FlutterCommand {
236236
.childDirectory('.dart_tool')
237237
.childDirectory('flutter_build'),
238238
projectDir: _flutterProject.directory,
239-
packageConfigPath: packageConfigPath(),
240239
defines: _parseDefines(stringsArg('define')),
241240
inputs: _parseDefines(stringsArg('input')),
242241
cacheDir: globals.cache.getRoot(),

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

-1
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,6 @@ end
435435
frameworks.add(outputBuildDirectory.childDirectory(appFrameworkName));
436436
final Environment environment = Environment(
437437
projectDir: globals.fs.currentDirectory,
438-
packageConfigPath: packageConfigPath(),
439438
outputDir: outputBuildDirectory,
440439
buildDir: project.dartTool.childDirectory('flutter_build'),
441440
cacheDir: globals.cache.getRoot(),

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

-1
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,6 @@ end
217217
try {
218218
final Environment environment = Environment(
219219
projectDir: globals.fs.currentDirectory,
220-
packageConfigPath: packageConfigPath(),
221220
outputDir: macosBuildOutput,
222221
buildDir: project.dartTool.childDirectory('flutter_build'),
223222
cacheDir: globals.cache.getRoot(),

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

+2-4
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,13 @@ class BuildPreviewCommand extends BuildSubCommand {
6060
try {
6161
final FlutterProject flutterProject = await _createProject(targetDir);
6262

63-
final File packageConfigFile = findPackageConfigFileOrDefault(flutterProject.directory);
64-
6563
final BuildInfo buildInfo = BuildInfo(
6664
BuildMode.debug,
6765
null, // no flavor
6866
// users may add icons later
69-
packageConfigPath: packageConfigFile.path,
67+
packageConfigPath: flutterProject.packageConfigFile.path,
7068
packageConfig: await loadPackageConfigWithLogging(
71-
packageConfigFile,
69+
flutterProject.packageConfigFile,
7270
logger: logger,
7371
),
7472
treeShakeIcons: false,

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class CleanCommand extends FlutterCommand {
5454
deleteFile(buildDir);
5555

5656
deleteFile(flutterProject.dartTool);
57-
deleteFile(flutterProject.directory.childFile('.packages'));
57+
deleteFile(flutterProject.packagesFile);
5858

5959
deleteFile(flutterProject.android.ephemeralDirectory);
6060

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

-1
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,6 @@ abstract class CreateBase extends FlutterCommand {
571571
usage: globals.flutterUsage,
572572
analytics: globals.analytics,
573573
projectDir: project.directory,
574-
packageConfigPath: packageConfigPath(),
575574
generateDartPluginRegistry: true,
576575
);
577576

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

+1-3
Original file line numberDiff line numberDiff line change
@@ -261,10 +261,8 @@ class DriveCommand extends RunCommandBase {
261261
dartSdkPath: globals.artifacts!.getArtifactPath(Artifact.engineDartBinary),
262262
devtoolsLauncher: DevtoolsLauncher.instance!,
263263
);
264-
final File packageConfigFile = findPackageConfigFileOrDefault(_fileSystem.currentDirectory);
265-
266264
final PackageConfig packageConfig = await loadPackageConfigWithLogging(
267-
packageConfigFile,
265+
_fileSystem.file('.packages'),
268266
logger: _logger,
269267
throwOnError: false,
270268
);

0 commit comments

Comments
 (0)