Addon Release Notes Generator
What
Generate human-readable release notes for addon packages (non-SDK packages like inference addons, decoder, OCR). Collects changes, extracts PRs, validates version bump, and produces a formatted release notes file.
When to Use
- Creating release notes for an addon package
- User explicitly asks to "generate release notes" or "prepare release notes" while working in an addon package
Instructions
Step 1: Identify version and changes (mandatory version bump check)
Identify the full set of changes that will land in main for the PR, and validate the version bump in package.json against main:
Find the PR base and head: The base is main. The head is the current branch/commit that the PR will merge.
Compare against main:
- Use a range like
main...HEAD (or the PR base commit...HEAD) to list commits and diffs.
- Always compare
package.json between main and HEAD.
Mandatory version bump check:
- If the
version in package.json is unchanged compared to main, stop and display this exact warning to the user:
WARNING: VERSION BUMP REQUIRED
The version in package.json is unchanged compared to main.
If this PR includes any changes that must be released in the package, you must bump the package version, commit/push it and re-run this command.
Do not include uncommitted changes or untracked files: If any uncommitted/untracked files are present, ignore them.
The goal is to produce a single, combined change set that reflects what will be merged: all commits on the PR branch versus main only.
Step 2: Collect PRs included in this release
- Extract PR numbers from commit messages in the range
main...HEAD
- Look for patterns like
#123, (#123), or Merge pull request #123
- For each PR found, use
gh pr view <number> to get:
- PR title
- PR number
- PR URL
- Build a list of PRs to include in the release notes
Step 3: Generate Release Notes file
Create release-notes/vX.Y.Z.md with these guidelines:
Format Requirements
Title: # QVAC <package_name_readable> v{VERSION} Release Notes
Replace <package_name_readable> with a corresponding name:
decoder-audio: Audio Decoder
embed-llamacpp: Embeddings Addon
llm-llamacpp: LLM Addon
translation-nmtcpp: NMT Addon
tts-onnx: TTS ONNX Addon
transcription-whispercpp: Transcription Whisper Addon
Introduction: Write a brief 2-3 sentence summary of what this release brings
Sections: Create each section using narrative prose style. Omit a section if there is no information related with it:
- Breaking Changes: Lead with impact, explain what changed and why, provide clear migration steps with before/after code
- New APIs: Describe what's possible now, show practical usage examples
- Features: Explain benefits in user terms, not just what was added
- Bug Fixes: Describe what was broken and how it's fixed
- Other: Summarize briefly
Pull Requests: At the end, include a "## Pull Requests" section listing all PRs in this release:
## Pull Requests
- [#123](https://github.com/tetherto/qvac/pull/123) - PR title here
- [#124](https://github.com/tetherto/qvac/pull/124) - Another PR title
Style Guidelines:
- Use complete sentences, not bullet fragments
- Lead with benefits/impact
- Group related changes together
- Add context where helpful (why this matters)
- Keep code examples clean and commented
- Remove internal jargon, make it accessible
- Skip entries with no informational value -- generic entries like "Updated models" or "Bumped dependencies" without specific details should be omitted
Example
release-notes/vX.Y.Z.md:
# QVAC OCR Addon v0.4.0 Release Notes
This release introduces automated GitHub releases and improves mobile test reliability.
## Features
### Automated GitHub Releases
The release process is now automated with enforced release notes. When a version bump is detected on merge to main, a GitHub release is automatically created using the corresponding release notes file.
## Bug Fixes
### Mobile E2E Test Workflow Fix
Fixed an issue where mobile E2E tests would fail when the "On PR Trigger" workflow was manually run via workflow_dispatch.
## Pull Requests
- [#67](https://github.com/tetherto/qvac/pull/67) - Fix mobile E2E tests workflow_dispatch
- [#70](https://github.com/tetherto/qvac/pull/70) - feat: automate GitHub releases with mandatory release notes
1---2name: qv-addon-release-notes3description: Generate release notes for addon packages (non-SDK inference addons, decoder, OCR). Use when preparing release notes or user asks to "generate release notes" for an addon package.4---56# Addon Release Notes Generator78## What910Generate human-readable release notes for addon packages (non-SDK packages like inference addons, decoder, OCR). Collects changes, extracts PRs, validates version bump, and produces a formatted release notes file.1112## When to Use1314- Creating release notes for an addon package15- User explicitly asks to "generate release notes" or "prepare release notes" while working in an addon package1617## Instructions1819### Step 1: Identify version and changes (mandatory version bump check)2021Identify the full set of changes that will land in `main` for the PR, and **validate the version bump in `package.json`** against `main`:22231. **Find the PR base and head**: The base is `main`. The head is the current branch/commit that the PR will merge.242. **Compare against `main`**:25 - Use a range like `main...HEAD` (or the PR base commit...HEAD) to list commits and diffs.26 - **Always compare `package.json` between `main` and `HEAD`.**273. **Mandatory version bump check**:28 - If the `version` in `package.json` is **unchanged** compared to `main`, **stop and display this exact warning** to the user:2930 -----------------------------------31 WARNING: VERSION BUMP REQUIRED32 The `version` in `package.json` is unchanged compared to `main`.33 If this PR includes any changes that must be released in the package, you **must** bump the package version, commit/push it and re-run this command.34 -----------------------------------35364. **Do not include uncommitted changes or untracked files**: If any uncommitted/untracked files are present, ignore them.3738The goal is to produce a single, combined change set that reflects **what will be merged**: all commits on the PR branch versus `main` only.3940### Step 2: Collect PRs included in this release41421. **Extract PR numbers** from commit messages in the range `main...HEAD`43 - Look for patterns like `#123`, `(#123)`, or `Merge pull request #123`442. **For each PR found**, use `gh pr view <number>` to get:45 - PR title46 - PR number47 - PR URL483. **Build a list** of PRs to include in the release notes4950### Step 3: Generate Release Notes file5152Create `release-notes/vX.Y.Z.md` with these guidelines:5354#### Format Requirements55561. **Title**: `# QVAC <package_name_readable> v{VERSION} Release Notes`57 Replace `<package_name_readable>` with a corresponding name:58 - `decoder-audio`: `Audio Decoder`59 - `embed-llamacpp`: `Embeddings Addon`60 - `llm-llamacpp`: `LLM Addon`61 - `translation-nmtcpp`: `NMT Addon`62 - `tts-onnx`: `TTS ONNX Addon`63 - `transcription-whispercpp`: `Transcription Whisper Addon`64652. **Introduction**: Write a brief 2-3 sentence summary of what this release brings66673. **Sections**: Create each section using narrative prose style. Omit a section if there is no information related with it:68 - **Breaking Changes**: Lead with impact, explain what changed and why, provide clear migration steps with before/after code69 - **New APIs**: Describe what's possible now, show practical usage examples70 - **Features**: Explain benefits in user terms, not just what was added71 - **Bug Fixes**: Describe what was broken and how it's fixed72 - **Other**: Summarize briefly73744. **Pull Requests**: At the end, include a "## Pull Requests" section listing all PRs in this release:75 ```markdown76 ## Pull Requests7778 - [#123](https://github.com/tetherto/qvac/pull/123) - PR title here79 - [#124](https://github.com/tetherto/qvac/pull/124) - Another PR title80 ```81825. **Style Guidelines**:83 - Use complete sentences, not bullet fragments84 - Lead with benefits/impact85 - Group related changes together86 - Add context where helpful (why this matters)87 - Keep code examples clean and commented88 - Remove internal jargon, make it accessible89 - **Skip entries with no informational value** -- generic entries like "Updated models" or "Bumped dependencies" without specific details should be omitted9091### Example9293**release-notes/vX.Y.Z.md:**94```markdown95# QVAC OCR Addon v0.4.0 Release Notes9697This release introduces automated GitHub releases and improves mobile test reliability.9899## Features100101### Automated GitHub Releases102103The release process is now automated with enforced release notes. When a version bump is detected on merge to main, a GitHub release is automatically created using the corresponding release notes file.104105## Bug Fixes106107### Mobile E2E Test Workflow Fix108109Fixed an issue where mobile E2E tests would fail when the "On PR Trigger" workflow was manually run via workflow_dispatch.110111## Pull Requests112113- [#67](https://github.com/tetherto/qvac/pull/67) - Fix mobile E2E tests workflow_dispatch114- [#70](https://github.com/tetherto/qvac/pull/70) - feat: automate GitHub releases with mandatory release notes115```