diff --git a/packages/core/src/__tests__/release.test.ts b/packages/core/src/__tests__/release.test.ts index d7ea08b63..93d6da47e 100644 --- a/packages/core/src/__tests__/release.test.ts +++ b/packages/core/src/__tests__/release.test.ts @@ -531,6 +531,31 @@ describe("Release", () => { expect(writeSpy.mock.calls[0][1].includes(`1.0.1`)).toBe(true); }); + test("creates changelog with named tag and version prefix", async () => { + const gh = new Release(git, { + noVersionPrefix: false, + prereleaseBranches: ["next"], + labels: defaultLabels, + baseBranch: "main", + }); + await gh.addToChangelog("# My new Notes", "my-tag-name-v1.0.0", "v1.0.0"); + + expect(writeSpy.mock.calls[0][1].includes(`v1.0.1`)).toBe(true); + }); + + test("creates changelog with named tag", async () => { + const gh = new Release(git, { + noVersionPrefix: true, + prereleaseBranches: ["next"], + labels: defaultLabels, + baseBranch: "main", + }); + await gh.addToChangelog("# My new Notes", "my-tag-name-1.0.0", "1.0.0"); + + expect(writeSpy.mock.calls[0][1].includes(`1.0.1`)).toBe(true); + }); + + test("prepends to old changelog", async () => { const gh = new Release(git, config); diff --git a/packages/core/src/release.ts b/packages/core/src/release.ts index fad31deb9..4fa00906d 100644 --- a/packages/core/src/release.ts +++ b/packages/core/src/release.ts @@ -423,7 +423,9 @@ export default class Release { /** Given a tag get the next incremented version */ async calcNextVersion(lastTag: string) { const bump = await this.getSemverBump(lastTag); - return inc(lastTag, bump as ReleaseType); + const matches = lastTag.match(/(\d+\.\d+\.\d+)/) + const lastVersion = matches ? matches[0] : lastTag + return inc(lastVersion, bump as ReleaseType); } /** Create the class that will parse the log for PR info */