Skip to content

fix: pin conventionalcommits preset to avoid writer version mismatch - #267

Open
joris974 wants to merge 1 commit into
mainfrom
fix/pin-conventionalcommits-preset
Open

fix: pin conventionalcommits preset to avoid writer version mismatch#267
joris974 wants to merge 1 commit into
mainfrom
fix/pin-conventionalcommits-preset

Conversation

@joris974

Copy link
Copy Markdown
Member

Summary

Release runs on main started failing after #212 with:

Missing helper: "conventional-changelog-conventionalcommits requires conventional-changelog-writer@9 or newer (conventional-changelog@8 or newer). Your changelog tooling loaded an older writer which cannot render this preset. Update the tooling or use an older major version of the preset."

Root cause: .releaserc.yaml uses preset: 'conventionalcommits', and release.yml installs the preset package unpinned via extra_plugins, so it resolves to whatever is latest (conventional-changelog-conventionalcommits@10.4.0 as of this writing). That version added a hard runtime failure when its templates are rendered by conventional-changelog-writer < 9.

cycjimmy/semantic-release-action@v6.0.0 bundles semantic-release@25.0.2, whose @semantic-release/release-notes-generator@14.1.0 depends on conventional-changelog-writer@^8.0.0 — one major behind what the unpinned preset now requires. Hence the mismatch.

Fix

Pin the extra_plugins entry to conventional-changelog-conventionalcommits@^9, the last major line still compatible with conventional-changelog-writer@8.

Verification

Reproduced and fixed locally by installing the action's exact bundled versions and calling @semantic-release/release-notes-generator's generateNotes directly:

  • semantic-release@25.0.2 + unpinned conventional-changelog-conventionalcommits → resolves 10.4.0, conventional-changelog-writer stays at 8.4.0 (deduped from release-notes-generator) → reproduces the exact reported error.
  • Same setup with conventional-changelog-conventionalcommits@^9 → resolves 9.3.1 against the same conventional-changelog-writer@8.4.0generateNotes succeeds and produces correct release notes.

Test plan

  • Confirmed root cause and fix locally against the action's pinned dependency versions
  • CI passes on this PR
  • After merge, verify the next release run on main succeeds

conventional-changelog-conventionalcommits@10.4.0 added a hard failure
when rendered by conventional-changelog-writer < 9. The action we use
(cycjimmy/semantic-release-action@v6.0.0) bundles semantic-release@25,
whose @semantic-release/release-notes-generator@14.1.0 depends on
conventional-changelog-writer@^8.0.0, so installing the preset
unpinned via extra_plugins pulled in an incompatible major and every
release run failed with:

  Missing helper: "conventional-changelog-conventionalcommits requires
  conventional-changelog-writer@9 or newer..."

Pin to the 9.x line, the last major compatible with writer@8.
@joris974
joris974 requested a review from a team as a code owner August 21, 2026 16:49
@joris974
joris974 requested review from cdmren, dverdaguer and jleichty-ren and removed request for a team and dverdaguer August 21, 2026 16:49
@joris974
joris974 enabled auto-merge August 21, 2026 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant