From fb9ee3e067b9a1253380b01eeb680877a734e1ea Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Fri, 7 Oct 2022 16:53:57 -0700 Subject: [PATCH 1/2] Consistent commit messages for dep bumps --- .../packages/build-cli/src/commands/bump.ts | 14 +++++-- .../build-cli/src/commands/bump/deps.ts | 9 +++- .../build-cli/src/handlers/checkFunctions.ts | 7 ++-- .../packages/build-cli/src/lib/branches.ts | 42 +++++++++++++++---- .../packages/build-cli/src/lib/index.ts | 3 +- 5 files changed, 59 insertions(+), 16 deletions(-) diff --git a/build-tools/packages/build-cli/src/commands/bump.ts b/build-tools/packages/build-cli/src/commands/bump.ts index 2a923967dd73..60b676f9bd6e 100644 --- a/build-tools/packages/build-cli/src/commands/bump.ts +++ b/build-tools/packages/build-cli/src/commands/bump.ts @@ -20,7 +20,11 @@ import { import { packageOrReleaseGroupArg } from "../args"; import { BaseCommand } from "../base"; import { bumpTypeFlag, checkFlags, skipCheckFlag, versionSchemeFlag } from "../flags"; -import { bumpReleaseGroup, generateBumpVersionBranchName } from "../lib"; +import { + bumpReleaseGroup, + generateBumpVersionBranchName, + generateBumpVersionCommitMessage, +} from "../lib"; import { isReleaseGroup } from "../releaseGroups"; export default class BumpCommand extends BaseCommand { @@ -158,14 +162,18 @@ export default class BumpCommand extends BaseCommand { } if (shouldCommit) { - const commitMessage = stripAnsi( - `Bump ${packageOrReleaseGroup} to ${newVersion} (${bumpType} bump)`, + const commitMessage = generateBumpVersionCommitMessage( + args.package_or_release_group, + bumpType, + repoVersion, + scheme, ); const bumpBranch = generateBumpVersionBranchName( args.package_or_release_group, bumpType, repoVersion, + scheme, ); this.log(`Creating branch ${bumpBranch}`); await context.createBranch(bumpBranch); diff --git a/build-tools/packages/build-cli/src/commands/bump/deps.ts b/build-tools/packages/build-cli/src/commands/bump/deps.ts index 89c6e61e1dbc..f1d3c109bdc8 100644 --- a/build-tools/packages/build-cli/src/commands/bump/deps.ts +++ b/build-tools/packages/build-cli/src/commands/bump/deps.ts @@ -14,6 +14,7 @@ import { BaseCommand } from "../../base"; import { checkFlags, dependencyUpdateTypeFlag, releaseGroupFlag, skipCheckFlag } from "../../flags"; import { generateBumpDepsBranchName, + generateBumpDepsCommitMessage, indentString, isDependencyUpdateType, npmCheckUpdates, @@ -199,7 +200,13 @@ export default class DepsCommand extends BaseCommand { const changedVersionMessage = changedVersionsString.join("\n"); if (shouldCommit) { - const commitMessage = stripAnsi(`Bump dependencies\n\n${changedVersionMessage}`); + const commitMessage = stripAnsi( + `${generateBumpDepsCommitMessage( + args.package_or_release_group, + flags.updateType, + flags.releaseGroup, + )}\n\n${changedVersionMessage}`, + ); const bumpBranch = generateBumpDepsBranchName( args.package_or_release_group, diff --git a/build-tools/packages/build-cli/src/handlers/checkFunctions.ts b/build-tools/packages/build-cli/src/handlers/checkFunctions.ts index cc7a3e77120c..4249921df429 100644 --- a/build-tools/packages/build-cli/src/handlers/checkFunctions.ts +++ b/build-tools/packages/build-cli/src/handlers/checkFunctions.ts @@ -13,8 +13,9 @@ import { bumpVersionScheme } from "@fluid-tools/version-tools"; import { generateBumpDepsBranchName, + generateBumpDepsCommitMessage, generateBumpVersionBranchName, - generateCommitMessage, + generateBumpVersionCommitMessage, generateReleaseBranchName, getPreReleaseDependencies, getReleaseSourceForReleaseGroup, @@ -591,7 +592,7 @@ export const checkShouldCommit: StateHandlerFunction = async ( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const branchName = generateBumpVersionBranchName(releaseGroup!, bumpType!, releaseVersion!); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const commitMsg = generateCommitMessage(releaseGroup!, bumpType!, releaseVersion!); + const commitMsg = generateBumpVersionCommitMessage(releaseGroup!, bumpType!, releaseVersion!); await context.createBranch(branchName); log.verbose(`Created bump branch: ${branchName}`); @@ -634,7 +635,7 @@ export const checkShouldCommitReleasedDepsBump: StateHandlerFunction = async ( log.verbose(`Created bump branch: ${branchName}`); log.info(`${releaseGroup}: Bumped prerelease dependencies to release versions.`); - const commitMsg = `[dependencies] ${releaseGroup}: update prerelease dependencies to release versions`; + const commitMsg = generateBumpDepsCommitMessage("prerelease", "latest", releaseGroup); await context.gitRepo.commit(commitMsg, `Error committing to ${branchName}`); BaseStateHandler.signalSuccess(machine, state); return true; diff --git a/build-tools/packages/build-cli/src/lib/branches.ts b/build-tools/packages/build-cli/src/lib/branches.ts index ce08207fb0d1..e5e0718db9fb 100644 --- a/build-tools/packages/build-cli/src/lib/branches.ts +++ b/build-tools/packages/build-cli/src/lib/branches.ts @@ -91,7 +91,7 @@ export function generateBumpVersionBranchName( * @internal */ export function generateBumpDepsBranchName( - bumpedDep: ReleaseGroup, + bumpedDep: ReleaseGroup | ReleasePackage, bumpType: DependencyUpdateType | VersionBumpType, releaseGroup?: ReleaseGroup, ): string { @@ -153,19 +153,15 @@ export function generateReleaseBranchName(releaseGroup: ReleaseGroup, version: s /** * Generates an appropriate commit message when bumping a release group or package. * - * @param releaseGroupOrPackage - The release group or independent package to generate a branch name for. + * @param releaseGroupOrPackage - The release group or independent package to generate a commit message for. * @param bumpType - The bump type. * @param version - The current version of the release group or package. * @param scheme - The version scheme to use. If this is omitted the scheme will be detected using detectVersionScheme. - * @returns The generated branch name. - * - * @remarks - * - * Generated branch names are of the form `bump_deps__`. + * @returns The generated commit message. * * @internal */ -export function generateCommitMessage( +export function generateBumpVersionCommitMessage( releaseGroupOrPackage: ReleaseGroup | ReleasePackage, bumpType: VersionBumpTypeExtended, version: ReleaseVersion, @@ -179,6 +175,36 @@ export function generateCommitMessage( return message; } +/** + * Generates an appropriate commit message when bumping the dependencies of release group or package. + * + * @param bumpedDep - The release group on which dependencies were bumped. + * @param bumpType - The bump type. + * @param releaseGroup - If set, changes were made to only this release group. + * @returns The generated branch name. + * + * @internal + */ +export function generateBumpDepsCommitMessage( + bumpedDep: ReleaseGroup | ReleasePackage | "prerelease", + bumpType: DependencyUpdateType | VersionBumpType, + releaseGroup?: ReleaseGroup, +): string { + const name = + bumpedDep === "prerelease" + ? "Bump prerelease deps" + : isReleaseGroup(bumpedDep) + ? `${bumpedDep} release group` + : PackageName.getUnscopedName(bumpedDep); + + const releaseGroupSegment = isReleaseGroup(releaseGroup) + ? ` in the ${releaseGroup} release group` + : " in all packages and release groups"; + + const message = `Update deps (${bumpType}) on ${name}${releaseGroupSegment}`; + return message; +} + /** * Returns the default bump type for a branch. * diff --git a/build-tools/packages/build-cli/src/lib/index.ts b/build-tools/packages/build-cli/src/lib/index.ts index fece12fa4232..f6c4e3493997 100644 --- a/build-tools/packages/build-cli/src/lib/index.ts +++ b/build-tools/packages/build-cli/src/lib/index.ts @@ -5,8 +5,9 @@ export { generateBumpVersionBranchName, + generateBumpVersionCommitMessage, generateBumpDepsBranchName, - generateCommitMessage, + generateBumpDepsCommitMessage, createBumpBranch, getDefaultBumpTypeForBranch, getReleaseSourceForReleaseGroup, From 705dbc8cbdc1bfbf45a43a125baf87923fcb717c Mon Sep 17 00:00:00 2001 From: Tyler Butler Date: Fri, 7 Oct 2022 17:24:50 -0700 Subject: [PATCH 2/2] fix --- build-tools/packages/build-cli/src/lib/branches.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-tools/packages/build-cli/src/lib/branches.ts b/build-tools/packages/build-cli/src/lib/branches.ts index e5e0718db9fb..38669ade890e 100644 --- a/build-tools/packages/build-cli/src/lib/branches.ts +++ b/build-tools/packages/build-cli/src/lib/branches.ts @@ -181,7 +181,7 @@ export function generateBumpVersionCommitMessage( * @param bumpedDep - The release group on which dependencies were bumped. * @param bumpType - The bump type. * @param releaseGroup - If set, changes were made to only this release group. - * @returns The generated branch name. + * @returns The generated commit message. * * @internal */ @@ -192,7 +192,7 @@ export function generateBumpDepsCommitMessage( ): string { const name = bumpedDep === "prerelease" - ? "Bump prerelease deps" + ? "released prerelease packages" : isReleaseGroup(bumpedDep) ? `${bumpedDep} release group` : PackageName.getUnscopedName(bumpedDep);