Skip to content

Commit 0a14157

Browse files
feat: Use git worktrees to generate analysis (#15)
1 parent 3b4886c commit 0a14157

33 files changed

+3313
-280
lines changed

β€Žbin/mtrust_api_guard.dartβ€Ž

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ import 'package:mtrust_api_guard/changelog_generator/changelog_generator_command
66
import 'package:mtrust_api_guard/doc_comparator/doc_comparator_command.dart';
77
import 'package:mtrust_api_guard/doc_generator/doc_generator_command.dart';
88
import 'package:mtrust_api_guard/logger.dart';
9+
import 'package:mtrust_api_guard/version.dart';
910
import 'package:mtrust_api_guard/version/version_command.dart';
11+
import 'package:mtrust_api_guard/version/version_workspace_command.dart';
1012

1113
main(List<String> args) async {
1214
final commandRunner = CommandRunner(
@@ -18,7 +20,8 @@ main(List<String> args) async {
1820
..addCommand(DocGeneratorCommand())
1921
..addCommand(DocComparatorCommand())
2022
..addCommand(ChangelogGeneratorCommand())
21-
..addCommand(VersionCommand());
23+
..addCommand(VersionCommand())
24+
..addCommand(VersionWorkspaceCommand());
2225

2326
commandRunner.argParser.addFlag(
2427
"verbose",
@@ -32,6 +35,13 @@ main(List<String> args) async {
3235
defaultsTo: false,
3336
);
3437

38+
logger.info(" ");
39+
logger.info('β–„β–ˆβ–ˆβ–ˆβ–ˆβ–„ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–„ β–ˆβ–ˆ β–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–„β–ˆβ–ˆβ–ˆβ–ˆβ–„ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–„ β–ˆβ–ˆβ–ˆβ–ˆβ–„ ');
40+
logger.info('β–ˆβ–ˆβ–„β–„β–ˆβ–ˆ β–ˆβ–ˆβ–„β–„β–ˆβ–€ β–ˆβ–ˆ β–ˆβ–ˆ β–„β–„β–„ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆβ–„β–„β–ˆβ–ˆ β–ˆβ–ˆβ–„β–„β–ˆβ–ˆβ–„ β–ˆβ–ˆ β–ˆβ–ˆ ');
41+
logger.info('β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–€β–ˆβ–ˆβ–ˆβ–€ β–€β–ˆβ–ˆβ–ˆβ–ˆβ–€ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–€ ');
42+
logger.info('mtrust_api_guard version: $mtrustApiGuardVersion');
43+
logger.info(" ");
44+
3545
if (args.isEmpty) {
3646
// ignore: avoid_print
3747
print(commandRunner.usage);

β€Žlib/changelog_generator/changelog_generator.dartβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ class ChangelogGenerator {
118118
final updatedContent = '$newEntry$existingContent';
119119
await changelogFile.writeAsString(updatedContent);
120120

121-
logger.info('CHANGELOG.md updated successfully.');
121+
logger.info('${changelogFile.absolute.path} updated successfully.');
122122
}
123123

124124
/// Retrieves the package version and homepage from pubspec.yaml

β€Žlib/doc_comparator/api_change.dartβ€Ž

Lines changed: 197 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,24 @@ enum ApiChangeOperation {
7676
dependencyVersionChange(ApiChangeMagnitude.patch),
7777
dependencyAddition(ApiChangeMagnitude.patch),
7878
dependencyRemoval(ApiChangeMagnitude.minor),
79-
platformConstraintChange(ApiChangeMagnitude.major),
79+
// Dart SDK constraints
80+
minDartSdkVersionDecrease(ApiChangeMagnitude.patch),
81+
minDartSdkVersionIncrease(ApiChangeMagnitude.major),
82+
maxDartSdkVersionDecrease(ApiChangeMagnitude.major),
83+
maxDartSdkVersionIncrease(ApiChangeMagnitude.patch),
84+
// Flutter SDK constraints
85+
minFlutterSdkVersionIncrease(ApiChangeMagnitude.major),
86+
maxFlutterSdkVersionDecrease(ApiChangeMagnitude.major),
87+
maxFlutterSdkVersionIncrease(ApiChangeMagnitude.patch),
88+
minFlutterSdkVersionDecrease(ApiChangeMagnitude.patch),
89+
90+
//Β Android constraints
91+
minAndroidSdkVersionDecrease(ApiChangeMagnitude.patch),
92+
minAndroidSdkVersionIncrease(ApiChangeMagnitude.major),
93+
94+
// iOS constraints
95+
minIosSdkVersionDecrease(ApiChangeMagnitude.patch),
96+
minIosSdkVersionIncrease(ApiChangeMagnitude.major),
8097

8198
// Feature changes
8299
featureAddition(ApiChangeMagnitude.minor),
@@ -142,7 +159,18 @@ class MetaApiChange extends ApiChange {
142159
ApiChangeOperation.dependencyVersionChange,
143160
ApiChangeOperation.dependencyAddition,
144161
ApiChangeOperation.dependencyRemoval,
145-
ApiChangeOperation.platformConstraintChange,
162+
ApiChangeOperation.minDartSdkVersionDecrease,
163+
ApiChangeOperation.minDartSdkVersionIncrease,
164+
ApiChangeOperation.maxDartSdkVersionDecrease,
165+
ApiChangeOperation.maxDartSdkVersionIncrease,
166+
ApiChangeOperation.minFlutterSdkVersionDecrease,
167+
ApiChangeOperation.minFlutterSdkVersionIncrease,
168+
ApiChangeOperation.maxFlutterSdkVersionDecrease,
169+
ApiChangeOperation.maxFlutterSdkVersionIncrease,
170+
ApiChangeOperation.minAndroidSdkVersionDecrease,
171+
ApiChangeOperation.minAndroidSdkVersionIncrease,
172+
ApiChangeOperation.minIosSdkVersionDecrease,
173+
ApiChangeOperation.minIosSdkVersionIncrease,
146174
};
147175

148176
factory MetaApiChange.dependencyVersionChange({
@@ -177,6 +205,143 @@ class MetaApiChange extends ApiChange {
177205
description: 'removed',
178206
);
179207
}
208+
209+
factory MetaApiChange.minDartSdkVersionDecrease({
210+
required String version,
211+
required String previousVersion,
212+
}) {
213+
return MetaApiChange(
214+
operation: ApiChangeOperation.minDartSdkVersionDecrease,
215+
title: "Minimum Dart SDK version decreased",
216+
description: 'from `$previousVersion` to `$version`',
217+
);
218+
}
219+
220+
factory MetaApiChange.minDartSdkVersionIncrease({
221+
required String version,
222+
required String previousVersion,
223+
}) {
224+
return MetaApiChange(
225+
operation: ApiChangeOperation.minDartSdkVersionIncrease,
226+
title: "Minimum Dart SDK version increased",
227+
description: 'from `$previousVersion` to `$version`',
228+
);
229+
}
230+
231+
factory MetaApiChange.maxDartSdkVersionDecrease({
232+
required String version,
233+
required String previousVersion,
234+
}) {
235+
return MetaApiChange(
236+
operation: ApiChangeOperation.maxDartSdkVersionDecrease,
237+
title: "Maximum Dart SDK version decreased",
238+
description: 'from `$previousVersion` to `$version`',
239+
);
240+
}
241+
242+
factory MetaApiChange.maxDartSdkVersionIncrease({
243+
required String version,
244+
required String previousVersion,
245+
}) {
246+
return MetaApiChange(
247+
operation: ApiChangeOperation.maxDartSdkVersionIncrease,
248+
title: "Maximum Dart SDK version increased",
249+
description: 'from `$previousVersion` to `$version`',
250+
);
251+
}
252+
253+
factory MetaApiChange.minFlutterSdkVersionDecrease({
254+
required String version,
255+
required String previousVersion,
256+
}) {
257+
return MetaApiChange(
258+
operation: ApiChangeOperation.minFlutterSdkVersionDecrease,
259+
title: "Minimum Flutter SDK version decreased",
260+
description: 'from `$previousVersion` to `$version`',
261+
);
262+
}
263+
264+
factory MetaApiChange.minFlutterSdkVersionIncrease({
265+
required String version,
266+
required String previousVersion,
267+
}) {
268+
return MetaApiChange(
269+
operation: ApiChangeOperation.minFlutterSdkVersionIncrease,
270+
title: "Minimum Flutter SDK version increased",
271+
description: 'from `$previousVersion` to `$version`',
272+
);
273+
}
274+
275+
factory MetaApiChange.maxFlutterSdkVersionDecrease({
276+
required String version,
277+
required String previousVersion,
278+
}) {
279+
return MetaApiChange(
280+
operation: ApiChangeOperation.maxFlutterSdkVersionDecrease,
281+
title: "Maximum Flutter SDK version decreased",
282+
description: 'from `$previousVersion` to `$version`',
283+
);
284+
}
285+
286+
factory MetaApiChange.maxFlutterSdkVersionIncrease({
287+
required String version,
288+
required String previousVersion,
289+
}) {
290+
return MetaApiChange(
291+
operation: ApiChangeOperation.maxFlutterSdkVersionIncrease,
292+
title: "Maximum Flutter SDK version increased",
293+
description: 'from `$previousVersion` to `$version`',
294+
);
295+
}
296+
297+
factory MetaApiChange.minAndroidSdkVersionDecrease({
298+
required int version,
299+
required int previousVersion,
300+
}) {
301+
return MetaApiChange(
302+
operation: ApiChangeOperation.minAndroidSdkVersionDecrease,
303+
title: "Minimum Android SDK version decreased",
304+
description: 'from `$previousVersion` to `$version`',
305+
);
306+
}
307+
308+
factory MetaApiChange.minAndroidSdkVersionIncrease({
309+
required int version,
310+
required int previousVersion,
311+
}) {
312+
return MetaApiChange(
313+
operation: ApiChangeOperation.minAndroidSdkVersionIncrease,
314+
title: "Minimum Android SDK version increased",
315+
description: 'from `$previousVersion` to `$version`',
316+
);
317+
}
318+
319+
factory MetaApiChange.minIosSdkVersionDecrease({
320+
required num version,
321+
required num previousVersion,
322+
}) {
323+
return MetaApiChange(
324+
operation: ApiChangeOperation.minIosSdkVersionDecrease,
325+
title: "Minimum iOS SDK version decreased",
326+
description: 'from `$previousVersion` to `$version`',
327+
);
328+
}
329+
330+
factory MetaApiChange.minIosSdkVersionIncrease({
331+
required num version,
332+
required num previousVersion,
333+
}) {
334+
return MetaApiChange(
335+
operation: ApiChangeOperation.minIosSdkVersionIncrease,
336+
title: "Minimum iOS SDK version increased",
337+
description: 'from `$previousVersion` to `$version`',
338+
);
339+
}
340+
341+
@override
342+
toString() {
343+
return 'MetaApiChange(component: ${component.name}, operation: $operation, annotation: $annotation, changedValue: $changedValue)';
344+
}
180345
}
181346

182347
/// A change that belongs to a specific component.
@@ -206,6 +371,11 @@ class ComponentApiChange extends ApiChange {
206371
ApiChangeOperation.mixinRemoval,
207372
ApiChangeOperation.superClassChange,
208373
};
374+
375+
@override
376+
toString() {
377+
return 'ComponentApiChange(component: ${component.name}, operation: $operation, annotation: $annotation, changedValue: $changedValue)';
378+
}
209379
}
210380

211381
/// A change that belongs to a specific property of a component.
@@ -259,6 +429,11 @@ class PropertyApiChange extends ApiChange {
259429

260430
return super.getMagnitude();
261431
}
432+
433+
@override
434+
toString() {
435+
return 'PropertyApiChange(component: ${component.name}, operation: $operation, annotation: $annotation, changedValue: $changedValue, property: ${property.name})';
436+
}
262437
}
263438

264439
/// A change that belongs to a specific method of a component or a top-level function.
@@ -319,6 +494,11 @@ class MethodApiChange extends ApiChange {
319494
bool isFunctionChange() {
320495
return component.type == DocComponentType.functionType;
321496
}
497+
498+
@override
499+
toString() {
500+
return 'MethodApiChange(component: ${component.name}, operation: $operation, annotation: $annotation, changedValue: $changedValue, method: ${method.name})';
501+
}
322502
}
323503

324504
/// Base class for parameter changes to share magnitude logic
@@ -395,6 +575,11 @@ abstract class ParameterApiChange extends ApiChange {
395575
}
396576
return super.getMagnitude();
397577
}
578+
579+
@override
580+
toString() {
581+
return 'ParameterApiChange(component: ${component.name}, operation: $operation, annotation: $annotation, changedValue: $changedValue, parameter: ${parameter.name}, parentName: $parentName, oldName: $oldName, newType: $newType)';
582+
}
398583
}
399584

400585
class MethodParameterApiChange extends ParameterApiChange {
@@ -433,7 +618,6 @@ class ConstructorApiChange extends ApiChange {
433618
ApiChangeOperation.dependencyAddition,
434619
ApiChangeOperation.dependencyRemoval,
435620
ApiChangeOperation.dependencyVersionChange,
436-
ApiChangeOperation.platformConstraintChange,
437621
};
438622

439623
@override
@@ -458,6 +642,11 @@ class ConstructorApiChange extends ApiChange {
458642

459643
return super.getMagnitude();
460644
}
645+
646+
@override
647+
toString() {
648+
return 'ConstructorApiChange(component: ${component.name}, operation: $operation, annotation: $annotation, changedValue: $changedValue, constructor: ${constructor.name})';
649+
}
461650
}
462651

463652
class ConstructorParameterApiChange extends ParameterApiChange {
@@ -472,4 +661,9 @@ class ConstructorParameterApiChange extends ParameterApiChange {
472661
super.newType,
473662
super.annotation,
474663
}) : super(parentName: constructor.name);
664+
665+
@override
666+
toString() {
667+
return 'ConstructorParameterApiChange(component: ${component.name}, operation: $operation, annotation: $annotation, changedValue: $changedValue, constructor: ${constructor.name}, parameter: ${parameter.name}, oldName: $oldName, newType: $newType)';
668+
}
475669
}

β€Žlib/doc_comparator/api_change_formatter.dartβ€Ž

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,32 @@ extension ApiChangeFormattingHelpers on List<ApiChange> {
253253
case ApiChangeOperation.dependencyVersionChange:
254254
return 'πŸ“¦ Dependency version changed: ${change.changedValue}';
255255

256-
case ApiChangeOperation.platformConstraintChange:
257-
return 'πŸ“± Platform constraint changed: ${change.changedValue}';
256+
case ApiChangeOperation.minDartSdkVersionDecrease:
257+
return '🎯 Minimum Dart SDK version decreased: ${change.changedValue}';
258+
case ApiChangeOperation.minDartSdkVersionIncrease:
259+
return '🎯 Minimum Dart SDK version increased: ${change.changedValue}';
260+
case ApiChangeOperation.maxDartSdkVersionDecrease:
261+
return '🎯 Maximum Dart SDK version decreased: ${change.changedValue}';
262+
case ApiChangeOperation.maxDartSdkVersionIncrease:
263+
return '🎯 Maximum Dart SDK version increased: ${change.changedValue}';
264+
265+
case ApiChangeOperation.minFlutterSdkVersionDecrease:
266+
return '🎯 Minimum Flutter SDK version decreased: ${change.changedValue}';
267+
case ApiChangeOperation.minFlutterSdkVersionIncrease:
268+
return '🎯 Minimum Flutter SDK version increased: ${change.changedValue}';
269+
case ApiChangeOperation.maxFlutterSdkVersionDecrease:
270+
return '🎯 Maximum Flutter SDK version decreased: ${change.changedValue}';
271+
case ApiChangeOperation.maxFlutterSdkVersionIncrease:
272+
return '🎯 Maximum Flutter SDK version increased: ${change.changedValue}';
273+
274+
case ApiChangeOperation.minAndroidSdkVersionDecrease:
275+
return 'πŸ€– Minimum Android SDK version decreased: ${change.changedValue}';
276+
case ApiChangeOperation.minAndroidSdkVersionIncrease:
277+
return 'πŸ€– Minimum Android SDK version increased: ${change.changedValue}';
278+
case ApiChangeOperation.minIosSdkVersionDecrease:
279+
return '🍎 Minimum iOS SDK version decreased: ${change.changedValue}';
280+
case ApiChangeOperation.minIosSdkVersionIncrease:
281+
return '🍎 Minimum iOS SDK version increased: ${change.changedValue}';
258282

259283
default:
260284
return '$entityName changed';

0 commit comments

Comments
Β (0)