From 9e84ad17527f48ee94fe40002ee8822de6ae9805 Mon Sep 17 00:00:00 2001 From: meorphis <108296353+meorphis@users.noreply.github.com> Date: Thu, 25 Jan 2024 13:04:48 -0500 Subject: [PATCH] [STA-3429] prerelease: support format that includes a dot (#58) --- src/versioning-strategies/prerelease.ts | 11 +++++++---- test/versioning-strategies/prerelease.ts | 3 +++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/versioning-strategies/prerelease.ts b/src/versioning-strategies/prerelease.ts index 463f79dd6..c2c811972 100644 --- a/src/versioning-strategies/prerelease.ts +++ b/src/versioning-strategies/prerelease.ts @@ -17,7 +17,7 @@ import {Version} from '../version'; import {ConventionalCommit} from '..'; import {VersionUpdater, CustomVersionUpdate} from '../versioning-strategy'; -const PRERELEASE_PATTERN = /^(?[a-z]+)(?\d+)$/; +const PRERELEASE_PATTERN = /^(?[a-z]+)(?\.)?(?\d+)$/; class PrereleasePatchVersionUpdate implements VersionUpdater { /** @@ -36,7 +36,8 @@ class PrereleasePatchVersionUpdate implements VersionUpdater { numberLength, '0' ); - const nextPrerelease = `${match.groups.type}${paddedNextPrereleaseNumber}`; + const maybeDot = match.groups.dot ? '.' : ''; + const nextPrerelease = `${match.groups.type}${maybeDot}${paddedNextPrereleaseNumber}`; return new Version( version.major, version.minor, @@ -84,7 +85,8 @@ class PrereleaseMinorVersionUpdate implements VersionUpdater { numberLength, '0' ); - const nextPrerelease = `${match.groups.type}${paddedNextPrereleaseNumber}`; + const maybeDot = match.groups.dot ? '.' : ''; + const nextPrerelease = `${match.groups.type}${maybeDot}${paddedNextPrereleaseNumber}`; return new Version( version.major, nextMinorNumber, @@ -134,7 +136,8 @@ class PrereleaseMajorVersionUpdate implements VersionUpdater { numberLength, '0' ); - const nextPrerelease = `${match.groups.type}${paddedNextPrereleaseNumber}`; + const maybeDot = match.groups.dot ? '.' : ''; + const nextPrerelease = `${match.groups.type}${maybeDot}${paddedNextPrereleaseNumber}`; return new Version( nextMajorNumber, nextMinorNumber, diff --git a/test/versioning-strategies/prerelease.ts b/test/versioning-strategies/prerelease.ts index 45b38b241..f88ed6363 100644 --- a/test/versioning-strategies/prerelease.ts +++ b/test/versioning-strategies/prerelease.ts @@ -63,6 +63,7 @@ describe('PrereleaseVersioningStrategy', () => { '1.0.1-beta01': '2.0.0-beta01', '1.1.0-beta01': '2.0.0-beta01', '1.1.1-beta01': '2.0.0-beta01', + '1.0.0-beta.0': '1.0.0-beta.1', }; for (const old in expectedBumps) { const expected = expectedBumps[old]; @@ -127,6 +128,7 @@ describe('PrereleaseVersioningStrategy', () => { '1.0.1-beta01': '1.1.0-beta01', '1.1.0-beta01': '1.1.0-beta02', '1.1.1-beta01': '1.2.0-beta01', + '1.0.0-beta.0': '1.0.0-beta.1', }; for (const old in expectedBumps) { const expected = expectedBumps[old]; @@ -182,6 +184,7 @@ describe('PrereleaseVersioningStrategy', () => { '1.0.0-beta1': '1.0.0-beta2', '1.0.0-beta9': '1.0.0-beta10', // (although that would be unfortunate) '1.0.0-beta09': '1.0.0-beta10', + '1.0.0-beta.0': '1.0.0-beta.1', }; for (const old in expectedBumps) { const expected = expectedBumps[old];