fix(release): pin conventionalcommits preset to v9 and align release-note sections - #32
Conversation
…note sections - `conventional-changelog-conventionalcommits` devDependency `^10.0.0` → `^9.3.1` (+ regenerated `package-lock.json`). - Aligned `.releaserc.json` `presetConfig.types` to studio's superset. - Added the Renovate guard. Symptom fixed: v1.2.2 dropped a `fix(renovate):` commit and rendered header-only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request downgrades conventional-changelog-conventionalcommits to version 9.3.1 and pins it in renovate.json to avoid empty release notes caused by compatibility issues with @semantic-release/release-notes-generator. It also updates the release configuration in .releaserc.json. Feedback on the release configuration points out that the conventional-changelog-conventionalcommits preset does not support the scope property in the types array, meaning the duplicate chore entries will overwrite each other and prevent the "Dependency Updates" section from rendering. It is recommended to consolidate these entries.
|
🎉 This PR is included in version 1.2.3 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Why
Our semantic-release repos generate GitHub release notes with the
conventionalcommitspreset, but the behavior had drifted and, in several repos, notes were coming out empty. Two separate causes:@semantic-release/release-notes-generator@14still bundles the Handlebars-basedconventional-changelog-writer@8. Theconventional-changelog-conventionalcommitsv10 preset rewrote its templates as JS functions for the newer@conventional-changelog/templateengine (writer@9); fed to writer@8 only the header survives, so every release note collapses to just its## [x.y.z]…line.presetConfig.typesdrift. Types likechore/chore(deps)/ci/build/stylewere hidden or missing, so dependency-only releases (the common Renovate case) produced empty notes.This PR makes the repo consistent with studio's canonical release config (which surfaces every commit type) and holds the preset on v9 where relevant. Reference: HarperFast/studio#1560.
What changed
conventional-changelog-conventionalcommitsdevDependency^10.0.0→^9.3.1(+ regeneratedpackage-lock.json)..releaserc.jsonpresetConfig.typesto studio's superset.Symptom fixed: v1.2.2 dropped a
fix(renovate):commit and rendered header-only.Canonical
presetConfig.types(matches studio)feat→Features,fix→Bug Fixes,perf→Performance Improvements,refactor→Refactoring,chore(deps)→Dependency Updates,chore→Chores,docs→Documentation,style→Styles,test→Tests,build→Build System,ci→Continuous Integration,revert→Reverts — nothing hidden, so no release comes out empty.Renovate guard
Added a
packageRulesentry pinningconventional-changelog-conventionalcommitsto<10so Renovate won't re-introduce the v10 breakage. Remove once@semantic-release/release-notes-generatorships awriter@9-based major.Verification
.releaserc.jsonis valid JSON;renovate-config-validatorpasses.--package-lock-only);npm cipasses under npm 10.8.2 (the Node 20/22 CI matrix version). Lock diff is limited to the preset 10→9 swap — no unrelated churn.🤖 Generated with Claude Code