CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/npm-semantic-release--release-notes-generator

Semantic-release plugin to generate changelog content with conventional-changelog

51%

Overall

Evaluation51%

0.78x

Agent success when using this tile

Overview
Eval results
Files

task.mdevals/scenario-9/

Revert-Aware Notes Builder

Create a utility that turns a list of conventional commits into release notes while eliminating noise from empty messages, merges (when disabled), and revert pairs.

Capabilities

Release notes from commits

  • Given commits with feature and fix messages plus repository URL, last tag, and next tag, produce markdown release notes grouped by type and include a compare link between the tags. @test

Skip empty and merge commits

  • Commits with missing or blank messages are ignored; when the merges option is false, commits whose subject starts with "Merge" are excluded from the output. @test

Drop revert pairs

  • When a commit reverts a previous commit (subject or footer indicates a revert), neither the revert nor the reverted commit appears in the generated release notes. @test

Honor parser/writer overrides

  • Custom parser or writer overrides supplied in configuration merge with the defaults before release notes are generated (e.g., adjusting commit sort order). @test

Implementation

@generates

API

/**
 * Build revert-aware release notes for a set of conventional commits.
 *
 * @param {Object} pluginConfig - Release-note configuration.
 * @param {string} [pluginConfig.preset] - Conventional changelog preset name.
 * @param {string} [pluginConfig.config] - Requireable custom preset package.
 * @param {Object} [pluginConfig.parserOpts] - Parser overrides merged with the preset/config.
 * @param {Object} [pluginConfig.writerOpts] - Writer overrides merged with the preset/config.
 * @param {Object} [pluginConfig.presetConfig] - Options forwarded to the preset loader.
 * @param {boolean} [pluginConfig.merges=true] - Whether merge commits should be kept.
 * @param {Object} context - Semantic-release style context.
 * @param {Array<{hash:string,message:string}>} context.commits - Commits to analyze.
 * @param {Object} context.lastRelease - Last release info; includes gitTag or gitHead.
 * @param {Object} context.nextRelease - Next release info; includes gitTag and version.
 * @param {Object} context.options - Contains repositoryUrl and related settings.
 * @param {string} context.cwd - Current working directory for resolving presets/configs.
 * @returns {Promise<string>} Markdown or HTML release notes string.
 */
export async function generateFilteredNotes(pluginConfig, context);

Dependencies { .dependencies }

@semantic-release/release-notes-generator { .dependency }

Parses conventional commits, filters revert pairs, and renders formatted release notes.

tessl i tessl/npm-semantic-release--release-notes-generator@14.0.0

tile.json