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-3/

Release Notes Markdown Renderer

Generate Markdown release notes from conventional commit metadata and release context using a configurable changelog writer.

Capabilities

Build release notes from commits

  • With previous and current tags plus commits of types feat and fix, render release notes that start with a compare range for the tags and include separate sections titled "Features" and "Bug Fixes" containing each commit's scope (if present), subject, and a link to the commit hash. @test

Include repository links

  • Normalize repository URL formats (including stripping .git) so compare and commit links in the release notes point to HTTPS URLs using the detected owner/repo path. @test

Support custom sections

  • When given a section override that renames chore to "Maintenance" and suppresses test commits, the rendered notes include a "Maintenance" section for chore entries and omit test-related commits entirely. @test

Surface breaking changes

  • Commits that include breaking-change notes produce a "BREAKING CHANGES" section summarizing the note text and referencing the commit responsible. @test

Implementation

@generates

API

export type ConventionalCommit = {
  type: string;
  scope?: string | null;
  subject: string;
  hash: string;
  notes?: Array<{ title?: string; text: string }>;
  references?: Array<{ issue?: string | number; action?: string; prefix?: string }>;
};

export type ReleaseContext = {
  repositoryUrl: string;
  previousTag: string;
  currentTag: string;
  host?: string;
  owner?: string;
  repository?: string;
  compareUrlFormat?: string;
  commitUrlFormat?: string;
};

export type SectionOverrides = {
  [type: string]: string | false;
};

export interface ReleaseNotesOptions {
  commits: ConventionalCommit[];
  context: ReleaseContext;
  sectionOverrides?: SectionOverrides;
}

export function generateReleaseNotes(options: ReleaseNotesOptions): Promise<string>;

Dependencies { .dependencies }

Release notes generator { .dependency }

Transforms conventional commit metadata into Markdown release notes using changelog writer configurations. @satisfied-by

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

tile.json