From 6378457fc76bd44578ac7f99f7c481dcb79be8d1 Mon Sep 17 00:00:00 2001 From: Patrick Ruhkopf Date: Fri, 23 Feb 2024 17:35:16 -0500 Subject: [PATCH 1/4] fix: make this work for tags that contain a name/prefix before the version no --- packages/core/src/release.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 */ From 210391a39f05398f59267f027af743ec05163ded Mon Sep 17 00:00:00 2001 From: Patrick Ruhkopf Date: Fri, 23 Feb 2024 18:22:22 -0500 Subject: [PATCH 2/4] test: for changelog based on tags with names --- packages/core/src/__tests__/release.test.ts | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/packages/core/src/__tests__/release.test.ts b/packages/core/src/__tests__/release.test.ts index d7ea08b63..d9c1d05aa 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", 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(`1.0.1`)).toBe(true); + }); + + test("creates changelog with named tag and version prefix", 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); From 820e33aa50726f5b73cee77b9b9d2cbb54f67547 Mon Sep 17 00:00:00 2001 From: Patrick Ruhkopf Date: Fri, 23 Feb 2024 18:23:51 -0500 Subject: [PATCH 3/4] fix: test names --- packages/core/src/__tests__/release.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/__tests__/release.test.ts b/packages/core/src/__tests__/release.test.ts index d9c1d05aa..578fd55fa 100644 --- a/packages/core/src/__tests__/release.test.ts +++ b/packages/core/src/__tests__/release.test.ts @@ -531,7 +531,7 @@ describe("Release", () => { expect(writeSpy.mock.calls[0][1].includes(`1.0.1`)).toBe(true); }); - test("creates changelog with named tag", async () => { + test("creates changelog with named tag and version prefix", async () => { const gh = new Release(git, { noVersionPrefix: false, prereleaseBranches: ["next"], @@ -543,7 +543,7 @@ describe("Release", () => { expect(writeSpy.mock.calls[0][1].includes(`1.0.1`)).toBe(true); }); - test("creates changelog with named tag and version prefix", async () => { + test("creates changelog with named tag", async () => { const gh = new Release(git, { noVersionPrefix: true, prereleaseBranches: ["next"], From fcad69923d118e1880bac17441cdb7d317a16531 Mon Sep 17 00:00:00 2001 From: Patrick Ruhkopf Date: Fri, 23 Feb 2024 18:26:02 -0500 Subject: [PATCH 4/4] test: improve assertion --- packages/core/src/__tests__/release.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/__tests__/release.test.ts b/packages/core/src/__tests__/release.test.ts index 578fd55fa..93d6da47e 100644 --- a/packages/core/src/__tests__/release.test.ts +++ b/packages/core/src/__tests__/release.test.ts @@ -540,7 +540,7 @@ describe("Release", () => { }); await gh.addToChangelog("# My new Notes", "my-tag-name-v1.0.0", "v1.0.0"); - expect(writeSpy.mock.calls[0][1].includes(`1.0.1`)).toBe(true); + expect(writeSpy.mock.calls[0][1].includes(`v1.0.1`)).toBe(true); }); test("creates changelog with named tag", async () => {