-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
Description
Summary
Create a release notes generator plugin that produces consistent, well-structured release notes across OpenHands repositories. This plugin can be triggered via GitHub Actions on new release tags following semver patterns (e.g., v*.*.*).
Background
From the Product+App+Agent Coordination Meeting (2026-03-06): Current release notes are inconsistent across repositories—some are too detailed (Software Agent SDK) while others lack sufficient detail (OpenHands). We need a standardized approach.
What Makes Good Release Notes
Principles
- Concise but informative: Not too verbose, but enough context for users to understand impact. In particular, the agent should omit small changes that are not worth mentioning, and group together multiple changes that form a single coherent feature or fix.
- User-focused: Written from the perspective of what users care about, not internal implementation details
- Scannable: Easy to quickly find relevant changes
Structure
Release notes should include these clearly categorized sections:
## [version] - YYYY-MM-DD
### ✨ New Features
- New capabilities and enhancements
### ⚠️ Breaking Changes
- Changes that require user action or may break existing workflows
### 🐛 Bug Fixes
- Issues that have been resolved
### 📚 Documentation
- Documentation improvements (optional, can be collapsed)
### 🏗️ Internal/Infrastructure
- CI/CD, refactoring, dependencies (optional, can be collapsed or omitted)
### 👥 New Contributors
- Highlight first-time contributors with links to their profilesContent Guidelines
- Each entry should be a single line with a link to the PR/commit
- Group related changes together
- Use imperative mood ("Add feature" not "Added feature")
- Include PR number and author:
Add dark mode support (#123) @username - For breaking changes, briefly explain migration path
Implementation Requirements
Trigger
- GitHub Action workflow triggered on release tags matching semver pattern:
v[0-9]+.[0-9]+.[0-9]+* - Can also support manual triggering with tag input
Inputs
tag: The release tag to generate notes forprevious_tag: (optional) Override automatic detection of previous releaseinclude_internal: (optional, default: false) Include internal/infrastructure changes
Behavior
- Detect previous release tag automatically (or use provided override)
- Collect all commits/PRs between previous tag and current tag
- Categorize changes based on:
- Conventional commit prefixes (
feat:,fix:,docs:,chore:,BREAKING:) - PR labels (e.g.,
breaking-change,bug,enhancement,documentation)
- Conventional commit prefixes (
- Identify first-time contributors by checking commit history
- Generate markdown following the structure above
- Output can be used to update GitHub release notes or a CHANGELOG.md file
Example Output
## [v1.2.0] - 2026-03-06
### ✨ New Features
- Add support for Claude Sonnet 4.6 model (#445) @contributor1
- Implement parallel tool execution (#438) @contributor2
### ⚠️ Breaking Changes
- Remove deprecated `--legacy` CLI flag (#456) @maintainer
### 🐛 Bug Fixes
- Fix WebSocket reconnection on network interruption (#451) @contributor3
- Resolve memory leak in long-running sessions (#447) @maintainer
### 👥 New Contributors
- @contributor3 made their first contribution in #451
**Full Changelog**: https://github.com/org/repo/compare/v1.1.0...v1.2.0References
- Discussed in: Product+App+Agent Coordination Meeting (2026-03-06)
- Linear ticket: AGE-859 (will be marked as duplicate of this issue)
- Similar implementations: release-drafter, git-cliff
Reactions are currently unavailable