semantic-release / semantic-release/release-notes-generator

generateNotes step failing with conventional-changelog-conventionalcommits error

Open
#1,027 3 comments 2 reactions 0 assignees View on GitHub

A pull request for this has already been merged.

  • #1026 by @babblebey — merged
released on @beta
Dominant language
JavaScript
Stars
368
Forks
55
Avg merge
10m
Merged PRs (30d)
1

Description

I've encountered an issue while running semantic-release where the generateNotes step fails. It looks like it is complaining about some conventional-changelog-writer version being out of date. I've pasted what I think are the relevant log sections from our CI/CD below.

logs
$ npm install --global semantic-release @semantic-release/gitlab @semantic-release/git @semantic-release/changelog @semantic-release/exec conventional-changelog-conventionalcommits
added 448 packages in 15s
115 packages are looking for funding
  run `npm fund` for details
$ npm --version
11.17.0
$ semantic-release --version
25.0.9
$ semantic-release
[3:53:24 AM] [semantic-release] › ℹ  Running semantic-release version 25.0.9
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/changelog"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/exec"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/git"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/gitlab"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/exec"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "verifyRelease" from "@semantic-release/exec"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/exec"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/changelog"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/exec"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/git"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/exec"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/gitlab"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/exec"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/exec"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/gitlab"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/exec"
[3:53:25 AM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/gitlab"
[3:53:31 AM] [semantic-release] › ✔  Run automated release from branch master on repository [https://gitlab-ci-token:[secure]@gitlab.com/munipal/alarm-tracking-services/event-hub.git](https://gitlab-ci-token:%5Bsecure%5D@gitlab.com/munipal/alarm-tracking-services/event-hub.git)
[3:53:31 AM] [semantic-release] › ✔  Allowed to push to the Git repository
[3:53:31 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/changelog"
[3:53:31 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/changelog"
[3:53:31 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/exec"
[3:53:31 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/exec"
[3:53:31 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/git"
[3:53:31 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/git"
[3:53:31 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/gitlab"
[3:53:31 AM] [semantic-release] [@semantic-release/gitlab] › ℹ  Verify GitLab authentication (https://gitlab.com/api/v4)
[3:53:31 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/gitlab"
[3:53:31 AM] [semantic-release] › ℹ  Found git tag v1.3.92 associated with version 1.3.92 on branch master
[3:53:31 AM] [semantic-release] › ℹ  Found 1 commits since last release
[3:53:31 AM] [semantic-release] › ℹ  Start step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[3:53:31 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analyzing commit: feat: add address events
This adds the address events to the list to be processed and sent to
the external event bus.
[3:53:31 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  The release type for the commit is minor
[3:53:31 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analysis of 1 commits complete: minor release
[3:53:31 AM] [semantic-release] › ✔  Completed step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[3:53:31 AM] [semantic-release] › ℹ  Start step "analyzeCommits" of plugin "@semantic-release/exec"
[3:53:31 AM] [semantic-release] › ✔  Completed step "analyzeCommits" of plugin "@semantic-release/exec"
[3:53:31 AM] [semantic-release] › ℹ  The next release version is 1.4.0
[3:53:31 AM] [semantic-release] › ℹ  Start step "verifyRelease" of plugin "@semantic-release/exec"
[3:53:31 AM] [semantic-release] › ✔  Completed step "verifyRelease" of plugin "@semantic-release/exec"
[3:53:31 AM] [semantic-release] › ℹ  Start step "generateNotes" of plugin "@semantic-release/release-notes-generator"
[3:53:31 AM] [semantic-release] › ✘  Failed step "generateNotes" of plugin "@semantic-release/release-notes-generator"
[3:53:31 AM] [semantic-release] › ✘  An error occurred while running semantic-release: Error: 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."
    at Object.<anonymous> (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js:19:13)
    at Object.wrapper (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js:15:19)
    at Object.eval [as main] (eval at createFunctionContext (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js:260:23), <anonymous>:10:364)
    at main (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/runtime.js:206:32)
    at ret (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/runtime.js:210:12)
    at ret (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js:519:21)
    at file:///usr/local/lib/node_modules/semantic-release/node_modules/conventional-changelog-writer/dist/template.js:64:26
    at async write (file:///usr/local/lib/node_modules/semantic-release/node_modules/conventional-changelog-writer/dist/writers.js:75:18)
    at async writeChangelogString (file:///usr/local/lib/node_modules/semantic-release/node_modules/conventional-changelog-writer/dist/writers.js:100:16)
    at async validator (file:///usr/local/lib/node_modules/semantic-release/lib/plugins/normalize.js:36:24) {
  description: undefined,
  fileName: undefined,
  lineNumber: undefined,
  endLineNumber: undefined,
  number: undefined,
  pluginName: '@semantic-release/release-notes-generator'
}
Error: 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."
    at Object.<anonymous> (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js:19:13)
    at Object.wrapper (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js:15:19)
    at Object.eval [as main] (eval at createFunctionContext (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js:260:23), <anonymous>:10:364)
    at main (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/runtime.js:206:32)
    at ret (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/runtime.js:210:12)
    at ret (/usr/local/lib/node_modules/semantic-release/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js:519:21)
    at file:///usr/local/lib/node_modules/semantic-release/node_modules/conventional-changelog-writer/dist/template.js:64:26
    at async write (file:///usr/local/lib/node_modules/semantic-release/node_modules/conventional-changelog-writer/dist/writers.js:75:18)
    at async writeChangelogString (file:///usr/local/lib/node_modules/semantic-release/node_modules/conventional-changelog-writer/dist/writers.js:100:16)
    at async validator (file:///usr/local/lib/node_modules/semantic-release/lib/plugins/normalize.js:36:24) {
  description: undefined,
  fileName: undefined,
  lineNumber: undefined,
  endLineNumber: undefined,
  number: undefined,
  pluginName: '@semantic-release/release-notes-generator'
}

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with the global npm install and semantic-release 25.0.9 command shown in the issue, focusing on the generateNotes entry point in @semantic-release/release-notes-generator. Trace the conventional-changelog-conventionalcommits and conventional-changelog-writer versions involved, then verify that semantic-release completes generateNotes without the missing-helper error.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
release
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.