Skip to content

Commit 62a52ed

Browse files
parloughCommit Queue
authored andcommitted
[linter] Move sinceSdk information to messages file
Continuing work towards consolidating documentation-related information to the messages.yaml file. Change-Id: I6c80dfae9ed20372c4207c6f007d26e735925a08 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/386823 Reviewed-by: Brian Wilkerson <[email protected]> Reviewed-by: Phil Quitslund <[email protected]> Auto-Submit: Parker Lougheed <[email protected]> Commit-Queue: Phil Quitslund <[email protected]>
1 parent 3f2cf9e commit 62a52ed

File tree

8 files changed

+530
-569
lines changed

8 files changed

+530
-569
lines changed

pkg/linter/messages.yaml

Lines changed: 238 additions & 0 deletions
Large diffs are not rendered by default.

pkg/linter/tool/machine.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import 'package:yaml/yaml.dart';
1515

1616
import '../tool/util/path_utils.dart';
1717
import 'messages_data.dart';
18-
import 'since.dart';
1918
import 'util/score_utils.dart' as score_utils;
2019

2120
/// Generates a list of lint rules in machine format suitable for consumption by
@@ -48,15 +47,14 @@ Future<String> generateRulesJson({
4847
registerLintRules();
4948
var fixStatusMap = readFixStatusMap();
5049
return await getMachineListing(Registry.ruleRegistry,
51-
fixStatusMap: fixStatusMap, sinceInfo: sinceMap, pretty: pretty);
50+
fixStatusMap: fixStatusMap, pretty: pretty);
5251
}
5352

5453
Future<String> getMachineListing(
5554
Iterable<LintRule> ruleRegistry, {
5655
Map<String, String>? fixStatusMap,
5756
bool pretty = true,
5857
bool includeSetInfo = true,
59-
Map<String, SinceInfo>? sinceInfo,
6058
}) async {
6159
var rules = List<LintRule>.of(ruleRegistry, growable: false)
6260
..sort((a, b) => a.name.compareTo(b.name));
@@ -71,6 +69,7 @@ Future<String> getMachineListing(
7169

7270
var categories = messagesYaml.categoryMappings;
7371
var deprecatedDetails = messagesYaml.deprecatedDetails;
72+
var addedIn = messagesYaml.addedIn;
7473
var json = encoder.convert([
7574
for (var rule in rules.where((rule) => !rule.state.isInternal))
7675
{
@@ -87,8 +86,7 @@ Future<String> getMachineListing(
8786
'fixStatus':
8887
fixStatusMap[rule.lintCodes.first.uniqueName] ?? 'unregistered',
8988
'details': deprecatedDetails[rule.name],
90-
if (sinceInfo != null)
91-
'sinceDartSdk': sinceInfo[rule.name]?.sinceDartSdk ?? 'Unreleased',
89+
'sinceDartSdk': addedIn[rule.name] ?? 'Unreleased',
9290
}
9391
]);
9492
return json;

pkg/linter/tool/machine/rules.json

Lines changed: 249 additions & 251 deletions
Large diffs are not rendered by default.

pkg/linter/tool/messages_data.dart

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,34 @@ final MessagesData messagesYaml = () {
1616
final String _messagesYamlPath = pathRelativeToPackageRoot(['messages.yaml']);
1717

1818
extension type MessagesData(YamlMap _map) {
19+
Map<String, String> get addedIn {
20+
var result = <String, String>{};
21+
22+
for (var MapEntry(key: String name, value: YamlMap data)
23+
in lintCodes.entries) {
24+
if (data['addedIn'] case String addedInString) {
25+
if (data.containsKey('sharedName')) {
26+
name = data['sharedName'] as String;
27+
}
28+
29+
if (addedInString.split('.').length < 2) {
30+
throw StateError("Lint $name's 'addedIn' version must be "
31+
'at least a major.minor version.');
32+
}
33+
34+
var oldResult = result[name];
35+
if (oldResult != null && oldResult == addedInString) {
36+
throw StateError("Lint $name has a different 'addedIn' value "
37+
'between its shared codes!');
38+
}
39+
40+
result[name] = addedInString;
41+
}
42+
}
43+
44+
return result;
45+
}
46+
1947
Map<String, Set<String>> get categoryMappings {
2048
var result = <String, Set<String>>{};
2149

pkg/linter/tool/rule.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import 'package:path/path.dart' as path;
1414
import '../test/test_constants.dart';
1515
import 'changelog.dart';
1616
import 'messages_data.dart';
17-
import 'since.dart';
1817

1918
/// Generates rule and rule test stub files (into `src/rules` and `test/rules`
2019
/// respectively), as well as the rule index (`rules.dart`).
@@ -94,8 +93,6 @@ void generateRule(String ruleName, {String? outDir}) {
9493
generateFile(ruleName, 'example', _generateAllYaml,
9594
outDir: outDir, overwrite: true);
9695

97-
printToConsole('Updating ${SdkVersionFile.filePath}');
98-
SdkVersionFile().addRule(ruleName);
9996
printToConsole('Updating ${Changelog.fileName}');
10097
Changelog().addEntry(RuleStateChange.added, ruleName);
10198

pkg/linter/tool/scorecard.dart

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import 'package:linter/src/utils.dart';
1616
import '../tool/util/path_utils.dart';
1717
import 'crawl.dart';
1818
import 'parse.dart';
19-
import 'since.dart';
2019

2120
void main() async {
2221
var scorecard = await ScoreCard.calculate();
@@ -124,16 +123,15 @@ class LintScore {
124123
String name;
125124
bool hasFix;
126125
State state;
127-
SinceInfo? since;
128126

129127
List<String> ruleSets;
130128

131-
LintScore(
132-
{required this.name,
133-
required this.hasFix,
134-
required this.state,
135-
required this.ruleSets,
136-
this.since});
129+
LintScore({
130+
required this.name,
131+
required this.hasFix,
132+
required this.state,
133+
required this.ruleSets,
134+
});
137135

138136
String get _ruleSets => ruleSets.isNotEmpty ? ' $ruleSets' : '';
139137

@@ -143,8 +141,6 @@ class LintScore {
143141
switch (detail) {
144142
case Detail.rule:
145143
sb.write(' [$name](https://dart.dev/lints/$name) |');
146-
case Detail.sdk:
147-
sb.write(' ${since!.sinceDartSdk} |');
148144
case Detail.fix:
149145
sb.write('${hasFix ? " $bulb" : ""} |');
150146
case Detail.flutterUser:
@@ -210,12 +206,12 @@ class ScoreCard {
210206
}
211207

212208
scorecard.add(LintScore(
213-
name: lint.name,
214-
hasFix: lintsWithFixes.contains(lint.name) ||
215-
lintsWithAssists.contains(lint.name),
216-
state: lint.state,
217-
ruleSets: ruleSets,
218-
since: sinceMap[lint.name]));
209+
name: lint.name,
210+
hasFix: lintsWithFixes.contains(lint.name) ||
211+
lintsWithAssists.contains(lint.name),
212+
state: lint.state,
213+
ruleSets: ruleSets,
214+
));
219215
}
220216

221217
return scorecard;

pkg/linter/tool/since.dart

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

0 commit comments

Comments
 (0)