From d1d7901a0ab762e5a666ffbf9a21d57cf066ae37 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Fri, 11 Sep 2020 12:43:49 +0200 Subject: [PATCH] fix: Revert "fix(config): Migrate semantic commit option to enum type (#7170)" This reverts commit d2a5b7167b3933990fbfb060e9749e8241f90401. --- lib/config/common.ts | 2 +- lib/config/definitions.ts | 5 ++-- lib/config/migration.spec.ts | 23 ++----------------- lib/config/migration.ts | 9 -------- .../presets/__snapshots__/index.spec.ts.snap | 2 +- lib/config/presets/internal/default.ts | 4 ++-- lib/workers/branch/commit.spec.ts | 2 +- lib/workers/repository/init/config.ts | 5 ++-- lib/workers/repository/init/semantic.spec.ts | 4 ++-- lib/workers/repository/init/semantic.ts | 8 +++---- .../onboarding/branch/create.spec.ts | 4 ++-- .../repository/onboarding/branch/create.ts | 2 +- .../repository/onboarding/branch/rebase.ts | 2 +- .../repository/updates/generate.spec.ts | 8 +++---- lib/workers/repository/updates/generate.ts | 2 +- 15 files changed, 25 insertions(+), 57 deletions(-) diff --git a/lib/config/common.ts b/lib/config/common.ts index 4348a5d319..dd60f538c2 100644 --- a/lib/config/common.ts +++ b/lib/config/common.ts @@ -52,7 +52,7 @@ export interface RenovateSharedConfig { repositoryCache?: RepositoryCacheConfig; requiredStatusChecks?: string[]; schedule?: string[]; - semanticCommits?: 'auto' | 'enabled' | 'disabled'; + semanticCommits?: boolean; semanticCommitScope?: string; semanticCommitType?: string; suppressNotifications?: string[]; diff --git a/lib/config/definitions.ts b/lib/config/definitions.ts index ed3cfe4617..6e0338c7a8 100644 --- a/lib/config/definitions.ts +++ b/lib/config/definitions.ts @@ -1084,9 +1084,8 @@ const options: RenovateOptions[] = [ { name: 'semanticCommits', description: 'Enable semantic commit prefixes for commits and PR titles', - type: 'string', - allowedValues: ['auto', 'enabled', 'disabled'], - default: 'auto', + type: 'boolean', + default: null, }, { name: 'semanticCommitType', diff --git a/lib/config/migration.spec.ts b/lib/config/migration.spec.ts index 3ff1e01cef..b81057b142 100644 --- a/lib/config/migration.spec.ts +++ b/lib/config/migration.spec.ts @@ -1,7 +1,6 @@ import { PLATFORM_TYPE_GITHUB } from '../constants/platforms'; import { getConfig } from './defaults'; import * as configMigration from './migration'; -import { MigratedConfig } from './migration'; import { RenovateSharedConfig, RenovateConfig as _RenovateConfig } from '.'; const defaultConfig = getConfig(); @@ -130,7 +129,7 @@ describe('config/migration', () => { ], raiseDeprecationWarnings: false, }; - const parentConfig = { ...defaultConfig, semanticCommits: 'disabled' }; + const parentConfig = { ...defaultConfig, semanticCommits: false }; const { isMigrated, migratedConfig } = configMigration.migrateConfig( config, parentConfig @@ -270,6 +269,7 @@ describe('config/migration', () => { it('does not migrate config', () => { const config: RenovateConfig = { enabled: true, + semanticCommits: true, separateMinorPatch: true, }; const { isMigrated, migratedConfig } = configMigration.migrateConfig( @@ -403,24 +403,5 @@ describe('config/migration', () => { expect(migratedConfig).toMatchSnapshot(); expect(isMigrated).toBe(true); }); - it('it migrates semanticCommits', () => { - let config: RenovateConfig; - let res: MigratedConfig; - - config = { semanticCommits: true as never }; - res = configMigration.migrateConfig(config); - expect(res.isMigrated).toBe(true); - expect(res.migratedConfig).toMatchObject({ semanticCommits: 'enabled' }); - - config = { semanticCommits: false as never }; - res = configMigration.migrateConfig(config); - expect(res.isMigrated).toBe(true); - expect(res.migratedConfig).toMatchObject({ semanticCommits: 'disabled' }); - - config = { semanticCommits: null as never }; - res = configMigration.migrateConfig(config); - expect(res.isMigrated).toBe(true); - expect(res.migratedConfig).toMatchObject({ semanticCommits: 'auto' }); - }); }); }); diff --git a/lib/config/migration.ts b/lib/config/migration.ts index 9791fff322..e1aa1ab235 100644 --- a/lib/config/migration.ts +++ b/lib/config/migration.ts @@ -101,15 +101,6 @@ export function migrateConfig( migratedConfig.postUpdateOptions.push('gomodTidy'); } delete migratedConfig.gomodTidy; - } else if (key === 'semanticCommits') { - isMigrated = true; - if (val === true) { - migratedConfig.semanticCommits = 'enabled'; - } else if (val === false) { - migratedConfig.semanticCommits = 'disabled'; - } else { - migratedConfig.semanticCommits = 'auto'; - } } else if (parentKey === 'hostRules' && key === 'platform') { isMigrated = true; migratedConfig.hostType = val; diff --git a/lib/config/presets/__snapshots__/index.spec.ts.snap b/lib/config/presets/__snapshots__/index.spec.ts.snap index f96377310c..2156450ef0 100644 --- a/lib/config/presets/__snapshots__/index.spec.ts.snap +++ b/lib/config/presets/__snapshots__/index.spec.ts.snap @@ -393,7 +393,7 @@ Object { "schedule": Array [ "before 8am", ], - "semanticCommits": "enabled", + "semanticCommits": true, "separateMajorMinor": true, "separateMinorPatch": false, "timezone": "Asia/Taipei", diff --git a/lib/config/presets/internal/default.ts b/lib/config/presets/internal/default.ts index dbdc507686..f45ba82d60 100644 --- a/lib/config/presets/internal/default.ts +++ b/lib/config/presets/internal/default.ts @@ -510,11 +510,11 @@ export const presets: Record<string, Preset> = { }, semanticCommits: { description: 'Use semantic prefixes for commit messages and PR titles', - semanticCommits: 'enabled', + semanticCommits: true, }, semanticCommitsDisabled: { description: 'Disable semantic prefixes for commit messages and PR titles', - semanticCommits: 'disabled', + semanticCommits: false, }, disableLockFiles: { description: 'Disable lock file updates', diff --git a/lib/workers/branch/commit.spec.ts b/lib/workers/branch/commit.spec.ts index bd559cb48d..65add63e6f 100644 --- a/lib/workers/branch/commit.spec.ts +++ b/lib/workers/branch/commit.spec.ts @@ -12,7 +12,7 @@ describe('workers/branch/automerge', () => { ...defaultConfig, branchName: 'renovate/some-branch', commitMessage: 'some commit message', - semanticCommits: 'disabled', + semanticCommits: false, semanticCommitType: 'a', semanticCommitScope: 'b', updatedPackageFiles: [], diff --git a/lib/workers/repository/init/config.ts b/lib/workers/repository/init/config.ts index c59dfd80f2..0422ae6acf 100644 --- a/lib/workers/repository/init/config.ts +++ b/lib/workers/repository/init/config.ts @@ -222,8 +222,7 @@ export async function getRepoConfig( config.baseBranch = config.defaultBranch; config = await checkOnboardingBranch(config); config = await mergeRenovateConfig(config); - if (config.semanticCommits === 'auto') { - config.semanticCommits = await detectSemanticCommits(); - } + config.semanticCommits = + config.semanticCommits ?? (await detectSemanticCommits()); return config; } diff --git a/lib/workers/repository/init/semantic.spec.ts b/lib/workers/repository/init/semantic.spec.ts index 0a5b37fdd8..433a21d525 100644 --- a/lib/workers/repository/init/semantic.spec.ts +++ b/lib/workers/repository/init/semantic.spec.ts @@ -17,13 +17,13 @@ describe('workers/repository/init/semantic', () => { config.semanticCommits = null; git.getCommitMessages.mockResolvedValue(['foo', 'bar']); const res = await detectSemanticCommits(); - expect(res).toBe('disabled'); + expect(res).toBe(false); }); it('detects true if known', async () => { config.semanticCommits = null; git.getCommitMessages.mockResolvedValue(['fix: foo', 'refactor: bar']); const res = await detectSemanticCommits(); - expect(res).toBe('enabled'); + expect(res).toBe(true); }); }); }); diff --git a/lib/workers/repository/init/semantic.ts b/lib/workers/repository/init/semantic.ts index 62816e63e5..f9b74b62fd 100644 --- a/lib/workers/repository/init/semantic.ts +++ b/lib/workers/repository/init/semantic.ts @@ -2,9 +2,7 @@ import conventionalCommitsDetector from 'conventional-commits-detector'; import { logger } from '../../../logger'; import { getCommitMessages } from '../../../util/git'; -type DetectedSemanticCommit = 'enabled' | 'disabled'; - -export async function detectSemanticCommits(): Promise<DetectedSemanticCommit> { +export async function detectSemanticCommits(): Promise<boolean> { logger.debug('detectSemanticCommits()'); const commitMessages = await getCommitMessages(); logger.trace(`commitMessages=${JSON.stringify(commitMessages)}`); @@ -12,8 +10,8 @@ export async function detectSemanticCommits(): Promise<DetectedSemanticCommit> { logger.debug('Semantic commits detection: ' + type); if (type === 'angular') { logger.debug('angular semantic commits detected'); - return 'enabled'; + return true; } logger.debug('No semantic commits detected'); - return 'disabled'; + return false; } diff --git a/lib/workers/repository/onboarding/branch/create.spec.ts b/lib/workers/repository/onboarding/branch/create.spec.ts index 410f42bcc4..282a88965b 100644 --- a/lib/workers/repository/onboarding/branch/create.spec.ts +++ b/lib/workers/repository/onboarding/branch/create.spec.ts @@ -72,7 +72,7 @@ describe('workers/repository/onboarding/branch', () => { describe('applies semanticCommit prefix', () => { it('to the default commit message', async () => { const prefix = 'chore(deps)'; - config.semanticCommits = 'enabled'; + config.semanticCommits = true; await createOnboardingBranch(config); expect(commitFiles).toHaveBeenCalledWith( buildExpectedCommitFilesArgument( @@ -84,7 +84,7 @@ describe('workers/repository/onboarding/branch', () => { const prefix = 'chore(deps)'; const message = 'I say, we can update when we want to, a commit they will never mind'; - config.semanticCommits = 'enabled'; + config.semanticCommits = true; config.onboardingCommitMessage = message; await createOnboardingBranch(config); expect(commitFiles).toHaveBeenCalledWith( diff --git a/lib/workers/repository/onboarding/branch/create.ts b/lib/workers/repository/onboarding/branch/create.ts index e1792c357b..1777fc57a1 100644 --- a/lib/workers/repository/onboarding/branch/create.ts +++ b/lib/workers/repository/onboarding/branch/create.ts @@ -17,7 +17,7 @@ export function createOnboardingBranch( let commitMessagePrefix = ''; if (config.commitMessagePrefix) { commitMessagePrefix = config.commitMessagePrefix; - } else if (config.semanticCommits === 'enabled') { + } else if (config.semanticCommits) { commitMessagePrefix = config.semanticCommitType; if (config.semanticCommitScope) { commitMessagePrefix += `(${config.semanticCommitScope})`; diff --git a/lib/workers/repository/onboarding/branch/rebase.ts b/lib/workers/repository/onboarding/branch/rebase.ts index 57fb9d034b..73096472ee 100644 --- a/lib/workers/repository/onboarding/branch/rebase.ts +++ b/lib/workers/repository/onboarding/branch/rebase.ts @@ -14,7 +14,7 @@ const defaultConfigFile = configFileNames[0]; function getCommitMessage(config: RenovateConfig): string { let commitMessage: string; // istanbul ignore if - if (config.semanticCommits === 'enabled') { + if (config.semanticCommits) { commitMessage = config.semanticCommitType; if (config.semanticCommitScope) { commitMessage += `(${config.semanticCommitScope})`; diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts index 4317e68d2d..79e81a8cbc 100644 --- a/lib/workers/repository/updates/generate.spec.ts +++ b/lib/workers/repository/updates/generate.spec.ts @@ -219,7 +219,7 @@ describe('workers/repository/updates/generate', () => { partial<BranchUpgradeConfig>({ ...defaultConfig, depName: 'some-dep', - semanticCommits: 'enabled', + semanticCommits: true, semanticCommitType: 'chore', semanticCommitScope: 'package', newValue: '1.2.0', @@ -243,7 +243,7 @@ describe('workers/repository/updates/generate', () => { depName: 'some-dep', packageFile: 'package.json', baseDir: '', - semanticCommits: 'enabled', + semanticCommits: true, semanticCommitType: 'chore', semanticCommitScope: '{{baseDir}}', newValue: '1.2.0', @@ -268,7 +268,7 @@ describe('workers/repository/updates/generate', () => { depName: 'some-dep', packageFile: 'foo/bar/package.json', parentDir: 'bar', - semanticCommits: 'enabled', + semanticCommits: true, semanticCommitType: 'chore', semanticCommitScope: '{{parentDir}}', newValue: '1.2.0', @@ -292,7 +292,7 @@ describe('workers/repository/updates/generate', () => { depName: 'some-dep', packageFile: 'foo/bar/package.json', baseDir: 'foo/bar', - semanticCommits: 'enabled', + semanticCommits: true, semanticCommitType: 'chore', semanticCommitScope: '{{baseDir}}', newValue: '1.2.0', diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts index a53c3a4909..e115b0a194 100644 --- a/lib/workers/repository/updates/generate.ts +++ b/lib/workers/repository/updates/generate.ts @@ -173,7 +173,7 @@ export function generateBranchConfig( upgrade.isRange = false; } // Use templates to generate strings - if (upgrade.semanticCommits === 'enabled' && !upgrade.commitMessagePrefix) { + if (upgrade.semanticCommits && !upgrade.commitMessagePrefix) { logger.trace('Upgrade has semantic commits enabled'); let semanticPrefix = upgrade.semanticCommitType; if (upgrade.semanticCommitScope) { -- GitLab