[dwds][dwds_test_common] Migrate package to the SDK repository

This CL migrates the `dwds` and `dwds_test_common` packages into the Dart SDK
repository.

Key Changes:
- Monorepo Compliance: Updated the pubspecs to align with the SDK pub workspace setup.
- Excluded `pkg/dwds_test_common/fixtures/` from `package_deps.dart`.
- Updated pkg to status to skip `dwds/test/integration/*` & `dwds_test_common/fixtures/*` until DWDS migration is complete.
- Remove package `build_daemon` from DWDS' `pubspec.yaml` as it's not approved for SDK env.
- Added `@skip_package_deps_validation` to the following files to ignore import checks for package:build_daemon: `server.dart`, `utilities.dart`, `context.dart`.
- Created `pkg/dwds/lib/src/utilities/test_path_utils.dart` to fix path resolution failures in tests (ie. `build_script_test.dart` and `ensure_version_test.dart`).

Testing:
- All tests passing locally.
- CI try bots are green.

Design Doc: http://goto.google.com/migrating-webdev and http://goto.google.com/migrating-dwds

Fixes https://github.com/dart-lang/sdk/issues/62100
Fixes https://github.com/dart-lang/sdk/issues/62101
Fixes https://github.com/dart-lang/sdk/issues/62102
Fixes https://github.com/dart-lang/sdk/issues/62103

Cq-Include-Trybots: luci.dart.try:pkg-win-release-try,pkg-win-release-arm64-try,pkg-mac-release-try,pkg-mac-release-arm64-try,pkg-linux-release-try,pkg-linux-release-arm64-try,pkg-linux-debug-try

