Skip to content

Commit 836f378

Browse files
committed
Read builder config from AssetReader.
1 parent 41d91a1 commit 836f378

File tree

16 files changed

+156
-155
lines changed

16 files changed

+156
-155
lines changed

_test_common/lib/build_configs.dart

Lines changed: 0 additions & 12 deletions
This file was deleted.

_test_common/lib/test_phases.dart

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import 'dart:async';
55
import 'dart:convert';
66

77
import 'package:build/build.dart';
8-
import 'package:build_config/build_config.dart';
98
import 'package:build_runner_core/build_runner_core.dart';
109
import 'package:build_test/build_test.dart';
1110
// ignore: implementation_imports
@@ -78,13 +77,11 @@ Future<TestBuildersResult> testPhases(
7877
Map<String, /*String|List<int>*/ Object>? outputs,
7978
PackageGraph? packageGraph,
8079
BuildStatus status = BuildStatus.success,
81-
Map<String, BuildConfig>? overrideBuildConfig,
8280
// A better way to "silence" logging than setting logLevel to OFF.
8381
void Function(LogRecord record) onLog = _printOnFailure,
8482
bool checkBuildStatus = true,
8583
bool deleteFilesByDefault = true,
8684
bool enableLowResourcesMode = false,
87-
Map<String, Map<String, dynamic>>? builderConfigOverrides,
8885
bool verbose = false,
8986
Set<BuildDirectory> buildDirs = const {},
9087
Set<BuildFilter> buildFilters = const {},
@@ -134,7 +131,6 @@ Future<TestBuildersResult> testPhases(
134131
}
135132
});
136133

137-
builderConfigOverrides ??= const {};
138134
var environment = BuildEnvironment(
139135
packageGraph,
140136
reader: readerWriter,
@@ -147,10 +143,10 @@ Future<TestBuildersResult> testPhases(
147143
});
148144

149145
var options = await BuildOptions.create(
150-
deleteFilesByDefault: deleteFilesByDefault,
151146
packageGraph: packageGraph,
147+
reader: environment.reader,
148+
deleteFilesByDefault: deleteFilesByDefault,
152149
skipBuildScriptCheck: true,
153-
overrideBuildConfig: overrideBuildConfig ?? const {},
154150
enableLowResourcesMode: enableLowResourcesMode,
155151
logPerformanceDir: logPerformanceDir,
156152
);
@@ -160,7 +156,7 @@ Future<TestBuildersResult> testPhases(
160156
options,
161157
environment,
162158
builders,
163-
builderConfigOverrides,
159+
const {},
164160
isReleaseBuild: false,
165161
);
166162
result = await build.run(

build_runner/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
- Remove unused deps: `analyzer`, `build_resolvers`, `collection`, `http`,
44
`js`, `meta`, `package_config`, `pool`, `web`, `yaml`.
55
- Remove unused dev_deps: `http`, `package_config`, `web`.
6+
- Testing: read build configs using `AssetReader` so they're easier to test.
67

78
## 2.6.0-dev.1
89

build_runner/lib/src/daemon/daemon_builder.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ class BuildRunnerDaemonBuilder implements DaemonBuilder {
257257

258258
var buildOptions = await BuildOptions.create(
259259
packageGraph: packageGraph,
260+
reader: daemonEnvironment.reader,
260261
deleteFilesByDefault: daemonOptions.deleteFilesByDefault,
261262
overrideBuildConfig: overrideBuildConfig,
262263
skipBuildScriptCheck: daemonOptions.skipBuildScriptCheck,

build_runner/lib/src/generate/build.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,9 @@ Future<BuildResult> build(
9292
b.onLog = onLog;
9393
});
9494
var options = await BuildOptions.create(
95-
deleteFilesByDefault: deleteFilesByDefault,
9695
packageGraph: packageGraph,
96+
reader: environment.reader,
97+
deleteFilesByDefault: deleteFilesByDefault,
9798
skipBuildScriptCheck: skipBuildScriptCheck,
9899
overrideBuildConfig: await findBuildConfigOverrides(
99100
packageGraph,

build_runner/lib/src/generate/watch_impl.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,9 @@ Future<ServeHandler> watch(
8282
configKey: configKey,
8383
);
8484
var options = await BuildOptions.create(
85-
deleteFilesByDefault: deleteFilesByDefault,
8685
packageGraph: packageGraph,
86+
reader: environment.reader,
87+
deleteFilesByDefault: deleteFilesByDefault,
8788
overrideBuildConfig: overrideBuildConfig,
8889
debounceDelay: debounceDelay,
8990
skipBuildScriptCheck: skipBuildScriptCheck,

build_runner/test/build_script_generate/builder_ordering_test.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:_test_common/build_configs.dart';
65
import 'package:build_config/build_config.dart';
76
import 'package:build_runner/src/build_script_generate/builder_ordering.dart';
87
import 'package:test/test.dart';
@@ -222,3 +221,10 @@ void main() {
222221
});
223222
});
224223
}
224+
225+
Map<String, BuildConfig> parseBuildConfigs(
226+
Map<String, Map<String, dynamic>> configs,
227+
) => Map<String, BuildConfig>.fromIterable(
228+
configs.keys,
229+
value: (key) => BuildConfig.fromMap(key as String, [], configs[key]!),
230+
);

build_runner/test/generate/watch_test.dart

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import 'dart:async';
55
import 'dart:convert';
66
import 'dart:io';
77

8-
import 'package:_test_common/build_configs.dart';
98
import 'package:_test_common/common.dart';
109
import 'package:async/async.dart';
1110
import 'package:build/build.dart';
@@ -110,18 +109,17 @@ void main() {
110109
test('rebuilds on file updates outside hardcoded sources', () async {
111110
var buildState = await startWatch(
112111
[copyABuildApplication],
113-
{'a|test_files/a.txt': 'a'},
112+
{
113+
'a|test_files/a.txt': 'a',
114+
'a|build.yaml': '''
115+
targets:
116+
a:
117+
sources:
118+
- test_files/**
119+
''',
120+
},
114121
readerWriter,
115122
packageGraph: packageGraph,
116-
overrideBuildConfig: parseBuildConfigs({
117-
'a': {
118-
'targets': {
119-
'a': {
120-
'sources': ['test_files/**'],
121-
},
122-
},
123-
},
124-
}),
125123
);
126124
var results = StreamQueue(buildState.buildResults);
127125

@@ -179,18 +177,17 @@ void main() {
179177
test('rebuilds on new files outside hardcoded sources', () async {
180178
var buildState = await startWatch(
181179
[copyABuildApplication],
182-
{'a|test_files/a.txt': 'a'},
180+
{
181+
'a|test_files/a.txt': 'a',
182+
'a|build.yaml': '''
183+
targets:
184+
a:
185+
sources:
186+
- test_files/**
187+
''',
188+
},
183189
readerWriter,
184190
packageGraph: packageGraph,
185-
overrideBuildConfig: parseBuildConfigs({
186-
'a': {
187-
'targets': {
188-
'a': {
189-
'sources': ['test_files/**'],
190-
},
191-
},
192-
},
193-
}),
194191
);
195192
var results = StreamQueue(buildState.buildResults);
196193

@@ -302,18 +299,18 @@ void main() {
302299
test('rebuilds on deleted files outside hardcoded sources', () async {
303300
var buildState = await startWatch(
304301
[copyABuildApplication],
305-
{'a|test_files/a.txt': 'a', 'a|test_files/b.txt': 'b'},
302+
{
303+
'a|test_files/a.txt': 'a',
304+
'a|test_files/b.txt': 'b',
305+
'a|build.yaml': '''
306+
targets:
307+
a:
308+
sources:
309+
- test_files/**
310+
''',
311+
},
306312
readerWriter,
307313
packageGraph: packageGraph,
308-
overrideBuildConfig: parseBuildConfigs({
309-
'a': {
310-
'targets': {
311-
'a': {
312-
'sources': ['test_files/**'],
313-
},
314-
},
315-
},
316-
}),
317314
);
318315
var results = StreamQueue(buildState.buildResults);
319316

build_runner_core/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
- Removed unused dev_deps: `test_process`.
44
- Bug fix: fix incremental build after build with import of missing package.
5+
- Testing: read build configs using `AssetReader` so they're easier to test.
56

67
## 9.2.0-dev.1
78

build_runner_core/lib/src/generate/options.dart

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,16 @@ class BuildOptions {
143143

144144
/// Creates a [BuildOptions] with sane defaults.
145145
///
146+
/// Pass [reader] to read `build.yaml` files, otherwise defaults are used.
147+
///
146148
/// NOTE: If a custom [resolvers] instance is passed it must ensure that it
147149
/// enables [enabledExperiments] on any analysis options it creates.
148150
static Future<BuildOptions> create({
151+
required PackageGraph packageGraph,
152+
AssetReader? reader,
149153
Duration debounceDelay = const Duration(milliseconds: 250),
150154
bool deleteFilesByDefault = false,
151155
bool enableLowResourcesMode = false,
152-
required PackageGraph packageGraph,
153156
Map<String, BuildConfig> overrideBuildConfig = const {},
154157
bool skipBuildScriptCheck = false,
155158
bool trackPerformance = false,
@@ -161,18 +164,14 @@ class BuildOptions {
161164
try {
162165
targetGraph = await TargetGraph.forPackageGraph(
163166
packageGraph,
167+
reader: reader,
164168
overrideBuildConfig: overrideBuildConfig,
165169
defaultRootPackageSources: defaultRootPackageSources,
166170
requiredSourcePaths: [r'lib/$lib$'],
167171
requiredRootSourcePaths: [r'$package$', r'lib/$lib$'],
168172
);
169173
} on BuildConfigParseException catch (e) {
170-
buildLog.error('''
171-
Failed to parse `build.yaml` for ${e.packageName}.
172-
173-
If you believe you have gotten this message in error, especially if using a new
174-
feature, you may need to run `dart run build_runner clean` and then rebuild.
175-
''');
174+
buildLog.error(e.toString());
176175
throw const CannotBuildException();
177176
}
178177

0 commit comments

Comments
 (0)