From 0b9246653e054a089936c312444add46d7eb0724 Mon Sep 17 00:00:00 2001 From: Dawson Toth Date: Mon, 27 Jul 2026 12:58:26 -0400 Subject: [PATCH] fix(release): consolidate release config so all commit types surface in notes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - **Resolved config shadowing:** `.releaserc.json` (no `presetConfig`) was silently overriding `release.config.js` (cosmiconfig loads the first match), so the preset fell back to defaults and hid `chore`/`chore(deps)`/etc. — dependency-only releases came out empty. Moved the `presetConfig` into `.releaserc.json` and **deleted the dead `release.config.js`**. - Aligned `presetConfig.types` to studio's superset. - Added the Renovate guard. (No lockfile change — the preset devDep is already on a 9.x range.) Co-Authored-By: Claude Opus 4.8 (1M context) --- .releaserc.json | 23 ++++++++++++++++++++++- release.config.js | 33 --------------------------------- renovate.json | 5 +++++ 3 files changed, 27 insertions(+), 34 deletions(-) delete mode 100644 release.config.js diff --git a/.releaserc.json b/.releaserc.json index 57ad559..87ca503 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -29,7 +29,28 @@ } } ], - "@semantic-release/release-notes-generator", + [ + "@semantic-release/release-notes-generator", + { + "preset": "conventionalcommits", + "presetConfig": { + "types": [ + { "type": "feat", "section": "Features" }, + { "type": "fix", "section": "Bug Fixes" }, + { "type": "perf", "section": "Performance Improvements" }, + { "type": "refactor", "section": "Refactoring" }, + { "type": "chore", "scope": "deps", "section": "Dependency Updates", "hidden": false }, + { "type": "chore", "section": "Chores", "hidden": false }, + { "type": "docs", "section": "Documentation" }, + { "type": "style", "section": "Styles" }, + { "type": "test", "section": "Tests" }, + { "type": "build", "section": "Build System" }, + { "type": "ci", "section": "Continuous Integration" }, + { "type": "revert", "section": "Reverts" } + ] + } + } + ], [ "@semantic-release/npm", { diff --git a/release.config.js b/release.config.js deleted file mode 100644 index 04f65fa..0000000 --- a/release.config.js +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = { - plugins: [ - '@semantic-release/commit-analyzer', - [ - '@semantic-release/release-notes-generator', - { - preset: 'conventionalcommits', - presetConfig: { - types: [ - { type: 'feat', section: 'Features' }, - { type: 'feature', section: 'Features' }, - { type: 'docs', section: 'Documentation' }, - { type: 'fix', section: 'Bug Fixes' }, - { type: 'perf', section: 'Performance Improvements' }, - { type: 'refactor', section: 'Code Improvements' }, - { type: 'revert', section: 'Reverts' }, - { type: 'test', section: 'Test Improvements' }, - { type: 'chore', scope: 'deps', section: 'Dependency Updates' }, - ], - }, - }, - ], - [ - '@semantic-release/git', - { - 'assets': ['package.json'], - 'message': 'chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}', - }, - ], - '@semantic-release/github', - '@semantic-release/npm', - ], -}; diff --git a/renovate.json b/renovate.json index 2dcc30a..568977a 100644 --- a/renovate.json +++ b/renovate.json @@ -29,6 +29,11 @@ ], "matchCurrentVersion": "!/^0/", "automerge": true + }, + { + "description": "Hold conventional-changelog-conventionalcommits on v9: @semantic-release/release-notes-generator@14 bundles the Handlebars conventional-changelog-writer@8, and preset v10's function-based templates render empty release notes under writer@8. Drop once release-notes-generator ships a writer@9 major.", + "matchPackageNames": ["conventional-changelog-conventionalcommits"], + "allowedVersions": "<10" } ] }