[coverage] Switch from package:pubspec_parse to package:yaml (#2103)
diff --git a/pkgs/coverage/CHANGELOG.md b/pkgs/coverage/CHANGELOG.md
index 2a680ad..98f8852 100644
--- a/pkgs/coverage/CHANGELOG.md
+++ b/pkgs/coverage/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.14.1-wip
+
+- Remove dependency on `package:pubspec_parse`.
+
## 1.14.0
- Require Dart ^3.6.0
diff --git a/pkgs/coverage/lib/src/util.dart b/pkgs/coverage/lib/src/util.dart
index 74a1697..8ae1a4b 100644
--- a/pkgs/coverage/lib/src/util.dart
+++ b/pkgs/coverage/lib/src/util.dart
@@ -7,8 +7,8 @@
import 'dart:io';
import 'package:path/path.dart' as path;
-import 'package:pubspec_parse/pubspec_parse.dart';
import 'package:vm_service/vm_service.dart';
+import 'package:yaml/yaml.dart';
// TODO(cbracken) make generic
/// Retries the specified function with the specified interval and returns
@@ -174,12 +174,16 @@
_getAllWorkspaceNames(packageRoot, <String>[]);
List<String> _getAllWorkspaceNames(String packageRoot, List<String> results) {
- final pubspecPath = getPubspecPath(packageRoot);
- final yaml = File(pubspecPath).readAsStringSync();
- final pubspec = Pubspec.parse(yaml, sourceUrl: Uri.file(pubspecPath));
- results.add(pubspec.name);
- for (final workspace in pubspec.workspace ?? <String>[]) {
- _getAllWorkspaceNames(path.join(packageRoot, workspace), results);
+ final pubspec = _loadPubspec(packageRoot);
+ results.add(pubspec['name'] as String);
+ for (final workspace in pubspec['workspace'] as YamlList? ?? []) {
+ _getAllWorkspaceNames(path.join(packageRoot, workspace as String), results);
}
return results;
}
+
+YamlMap _loadPubspec(String packageRoot) {
+ final pubspecPath = getPubspecPath(packageRoot);
+ final yaml = File(pubspecPath).readAsStringSync();
+ return loadYaml(yaml, sourceUrl: Uri.file(pubspecPath)) as YamlMap;
+}
diff --git a/pkgs/coverage/pubspec.yaml b/pkgs/coverage/pubspec.yaml
index e4a229e..3228ab3 100644
--- a/pkgs/coverage/pubspec.yaml
+++ b/pkgs/coverage/pubspec.yaml
@@ -1,5 +1,5 @@
name: coverage
-version: 1.14.0
+version: 1.14.1-wip
description: Coverage data manipulation and formatting
repository: https://github.com/dart-lang/tools/tree/main/pkgs/coverage
issue_tracker: https://github.com/dart-lang/tools/issues?q=is%3Aissue+is%3Aopen+label%3Apackage%3Acoverage
@@ -15,10 +15,10 @@
meta: ^1.0.2
package_config: ^2.0.0
path: ^1.8.0
- pubspec_parse: ^1.5.0
source_maps: ^0.10.10
stack_trace: ^1.10.0
vm_service: '>=12.0.0 <16.0.0'
+ yaml: ^3.1.3
dev_dependencies:
benchmark_harness: ^2.2.0