1
0
mirror of https://github.com/dart-lang/sdk synced 2024-07-05 17:30:16 +00:00

[tools] use comments in the DEPS file to prevent auto-reving of deps

Change-Id: I828b0d32d7565d2acbcd39cfa83aa0e9efb61705
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/248947
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
This commit is contained in:
Devon Carew 2022-06-19 19:11:11 +00:00 committed by Commit Bot
parent 1fdd242e4b
commit 651db75ff4
2 changed files with 27 additions and 15 deletions

9
DEPS
View File

@ -75,6 +75,9 @@ vars = {
"gperftools_revision": "180bfa10d7cb38e8b3784d60943d50e8fcef0dcb",
# Revisions of /third_party/* dependencies.
# Note that putting an EOL comment after a dependency below will prevent the
# 'tools/rev_sdk_deps.dart' tool from attempting to rev to a newer revision.
"args_rev": "73e8d3b55cbedc9765f8e266f3422d8914f8e62a",
"async_rev": "f3ed5f690e2ec9dbe1bfc5184705575b4f6480e5",
"bazel_worker_rev": "9710de6c9c70b1b583183db9d9721ba64e5a16fe",
@ -103,7 +106,7 @@ vars = {
# and land the review.
#
# For more details, see https://github.com/dart-lang/sdk/issues/30164.
"dart_style_rev": "d7b73536a8079331c888b7da539b80e6825270ea",
"dart_style_rev": "d7b73536a8079331c888b7da539b80e6825270ea", # manually rev'd
"dartdoc_rev": "58348a98b992ce99b95d23131b67227bdb2b4875",
"devtools_rev": "51ac983d2db7eb19b3ce5956cb70b769d74fe784",
@ -119,7 +122,7 @@ vars = {
"intl_rev": "e9b573679de5e703d89a242b9dca331c772979ef",
"jinja2_rev": "2222b31554f03e62600cd7e383376a7c187967a1",
"json_rpc_2_rev": "2de9a1f9821807fa2c85fd48e2f70b9cbcddcb67",
"linter_rev": "1ddc70948d94f2449fec69a95e3ceb7b6b6c8348", # 1.25.0
"linter_rev": "1ddc70948d94f2449fec69a95e3ceb7b6b6c8348", # manually rev'd
"lints_rev": "8294e5648ab49474541527e2911e72e4c5aefe55",
"logging_rev": "f6979e3bc3b6e1847a08335b7eb6304e18986195",
"markdown_rev": "e3f4bd28c9e61b522f75f291d4d6cfcfeccd83ee", # b/236358256
@ -133,7 +136,7 @@ vars = {
"ply_rev": "604b32590ffad5cbb82e4afef1d305512d06ae93",
"pool_rev": "c40cc32eabecb9d60f1045d1403108d968805f9a",
"protobuf_rev": "3149f6f2d323e11dbcc983b7ac8b3b9e9d686293",
"pub_rev": "9bf4289d6fd5d6872a8929d6312bbd7098f3ea9c",
"pub_rev": "9bf4289d6fd5d6872a8929d6312bbd7098f3ea9c", # manually rev'd
"pub_semver_rev": "5c0b4bfd5ca57fe16f1319c581dc8c882e9b8cb2",
"root_certificates_rev": "692f6d6488af68e0121317a9c2c9eb393eb0ee50",
"rust_revision": "b7856f695d65a8ebc846754f97d15814bcb1c244",

View File

@ -3,15 +3,6 @@ import 'dart:io';
import 'package:path/path.dart' as path;
// These packages are effectively pinned - they often require manual work when
// rolling.
// TODO(devoncarew): Keep this metadata in the DEPS file.
const Set<String> pinned = {
'dart_style',
'linter',
'pub',
};
void main(List<String> args) async {
// Validate we're running from the repo root.
if (!File('README.dart-sdk').existsSync() || !File('DEPS').existsSync()) {
@ -22,7 +13,14 @@ void main(List<String> args) async {
final gclient = GClientHelper();
final deps = await gclient.getPackageDependencies();
print('${deps.length} non-pinned package dependencies found.');
print('${deps.length} package dependencies found.');
// Remove pinned deps.
final pinnedDeps = calculatePinnedDeps();
deps.removeWhere((dep) => pinnedDeps.contains(dep.name));
print('Not attempting to move forward the revisions for: '
'${pinnedDeps.toList().join(', ')}.');
print('');
deps.sort((a, b) => a.name.compareTo(b.name));
@ -51,6 +49,19 @@ void main(List<String> args) async {
}
}
// By convention, pinned deps are deps with an eol comment.
Set<String> calculatePinnedDeps() {
final packageRevision = RegExp(r'"(\w+)_rev":');
// "markdown_rev": "e3f4bd28c9...cfeccd83ee", # b/236358256
var depsFile = File('DEPS');
return depsFile
.readAsLinesSync()
.where((line) => packageRevision.hasMatch(line) && line.contains('", #'))
.map((line) => packageRevision.firstMatch(line)!.group(1)!)
.toSet();
}
class GitHelper {
final String dir;
@ -115,8 +126,6 @@ class GClientHelper {
);
}).where((PackageDependency deps) {
return deps.entry.startsWith('sdk/third_party/pkg/');
}).where((PackageDependency deps) {
return !pinned.contains(deps.name);
}).toList();
}