Skip to content

fix(release): pin compatible changelog preset - #318

Merged
tnunamak merged 2 commits into
mainfrom
fix/semantic-release-main
Sep 3, 2026
Merged

fix(release): pin compatible changelog preset#318
tnunamak merged 2 commits into
mainfrom
fix/semantic-release-main

Conversation

@tnunamak

@tnunamak tnunamak commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

A release from main, the branch that triggers publication to GitHub (the repository hosting service) and npm (the package registry), could stop before publishing because semantic-release, the automated release program, could not render its release notes. conventional-changelog-conventionalcommits is the release-note preset; its current 10.4.0 version needs conventional-changelog-writer, the module that renders changelog text, at version 9 or newer. @semantic-release/release-notes-generator, the semantic-release module that renders notes, and @semantic-release/commit-analyzer, the module that classifies commits, both declare conventional-changelog-writer: ^8.0.0; pnpm, the workspace package manager, therefore resolved writer 8.4.0 and the preset failed with its “requires ... writer@9 or newer” helper error.

This replaces the rejected preset downgrade with conventional-changelog-writer: 9.2.1 in pnpm-workspace.yaml, pnpm’s repository-wide dependency-resolution configuration file. The pnpm lockfile, the committed record of exact dependency resolutions, now records conventional-changelog-conventionalcommits 10.4.0 and one writer 9.2.1 resolution shared by both semantic-release modules. The change also deletes SEMREL-REPORT.md, the obsolete tracked incident record, while leaving SEMREL-318-REPORT.md, a deliberately untracked local evidence record.

npm view, the npm registry-metadata command, confirmed semantic-release 25.0.9, release-notes-generator 14.1.1, commit-analyzer 13.0.1, conventional-changelog-conventionalcommits 10.4.0, and conventional-changelog-writer 9.2.1. pnpm why conventional-changelog-writer, pnpm’s installed-dependency-graph command, shows writer 9.2.1 shared by both modules.

For an integration proof, an isolated local clone used a local bare Git remote, where Git is the source-control system and “bare” means no working tree, and ran semantic-release’s dry-run command, which skips publishing, against a one-commit fixture, a throwaway repository history, after a local v99.0.0 tag, a release-version label. It classified the commit as a patch release, a backwards-compatible bug-fix version, completed release-notes-generator’s generateNotes step, which constructs changelog text, and generated a 99.0.1 “Bug Fixes” section, the changelog heading for bug-fix commits. This proves the configured commit-analysis and note-generation path works with writer 9.2.1, but it does not exercise the hosted GitHub Actions workflow, the project’s continuous-integration service, that runs after a push to main.

The project commands for repeatable dependency installation, generated-artifact comparison, specification parity, npm publication-label policy tests, and whitespace validation pass; SEMREL-318-REPORT.md records their exact commands and output. The unchanged reference-contract generation check, which verifies generated reference API artifacts, release-policy check, which validates the release configuration, and Ultracite static-analysis check, which applies the project’s formatter and linter, still fail for existing files outside this dependency change; the untracked report records their exact causes.

Assisted-by: AI

conventional-changelog-conventionalcommits 10.4.0 requires changelog-writer 9, but semantic-release 25.0.9 loads writer 8.4.0 while generating release notes. The resolver therefore failed before any publishing work began.

Pin the preset to 10.3.0, the last version proven compatible by the preceding successful resolver. The lockfile makes the compatible dependency graph reproducible, and SEMREL-REPORT.md records the incident evidence.

Signed-off-by: Tim Nunamaker <tnunamak@gmail.com>
Assisted-by: AI
@vercel

vercel Bot commented Sep 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
pdpp Ready Ready Preview Sep 3, 2026 9:50pm UTC

Request Review

conventional-changelog-conventionalcommits 10.4.0 requires writer 9, while semantic-release 25.0.9 plugins declare writer ^8. The resulting 8.4.0 resolution fails release-note generation before publication.

Override writer to 9.2.1 at the pnpm workspace layer, retain the latest preset, and regenerate the lockfile. Remove the tracked incident report; the replacement remains local worktree evidence.

Signed-off-by: Tim Nunamaker <tnunamak@gmail.com>
Assisted-by: AI
@tnunamak
tnunamak merged commit 54e2302 into main Sep 3, 2026
6 checks passed
@tnunamak
tnunamak deleted the fix/semantic-release-main branch September 3, 2026 22:04
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