🚨 Migration Guide: Fix Empty Release Notes in conventional-changelog v10 #1
dcapslock
announced in
Public Team Notices
Replies: 1 comment 2 replies
|
Example change for UIX - Lint-Free-Technology/uix@d8d22bf |
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
If you recently updated dependencies or noticed that your live automated releases are suddenly generating completely empty release notes—even though
npm run release -- --dry-runlooks perfectly fine—you have hit a breaking architectural change introduced inconventional-changelog-conventionalcommitsv10.x (which ships natively inside@semantic-release/release-notes-generator@14.1.0).What Changed?
In
v10, global configuration hoisting has been completely deprecated in favour of strict parameter isolation.preset,presetConfig, andreleaseRulessitting at the global root of.releasercorrelease.config.jsfiles are silently ignored by the live execution engine.10or string words likebeta) anywhere in the repo's history tree, causing the live commit delta engine to crash silently.How to Fix It
Step 1: Update Your
.releaserc.ymlConfigurationYou must move all parsing and generation rules directly inside the block-scoped configuration arrays of the specific plugins that execute them.
Update your configuration layout using this explicit structure:
Step 2: Purge Legacy Non-SemVer Tags
If your local or remote repository contains ancient or untracked single-digit tags (like
3,4,5) or raw string tags (likebeta), the newv10engine will choke sorting the version timeline.Run this command locally to scrub them out:
Why did Dry-Run work but Live fail?
During a
--dry-run,semantic-releaseuses a lenient configuration-merging step in memory. However, during a live execution, it hands history evaluation over to a completely isolated@conventional-changelog/git-clientruntime. This runtime only reads configurations block-scoped inside the plugin arrays. Without this explicit nesting, it falls back to defaults, fails to match your custom commit types, and yields 0 notes.All reactions