Change-Id: I6130be8b7e0b42fbbf81b26a4950a2c4282e3a48
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/494660
Commit-Queue: Jessy Yameogo <yjessy@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
This commit is contained in:
Jessy Yameogo
2026-04-23 13:18:18 -07:00
committed by dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent e1d687cb9e
commit a909051679
25 changed files with 148 additions and 108 deletions
+3
View File
@@ -0,0 +1,3 @@
set noparent
# Dart Development Infrastructure Team
file:/tools/OWNERS_DEV_INFRA
+4 -1
View File
@@ -3,8 +3,11 @@ include: package:dart_flutter_team_lints/analysis_options.yaml
analyzer: analyzer:
exclude: exclude:
# Ignore generated files # Ignore generated files
- "lib/data/*"
- "lib/src/handlers/injected_client_js.dart" - "lib/src/handlers/injected_client_js.dart"
# Ignore integration fixtures to avoid analysis errors from "package:build_daemon".
- "test/integration/fixtures/context.dart"
- "test/integration/fixtures/server.dart"
- "test/integration/fixtures/utilities.dart"
linter: linter:
rules: rules:
+1 -1
View File
@@ -77,7 +77,7 @@ class BatchedDebugEvents {
bool _listEquals<T>(List<T>? a, List<T>? b) { bool _listEquals<T>(List<T>? a, List<T>? b) {
if (a == null) return b == null; if (a == null) return b == null;
if (b == null || a.length != b.length) return false; if (b == null || a.length != b.length) return false;
for (int i = 0; i < a.length; i++) { for (var i = 0; i < a.length; i++) {
if (a[i] != b[i]) return false; if (a[i] != b[i]) return false;
} }
return true; return true;
+5 -3
View File
@@ -49,7 +49,8 @@ class ExtensionRequest {
@override @override
String toString() => String toString() =>
'ExtensionRequest { id=$id, command=$command, commandParams=$commandParams }'; 'ExtensionRequest { id=$id, command=$command, '
'commandParams=$commandParams }';
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
@@ -111,7 +112,8 @@ class ExtensionResponse {
@override @override
String toString() => String toString() =>
'ExtensionResponse { id=$id, success=$success, result=$result, error=$error }'; 'ExtensionResponse { id=$id, success=$success, '
'result=$result, error=$error }';
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
@@ -195,7 +197,7 @@ class BatchedEvents {
identical(this, other) || identical(this, other) ||
other is BatchedEvents && other is BatchedEvents &&
runtimeType == other.runtimeType && runtimeType == other.runtimeType &&
const ListEquality().equals(events, other.events); const ListEquality<ExtensionEvent>().equals(events, other.events);
@override @override
int get hashCode => Object.hashAll(events); int get hashCode => Object.hashAll(events);
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a // for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file. // BSD-style license that can be found in the LICENSE file.
library hot_reload_request;
/// A request to hot reload the application. /// A request to hot reload the application.
class HotReloadRequest { class HotReloadRequest {
/// A unique identifier for this request. /// A unique identifier for this request.
+2 -3
View File
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a // for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file. // BSD-style license that can be found in the LICENSE file.
library hot_reload_response;
/// A response to a hot reload request. /// A response to a hot reload request.
class HotReloadResponse { class HotReloadResponse {
/// The unique identifier matching the request. /// The unique identifier matching the request.
@@ -50,5 +48,6 @@ class HotReloadResponse {
@override @override
String toString() => String toString() =>
'HotReloadResponse(id: $id, success: $success, errorMessage: $errorMessage)'; 'HotReloadResponse(id: $id, success: $success, '
'errorMessage: $errorMessage)';
} }
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a // for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file. // BSD-style license that can be found in the LICENSE file.
library hot_restart_request;
/// A request to hot restart the application. /// A request to hot restart the application.
class HotRestartRequest { class HotRestartRequest {
/// A unique identifier for this request. /// A unique identifier for this request.
+2 -1
View File
@@ -23,7 +23,8 @@ Map<String, dynamic> listToMap(List<dynamic> list, {String? type}) {
if ((list.length - startIndex).isOdd) { if ((list.length - startIndex).isOdd) {
throw FormatException( throw FormatException(
'Expected an even number of elements${type != null ? " after $type" : ""}', 'Expected an even number of elements'
'${type != null ? " after $type" : ""}',
list, list,
); );
} }
+2 -2
View File
@@ -146,8 +146,8 @@ class DdcStrategy extends LoadStrategy {
AssetReader assetReader, AssetReader assetReader,
this._buildSettings, this._buildSettings,
this._g3RelativePath, { this._g3RelativePath, {
String? packageConfigPath, super.packageConfigPath,
}) : super(assetReader, packageConfigPath: packageConfigPath); }) : super(assetReader);
@override @override
Handler get handler => (request) async { Handler get handler => (request) async {
@@ -146,10 +146,10 @@ class DdcLibraryBundleStrategy extends LoadStrategy {
AssetReader assetReader, AssetReader assetReader,
this._buildSettings, this._buildSettings,
this._g3RelativePath, { this._g3RelativePath, {
String? packageConfigPath, super.packageConfigPath,
this.reloadedSourcesUri, this.reloadedSourcesUri,
this.injectScriptLoad = true, this.injectScriptLoad = true,
}) : super(assetReader, packageConfigPath: packageConfigPath); }) : super(assetReader);
@override @override
Handler get handler => (request) async { Handler get handler => (request) async {
+2 -2
View File
@@ -139,8 +139,8 @@ class RequireStrategy extends LoadStrategy {
this._moduleInfoForProvider, this._moduleInfoForProvider,
AssetReader assetReader, AssetReader assetReader,
this._buildSettings, { this._buildSettings, {
String? packageConfigPath, super.packageConfigPath,
}) : super(assetReader, packageConfigPath: packageConfigPath); }) : super(assetReader);
@override @override
Handler get handler => (request) async { Handler get handler => (request) async {
+13 -25
View File
@@ -1,13 +1,14 @@
name: dwds name: dwds
# Every time this changes you need to run `dart run build_runner build`. # Every time this changes you need to run `dart run tool/build.dart`.
version: 27.1.1-wip version: 27.1.1-wip
description: >- description: >-
A service that proxies between the Chrome debug protocol and the Dart VM A service that proxies between the Chrome debug protocol and the Dart VM
service protocol. service protocol.
repository: https://github.com/dart-lang/webdev/tree/main/dwds
environment: environment:
sdk: ^3.12.0-307.0.dev sdk: ^3.12.0-0
resolution: workspace
dependencies: dependencies:
async: ^2.9.0 async: ^2.9.0
@@ -24,9 +25,7 @@ dependencies:
pool: ^1.5.0 pool: ^1.5.0
pub_semver: ^2.1.1 pub_semver: ^2.1.1
shelf: ^1.3.0 shelf: ^1.3.0
shelf_packages_handler: ^3.0.0
shelf_proxy: ^1.0.4 shelf_proxy: ^1.0.4
shelf_static: ^1.1.0
shelf_web_socket: ">=2.0.0 <4.0.0" shelf_web_socket: ">=2.0.0 <4.0.0"
source_maps: ^0.10.10 source_maps: ^0.10.10
sse: ^4.2.0 sse: ^4.2.0
@@ -34,28 +33,17 @@ dependencies:
stream_channel: ^2.1.2 stream_channel: ^2.1.2
vm_service: ">=14.2.4 <16.0.0" vm_service: ">=14.2.4 <16.0.0"
vm_service_interface: ^2.0.1 vm_service_interface: ^2.0.1
web: ^1.1.0
web_socket: ^1.0.1 web_socket: ^1.0.1
web_socket_channel: ">=2.2.0 <4.0.0" web_socket_channel: ">=2.2.0 <4.0.0"
webkit_inspection_protocol: ^1.0.1 webkit_inspection_protocol: ^1.0.1
dev_dependencies: dev_dependencies:
args: ^2.4.2 dart_flutter_team_lints: any
build_daemon: ^4.0.0 dwds_test_common: any
dart_flutter_team_lints: ^3.5.2 graphs: any
dwds_test_common: io: any
path: ../dwds_test_common mime: any
graphs: ^2.1.0 test: any
io: ^1.0.5 web: any
js: ">=0.6.4 <0.8.0" webdriver: any
mime: ^2.0.0 yaml: any
test: ^1.21.6
webdriver: ^3.0.0
yaml: ^3.1.3
dependency_overrides:
sse:
git:
url: https://github.com/dart-lang/tools.git
ref: 06493ded8ca27996d979f9f903d2bc24a1215064
path: pkgs/sse
+32 -14
View File
@@ -10,11 +10,13 @@ import 'package:dwds/src/handlers/injected_client_js.dart';
import 'package:path/path.dart' as p; import 'package:path/path.dart' as p;
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'test_path_utils.dart';
void main() { void main() {
group('Committed file integrity tests', () { group('Committed file integrity tests', () {
test('injected_client_js.dart is in sync with web/client.dart', () { test('injected_client_js.dart is in sync with web/client.dart', () async {
final clientDartString = File( final clientDartString = File(
'web/client.dart', await dwdsPath('web/client.dart'),
).readAsStringSync().replaceAll('\r\n', '\n'); ).readAsStringSync().replaceAll('\r\n', '\n');
final expectedHash = sha256 final expectedHash = sha256
.convert(utf8.encode(clientDartString)) .convert(utf8.encode(clientDartString))
@@ -37,11 +39,17 @@ void main() {
group('Build script tests', () { group('Build script tests', () {
setUpAll(() async { setUpAll(() async {
// Use Platform.executable to ensure we use the same Dart SDK // Use Platform.executable to ensure the same Dart SDK is used. Only
final result = await Process.run(Platform.executable, [ // resolve the absolute path if it's a local/relative path. Global
// system commands (no path separators) are passed as-is.
final executable = Platform.executable;
final resolvedExecutable = executable.contains(p.separator)
? File(executable).absolute.path
: executable;
final result = await Process.run(resolvedExecutable, [
'run', 'run',
'tool/build.dart', 'tool/build.dart',
]); ], workingDirectory: await dwdsPackageRoot);
expect( expect(
result.exitCode, result.exitCode,
@@ -50,14 +58,18 @@ void main() {
); );
}); });
test('generates client.js', () { test('generates client.js', () async {
final clientJsFile = File(p.join('lib', 'src', 'injected', 'client.js')); final clientJsFile = File(
await dwdsPath(p.join('lib', 'src', 'injected', 'client.js')),
);
expect(clientJsFile.existsSync(), isTrue); expect(clientJsFile.existsSync(), isTrue);
expect(clientJsFile.lengthSync(), greaterThan(0)); expect(clientJsFile.lengthSync(), greaterThan(0));
}); });
test('generates version.dart', () { test('generates version.dart', () async {
final versionFile = File(p.join('lib', 'src', 'version.dart')); final versionFile = File(
await dwdsPath(p.join('lib', 'src', 'version.dart')),
);
expect(versionFile.existsSync(), isTrue); expect(versionFile.existsSync(), isTrue);
expect( expect(
versionFile.readAsStringSync(), versionFile.readAsStringSync(),
@@ -65,23 +77,29 @@ void main() {
); );
}); });
test('generates injected_client_js.dart', () { test('generates injected_client_js.dart', () async {
final injectedFile = File( final injectedFile = File(
p.join('lib', 'src', 'handlers', 'injected_client_js.dart'), await dwdsPath(
p.join('lib', 'src', 'handlers', 'injected_client_js.dart'),
),
); );
expect(injectedFile.existsSync(), isTrue); expect(injectedFile.existsSync(), isTrue);
expect(injectedFile.lengthSync(), greaterThan(0)); expect(injectedFile.lengthSync(), greaterThan(0));
}); });
test('injected_client_js.dart matches client.js content', () { test('injected_client_js.dart matches client.js content', () async {
final clientJsFile = File(p.join('lib', 'src', 'injected', 'client.js')); final clientJsFile = File(
await dwdsPath(p.join('lib', 'src', 'injected', 'client.js')),
);
final actualClientJs = clientJsFile.readAsStringSync().replaceAll( final actualClientJs = clientJsFile.readAsStringSync().replaceAll(
'\r\n', '\r\n',
'\n', '\n',
); );
final injectedFile = File( final injectedFile = File(
p.join('lib', 'src', 'handlers', 'injected_client_js.dart'), await dwdsPath(
p.join('lib', 'src', 'handlers', 'injected_client_js.dart'),
),
); );
final injectedContent = injectedFile.readAsStringSync(); final injectedContent = injectedFile.readAsStringSync();
+5 -2
View File
@@ -12,9 +12,12 @@ import 'package:pub_semver/pub_semver.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:yaml/yaml.dart'; import 'package:yaml/yaml.dart';
import 'test_path_utils.dart';
void main() { void main() {
test('dwds lib/src/version.dart matches the pubspec version', () { test('dwds lib/src/version.dart matches the pubspec version', () async {
final pubspec = loadYaml(File('pubspec.yaml').readAsStringSync()) as Map; final pubspecPath = await dwdsPath('pubspec.yaml');
final pubspec = loadYaml(File(pubspecPath).readAsStringSync()) as Map;
expect( expect(
Version.parse(packageVersion), Version.parse(packageVersion),
Version.parse(pubspec['version'] as String), Version.parse(pubspec['version'] as String),
-38
View File
@@ -1,38 +0,0 @@
// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
@TestOn('vm')
@Skip('Intended to run in analyze stage on stable SDK only, see mono_pkg.yaml')
library;
import 'dart:io';
import 'package:pub_semver/pub_semver.dart';
import 'package:test/test.dart';
import 'package:yaml/yaml.dart';
void main() {
test('dwds pubspec has the stable as min SDK constraint', () {
final pubspec = loadYaml(File('pubspec.yaml').readAsStringSync()) as Map;
var sdkVersion = Version.parse(Platform.version.split(' ')[0]);
sdkVersion = Version(sdkVersion.major, sdkVersion.minor, 0);
final sdkConstraint = VersionConstraint.compatibleWith(sdkVersion);
final environment = pubspec['environment'] as Map? ?? {};
final pubspecSdkConstraint = environment['sdk'];
expect(pubspecSdkConstraint, isNotNull);
final parsedConstraint = VersionConstraint.parse(
pubspecSdkConstraint as String,
);
expect(
sdkConstraint.allowsAll(parsedConstraint),
true,
reason:
'Min sdk constraint is outdated. Please update SDK constraint in '
'pubspec to allow latest stable and backwards compatible versions.'
'\n Current stable: $sdkVersion,'
'\n Dwds pubspec constraint: $pubspecSdkConstraint',
);
});
}
+25
View File
@@ -0,0 +1,25 @@
// Copyright (c) 2026, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:isolate';
import 'package:path/path.dart' as p;
/// Returns the path to the `dwds` package root directory.
Future<String> get dwdsPackageRoot async {
final uri = await Isolate.resolvePackageUri(
Uri.parse('package:dwds/dwds.dart'),
);
if (uri == null) {
throw StateError('Could not resolve package:dwds');
}
// uri is file:///.../pkg/dwds/lib/dwds.dart
// We need to go up 2 levels to get to pkg/dwds
return p.dirname(p.dirname(uri.toFilePath()));
}
/// Returns the absolute path to a file or directory relative to the `dwds`
/// package root.
Future<String> dwdsPath(String pathFromDwds) async {
return p.normalize(p.join(await dwdsPackageRoot, pathFromDwds));
}
@@ -2,6 +2,8 @@
// for details. All rights reserved. Use of this source code is governed by a // for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file. // BSD-style license that can be found in the LICENSE file.
// @skip_package_deps_validation
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
@@ -2,6 +2,8 @@
// for details. All rights reserved. Use of this source code is governed by a // for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file. // BSD-style license that can be found in the LICENSE file.
// @skip_package_deps_validation
import 'dart:io'; import 'dart:io';
import 'package:build_daemon/data/build_status.dart' as daemon; import 'package:build_daemon/data/build_status.dart' as daemon;
@@ -2,6 +2,8 @@
// for details. All rights reserved. Use of this source code is governed by a // for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file. // BSD-style license that can be found in the LICENSE file.
// @skip_package_deps_validation
import 'dart:io'; import 'dart:io';
import 'package:build_daemon/client.dart'; import 'package:build_daemon/client.dart';
+27
View File
@@ -0,0 +1,27 @@
Copyright 2026, the Dart project authors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+3
View File
@@ -0,0 +1,3 @@
set noparent
# Dart Development Infrastructure Team
file:/tools/OWNERS_DEV_INFRA
+9 -8
View File
@@ -3,16 +3,17 @@ publish_to: none
description: >- description: >-
Common test functionality. Common test functionality.
environment: environment:
sdk: ^3.10.0-0.0.dev sdk: ^3.12.0-0
resolution: workspace
dependencies: dependencies:
dwds: any dwds: any
file: ">=6.0.0 <8.0.0" file: any
logging: ^1.0.1 logging: any
path: ^1.8.1 path: any
pub_semver: ^2.1.1 pub_semver: any
test: ^1.21.1 test: any
dev_dependencies: dev_dependencies:
dart_flutter_team_lints: ^3.5.2 dart_flutter_team_lints: any
yaml: ^3.1.2
+2 -2
View File
@@ -52,6 +52,8 @@ dev_compiler/test/options/*: Skip # test needs fixes
dev_compiler/test/sourcemap/*: SkipByDesign # Skip sourcemap tests dev_compiler/test/sourcemap/*: SkipByDesign # Skip sourcemap tests
dev_compiler/test/sourcemap/testfiles/*: SkipByDesign # Skip dev_compiler codegen tests dev_compiler/test/sourcemap/testfiles/*: SkipByDesign # Skip dev_compiler codegen tests
dev_compiler/test/worker/*: Skip # test needs fixes dev_compiler/test/worker/*: Skip # test needs fixes
dwds/test/integration/*: SkipByDesign # Skip integration tests relying on build_daemon/build_runner.
dwds_test_common/fixtures/*: SkipByDesign # Skip fixtures relying on build_daemon/build_runner.
front_end/test/analyze_git_test: Pass, Slow front_end/test/analyze_git_test: Pass, Slow
front_end/test/bootstrap_test: Pass, Slow front_end/test/bootstrap_test: Pass, Slow
front_end/test/incremental_compiler_leak_test: Pass, ExtraSlow front_end/test/incremental_compiler_leak_test: Pass, ExtraSlow
@@ -264,8 +266,6 @@ front_end/test/incremental_dart2js_load_from_dill_test: Pass, Slow
frontend_server_client/test/example/vm_client_test: SkipByDesign # Test is incompatible with Windows platform. frontend_server_client/test/example/vm_client_test: SkipByDesign # Test is incompatible with Windows platform.
frontend_server_client/test/example/web_client_test: SkipByDesign # Test is incompatible with Windows platform. frontend_server_client/test/example/web_client_test: SkipByDesign # Test is incompatible with Windows platform.
vm_service/test/private_rpcs/dev_fs_http_put_test: Skip # Windows disallows "?" in paths vm_service/test/private_rpcs/dev_fs_http_put_test: Skip # Windows disallows "?" in paths
vm_service/test/private_rpcs/dev_fs_http_put_weird_char_test: Skip # Windows disallows "\r" in paths
vm_service/test/private_rpcs/dev_fs_weird_char_test: Skip # Windows disallows "\r" in paths
[ $browser ] [ $browser ]
*/test/analyzer_test: SkipByDesign # No need to run analysis tests on browser bots */test/analyzer_test: SkipByDesign # No need to run analysis tests on browser bots
+2
View File
@@ -46,6 +46,8 @@ workspace:
- pkg/dev_compiler - pkg/dev_compiler
- pkg/dtd - pkg/dtd
- pkg/dtd_impl - pkg/dtd_impl
- pkg/dwds
- pkg/dwds_test_common
- pkg/dynamic_modules - pkg/dynamic_modules
- pkg/expect - pkg/expect
- pkg/_fe_analyzer_shared - pkg/_fe_analyzer_shared
+1
View File
@@ -337,6 +337,7 @@ class Package implements Comparable<Package> {
const excludedPaths = { const excludedPaths = {
'pkg/analyzer_cli/test/data/', 'pkg/analyzer_cli/test/data/',
'pkg/analyzer_testing/lib/mock_packages/package_content/', 'pkg/analyzer_testing/lib/mock_packages/package_content/',
'pkg/dwds_test_common/fixtures/',
'pkg/front_end/test/id_testing/data/', 'pkg/front_end/test/id_testing/data/',
'pkg/front_end/test/enable_non_nullable/data/', 'pkg/front_end/test/enable_non_nullable/data/',
'pkg/front_end/test/language_versioning/data/', 'pkg/front_end/test/language_versioning/data/',