mirror of
https://github.com/dart-lang/sdk
synced 2024-10-03 00:45:16 +00:00
[deps] ensure individual review of specific deps
Change-Id: I44f5bf01d43a1c4ee9b9b56ef15f9d0ec8cbabef Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/327701 Reviewed-by: Sigurd Meldgaard <sigurdm@google.com> Commit-Queue: Devon Carew <devoncarew@google.com>
This commit is contained in:
parent
ef1c3098a1
commit
eae02502d4
2
DEPS
2
DEPS
|
@ -179,7 +179,7 @@ vars = {
|
|||
"stream_channel_rev": "0ce7ab69c3a2ab83cdeb9dc60e1bacbb83abc165",
|
||||
"string_scanner_rev": "da9142cf9809e7e1364144b8193ec60d87f0a4b8",
|
||||
"sync_http_rev": "8233f74cd8a87707c13beceb59b56bca41b52966",
|
||||
"tar_rev": "3c68cba8e51c569428222b9185469249206172c6", # external package, review all rolls. disable rev_sdk_deps.dart,
|
||||
"tar_rev": "3c68cba8e51c569428222b9185469249206172c6",
|
||||
"term_glyph_rev": "1b28285a7e818b8e87c4d2119d968c5b36d73c7a",
|
||||
"test_rev": "8191a355cefe5e6073e597d139bfb46e4b00c493",
|
||||
"test_descriptor_rev": "030193dfdfbf85930eae8536909c546151da9e9c",
|
||||
|
|
|
@ -9,9 +9,18 @@
|
|||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:cli_util/cli_logging.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
import 'package:pool/pool.dart' as pool;
|
||||
|
||||
/// The following set of packages should be individually reviewed.
|
||||
///
|
||||
/// Generally, they are from repos that are not Dart team owned, and we want to
|
||||
/// ensure that we consistently review all changes from those repos.
|
||||
const Set<String> individuallyReviewedPackages = {
|
||||
'tar',
|
||||
};
|
||||
|
||||
void main(List<String> args) async {
|
||||
// Validate we're running from the repo root.
|
||||
if (!File('README.dart-sdk').existsSync() || !File('DEPS').existsSync()) {
|
||||
|
@ -36,7 +45,7 @@ void main(List<String> args) async {
|
|||
|
||||
final gitPool = pool.Pool(10);
|
||||
|
||||
final depsToRev = Map.fromEntries(
|
||||
final revDepsToCommits = Map.fromEntries(
|
||||
(await Future.wait(
|
||||
deps.map((dep) {
|
||||
return gitPool.withResource(() async {
|
||||
|
@ -53,14 +62,24 @@ void main(List<String> args) async {
|
|||
}),
|
||||
);
|
||||
|
||||
if (depsToRev.isEmpty) {
|
||||
if (revDepsToCommits.isEmpty) {
|
||||
print('No new revisions.');
|
||||
return;
|
||||
}
|
||||
|
||||
final depsToRevNames = depsToRev.keys.map((e) => e.name).join(', ');
|
||||
final separateReviewDeps = revDepsToCommits.keys
|
||||
.where((dep) => individuallyReviewedPackages.contains(dep.name))
|
||||
.toList();
|
||||
revDepsToCommits
|
||||
.removeWhere((dep, _) => individuallyReviewedPackages.contains(dep.name));
|
||||
|
||||
final depsToRevNames = revDepsToCommits.keys.map((e) => e.name).join(', ');
|
||||
|
||||
print('Move moving forward revisions for: $depsToRevNames.');
|
||||
if (separateReviewDeps.isNotEmpty) {
|
||||
print('(additional, individually reviewed updates are also available for: '
|
||||
'${separateReviewDeps.map((dep) => dep.name).join(', ')})');
|
||||
}
|
||||
print('');
|
||||
print('Commit message:');
|
||||
print('');
|
||||
|
@ -69,7 +88,7 @@ void main(List<String> args) async {
|
|||
print('Revisions updated by `dart tools/rev_sdk_deps.dart`.');
|
||||
print('');
|
||||
|
||||
for (var entry in depsToRev.entries) {
|
||||
for (var entry in revDepsToCommits.entries) {
|
||||
final dep = entry.key;
|
||||
final commit = entry.value;
|
||||
|
||||
|
@ -89,6 +108,19 @@ void main(List<String> args) async {
|
|||
|
||||
print('');
|
||||
}
|
||||
|
||||
if (separateReviewDeps.isNotEmpty) {
|
||||
final boldText = Ansi(true)
|
||||
.emphasized('Note: updates are also available for additional packages');
|
||||
print('$boldText; these require individual review.\nPlease ensure that the '
|
||||
'review for these changes is thorough. To roll them:');
|
||||
print('');
|
||||
for (var dep in separateReviewDeps) {
|
||||
print('${dep.name} from ${dep.url}:');
|
||||
print(' dart tools/manage_deps.dart bump third_party/pkg/${dep.name}');
|
||||
print('');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// By convention, pinned deps are deps with an eol comment.
|
||||
|
|
Loading…
Reference in a new issue