You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replaces the hand-rolled, git-cliff-style commit parser and changelog renderer in scripts/semantic-release-plugin.ts with the official @semantic-release/commit-analyzer and @semantic-release/release-notes-generator plugins using the conventionalcommits preset.
Root cause found:conventional-changelog-conventionalcommits was missing from the dependency graph entirely — both official plugins declare it, but the lockfile snapshots omitted it, so the standard conventionalcommits preset could never load. That is why a custom git-cliff-flavored parser existed in the first place.
Changes
scripts/semantic-release-plugin.ts — now a thin wrapper that delegates analyzeCommits/generateNotes to the official plugins with preset: "conventionalcommits", keeping only the per-package commit path filter (semantic-release core analyzes the whole repository range, which would otherwise bump a package for another package's commits).
scripts/semantic-release-options.ts — canonical repository URL is injected only into the notes context for compare/commit links; semantic-release's push-permission verification keeps targeting the actual git origin (matters under branch protection).
package.json / pnpm-lock.yaml — declare @semantic-release/commit-analyzer, @semantic-release/release-notes-generator, and conventional-changelog-conventionalcommits in root devDependencies so the preset resolves from the workspace root under pnpm's strict module layout.
scripts/semantic-release-plugins.d.ts — ambient types for the untyped official plugins.
tests/release.test.ts — integration test now asserts the preset's real output (### Bug Fixes, compare links).
docs/release.md — documents the official-plugin delegation and branch-protected dry-run planning mode.
Behavior preserved
Version policy unchanged: breaking → major, feat → minor, fix/perf/revert → patch, other types appear in notes without triggering a release.
PR-based release flow untouched: dry-run planning → chore: release packages PR → owner merges → tags/GitHub releases/npm publish via protected environment. No direct-to-main commits, no GitHub Apps.
Existing changelog entries keep their old headings; only new entries use the preset's ### Bug Fixes style.
Summary
Replaces the hand-rolled, git-cliff-style commit parser and changelog renderer in
scripts/semantic-release-plugin.tswith the official@semantic-release/commit-analyzerand@semantic-release/release-notes-generatorplugins using theconventionalcommitspreset.Root cause found:
conventional-changelog-conventionalcommitswas missing from the dependency graph entirely — both official plugins declare it, but the lockfile snapshots omitted it, so the standardconventionalcommitspreset could never load. That is why a custom git-cliff-flavored parser existed in the first place.Changes
scripts/semantic-release-plugin.ts— now a thin wrapper that delegatesanalyzeCommits/generateNotesto the official plugins withpreset: "conventionalcommits", keeping only the per-package commit path filter (semantic-release core analyzes the whole repository range, which would otherwise bump a package for another package's commits).scripts/semantic-release-options.ts— canonical repository URL is injected only into the notes context for compare/commit links; semantic-release's push-permission verification keeps targeting the actual git origin (matters under branch protection).package.json/pnpm-lock.yaml— declare@semantic-release/commit-analyzer,@semantic-release/release-notes-generator, andconventional-changelog-conventionalcommitsin root devDependencies so the preset resolves from the workspace root under pnpm's strict module layout.scripts/semantic-release-plugins.d.ts— ambient types for the untyped official plugins.tests/release.test.ts— integration test now asserts the preset's real output (### Bug Fixes, compare links).docs/release.md— documents the official-plugin delegation and branch-protected dry-run planning mode.Behavior preserved
major,feat→minor,fix/perf/revert→patch, other types appear in notes without triggering a release.chore: release packagesPR → owner merges → tags/GitHub releases/npm publish via protected environment. No direct-to-main commits, no GitHub Apps.### Bug Fixesstyle.Validation
vp run validatepasses (check, coverage tests, contract tests, tarball inspection, packaged smoke tests)vp test— 288/288 tests passpackages/*is touched, so no package release is triggeredSummary by CodeRabbit
Documentation
Release Improvements
Tests