From 7ec15dfb900b716c4b679253a4a76c98d3a69b38 Mon Sep 17 00:00:00 2001 From: Dimitri Kennedy Date: Wed, 2 Sep 2026 10:17:46 -0400 Subject: [PATCH] fix(release): use compatible changelog preset --- bun.lock | 6 ++---- package.json | 2 +- tests/release-config.test.ts | 34 ++++++++++++++++++++++++++-------- 3 files changed, 29 insertions(+), 13 deletions(-) diff --git a/bun.lock b/bun.lock index 48ce19f5..73e2c3ec 100644 --- a/bun.lock +++ b/bun.lock @@ -26,7 +26,7 @@ "@types/bun": "latest", "@types/qrcode": "^1.5.6", "commitizen": "4.3.1", - "conventional-changelog-conventionalcommits": "10.4.0", + "conventional-changelog-conventionalcommits": "8.0.0", "cz-conventional-changelog": "3.3.0", "husky": "^9.1.7", "prettier": "3.7.4", @@ -139,8 +139,6 @@ "@commitlint/types": ["@commitlint/types@19.8.1", "", { "dependencies": { "@types/conventional-commits-parser": "^5.0.0", "chalk": "^5.3.0" } }, "sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw=="], - "@conventional-changelog/template": ["@conventional-changelog/template@1.4.0", "", {}, "sha512-aalGyl7dbB5PArRebDIX43ZvBlXrYm9uWzGJ26t+4SzJVPsOuvfILGGbw5X4yX7i50YEmJ8zvbiWnqH/AAnZqg=="], - "@dimforge/rapier2d-simd-compat": ["@dimforge/rapier2d-simd-compat@0.17.3", "", {}, "sha512-bijvwWz6NHsNj5e5i1vtd3dU2pDhthSaTUZSh14DUGGKJfw8eMnlWZsxwHBxB/a3AXVNDjL9abuHw1k9FGR+jg=="], "@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="], @@ -529,7 +527,7 @@ "conventional-changelog-angular": ["conventional-changelog-angular@8.1.0", "", { "dependencies": { "compare-func": "^2.0.0" } }, "sha512-GGf2Nipn1RUCAktxuVauVr1e3r8QrLP/B0lEUsFktmGqc3ddbQkhoJZHJctVU829U1c6mTSWftrVOCHaL85Q3w=="], - "conventional-changelog-conventionalcommits": ["conventional-changelog-conventionalcommits@10.4.0", "", { "dependencies": { "@conventional-changelog/template": "^1.4.0" } }, "sha512-Rriac6ZrAlVm6cy9Bz4NSp+WMHpwNXoPIYex+HjCgduAVUSbnew29DQjQw0C4g9u3HtSYzGiGY+pdBXAZo+4aA=="], + "conventional-changelog-conventionalcommits": ["conventional-changelog-conventionalcommits@8.0.0", "", { "dependencies": { "compare-func": "^2.0.0" } }, "sha512-eOvlTO6OcySPyyyk8pKz2dP4jjElYunj9hn9/s0OB+gapTO8zwS9UQWrZ1pmF2hFs3vw1xhonOLGcGjy/zgsuA=="], "conventional-changelog-writer": ["conventional-changelog-writer@8.2.0", "", { "dependencies": { "conventional-commits-filter": "^5.0.0", "handlebars": "^4.7.7", "meow": "^13.0.0", "semver": "^7.5.2" }, "bin": { "conventional-changelog-writer": "dist/cli/index.js" } }, "sha512-Y2aW4596l9AEvFJRwFGJGiQjt2sBYTjPD18DdvxX9Vpz0Z7HQ+g1Z+6iYDAm1vR3QOJrDBkRHixHK/+FhkR6Pw=="], diff --git a/package.json b/package.json index 33e8ae00..581cc8dc 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "@types/bun": "latest", "@types/qrcode": "^1.5.6", "commitizen": "4.3.1", - "conventional-changelog-conventionalcommits": "10.4.0", + "conventional-changelog-conventionalcommits": "8.0.0", "cz-conventional-changelog": "3.3.0", "husky": "^9.1.7", "prettier": "3.7.4", diff --git a/tests/release-config.test.ts b/tests/release-config.test.ts index ebbba65a..44ee3b86 100644 --- a/tests/release-config.test.ts +++ b/tests/release-config.test.ts @@ -1,21 +1,33 @@ import { expect, test } from "bun:test"; -test("release config recognizes bang syntax as a breaking change", async () => { - const analyzer = Bun.spawn({ +test("release config analyzes and renders bang breaking changes", async () => { + const releaseProbe = Bun.spawn({ cmd: [ process.execPath, "-e", ` import { analyzeCommits } from "@semantic-release/commit-analyzer"; + import { generateNotes } from "@semantic-release/release-notes-generator"; const releaseConfig = await Bun.file(".releaserc.json").json(); const analyzerConfig = releaseConfig.plugins[0][1]; + const notesConfig = releaseConfig.plugins[1][1]; const logger = { log() {} }; + const commits = [ + { hash: "breaking-commit", message: "feat!: remove a retired surface" }, + ]; const releaseType = await analyzeCommits(analyzerConfig, { - commits: [{ hash: "breaking-commit", message: "feat!: remove a retired surface" }], + commits, cwd: process.cwd(), logger, }); - console.log(releaseType); + const notes = await generateNotes(notesConfig, { + commits, + cwd: process.cwd(), + lastRelease: { gitTag: "v3.5.2" }, + nextRelease: { gitTag: "v4.0.0", version: "4.0.0" }, + options: { repositoryUrl: "https://github.com/hack-dance/hack.git" }, + }); + console.log(JSON.stringify({ notes, releaseType })); `, ], cwd: process.cwd(), @@ -23,12 +35,18 @@ test("release config recognizes bang syntax as a breaking change", async () => { stdout: "pipe", }); const [exitCode, stdout, stderr] = await Promise.all([ - analyzer.exited, - new Response(analyzer.stdout).text(), - new Response(analyzer.stderr).text(), + releaseProbe.exited, + new Response(releaseProbe.stdout).text(), + new Response(releaseProbe.stderr).text(), ]); expect(stderr).toBe(""); expect(exitCode).toBe(0); - expect(stdout.trim()).toBe("major"); + const result = JSON.parse(stdout) as { + notes: string; + releaseType: string; + }; + expect(result.releaseType).toBe("major"); + expect(result.notes).toContain("BREAKING CHANGES"); + expect(result.notes).toContain("remove a retired surface"); });