Skip to content

Commit d05c017

Browse files
chore: aft version-bump test suite (#5424)
* chore: add `--skip-build-version` option * chore: use `base-ref`/`head-ref` over env vars * chore: add new version bump test suite * chore: remove old version bump tests * chore: only include first change log entry * fix: sort change types before writing to the change log * chore: remove non essential info from diffs * chore: generate repo snapshot * chore: generate diff snapshots * chore: clean up tests and test output
1 parent f825f86 commit d05c017

File tree

77 files changed

+2365
-454
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+2365
-454
lines changed

.gitattributes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ packages/smithy/goldens/models/custom/** -linguist-vendored
8787
## Genrated dart files
8888
*.g.dart linguist-generated
8989

90+
## Genrated test files
91+
**/snapshots/*.diff linguist-generated
92+
**/repo_snapshot/** linguist-generated
93+
9094
## Lock files
9195
package-lock.json linguist-generated
9296
pnpm-lock.yaml linguist-generated

packages/aft/lib/src/changelog/changelog.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ abstract class Changelog implements Built<Changelog, ChangelogBuilder> {
8787
// bug fixes/improvements.
8888
nodes.add(Element.text('li', 'Minor bug fixes and improvements\n'));
8989
} else {
90-
for (final typedCommits in commitsByType.entries) {
90+
final sortedCommitTypes =
91+
commitsByType.entries.sortedBy<num>((entry) => entry.key.index);
92+
for (final typedCommits in sortedCommitTypes) {
9193
nodes.add(Element.text('h3', typedCommits.key.header));
9294

9395
// Transform PR #'s into links to the main repo

packages/aft/lib/src/changelog/commit_message.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ final RegExp _trailerRegex = RegExp(r'^[^:\s]+:[^:]+$');
1919

2020
enum CommitTypeGroup {
2121
breaking('Breaking Changes'),
22-
fixes('Fixes'),
2322
features('Features'),
23+
fixes('Fixes'),
2424
other('Other Changes');
2525

2626
const CommitTypeGroup(this.header);

packages/aft/lib/src/commands/version_bump_command.dart

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ class VersionBumpCommand extends AmplifyCommand
3737
'force-patch',
3838
help: 'Forces a patch version bump',
3939
negatable: false,
40+
)
41+
..addFlag(
42+
'skip-build-version',
43+
help: 'Skips running build version in packages that depend on '
44+
'build_version. Intended for use in tests.',
45+
negatable: false,
4046
);
4147
}
4248

@@ -90,18 +96,23 @@ class VersionBumpCommand extends AmplifyCommand
9096

9197
final bumpedPackages = await _updateVersions();
9298

93-
for (final package in bumpedPackages) {
94-
// Run build_runner for packages which generate their version number.
95-
final needsBuildRunner = package.pubspecInfo.pubspec.devDependencies
96-
.containsKey('build_version');
97-
if (!needsBuildRunner) {
98-
continue;
99+
final skipBuildVersion =
100+
argResults?['skip-build-version'] as bool? ?? false;
101+
102+
if (!skipBuildVersion) {
103+
for (final package in bumpedPackages) {
104+
// Run build_runner for packages which generate their version number.
105+
final needsBuildRunner = package.pubspecInfo.pubspec.devDependencies
106+
.containsKey('build_version');
107+
if (!needsBuildRunner) {
108+
continue;
109+
}
110+
await runBuildRunner(
111+
package,
112+
logger: logger,
113+
verbose: verbose,
114+
);
99115
}
100-
await runBuildRunner(
101-
package,
102-
logger: logger,
103-
verbose: verbose,
104-
);
105116
}
106117

107118
logger.info('Version successfully bumped');

packages/aft/lib/src/options/git_ref_options.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@ mixin GitRefOptions on AmplifyCommand {
2525
///
2626
/// By default, this is the latest release tag.
2727
String? get baseRef {
28-
return Platform.environment['GITHUB_BASE_REF'] ??
29-
argResults!['base-ref'] as String?;
28+
return argResults?['base-ref'] as String? ??
29+
Platform.environment['GITHUB_BASE_REF'];
3030
}
3131

3232
/// The head reference git operations should be based on.
3333
///
3434
/// By default, this is the current `HEAD`.
3535
String get headRef {
36-
return Platform.environment['GITHUB_HEAD_REF'] ??
37-
argResults!['head-ref'] as String? ??
36+
return argResults?['head-ref'] as String? ??
37+
Platform.environment['GITHUB_HEAD_REF'] ??
3838
'HEAD';
3939
}
4040
}

0 commit comments

Comments
 (0)