-
-
Notifications
You must be signed in to change notification settings - Fork 4
Closed
Description
Problem Statement
Currently, after every new version release, there is a manual effort required to draft and publish release notes. These notes are essential to communicate what has changed, improvements made, and any caveats or important considerations for users when using the new release. This process can be inconsistent, error-prone, and time-consuming.
Proposed Solution
Introduce an automated or semi-automated system within the repository to generate release notes upon publishing a new version. The system should:
- Collect all relevant commits, merged pull requests, and notable changes since the last release.
- Allow maintainers to add custom comments or important notes regarding breaking changes, migration steps, or usage recommendations.
- Structure the notes with clear sections: Features Added, Bug Fixes, Breaking Changes, Important Notes.
- Optionally, use a templating approach so every release note is consistent and comprehensive.
- Integrate with the release process, so generating notes is part of the tag or publish workflow.
Technical Approaches:
- Use existing tools like semantic-release or github-changelog-generator.
- Implement a GitHub Action that generates a draft release note based on commits and PR descriptions, then allows manual editing before publishing.
- Store release note templates and documentation for contributing release-specific notes in the repo.
Alternatives Considered
- Continue with fully manual release note drafting. This is flexible but not scalable or consistent.
- Use a bot to auto-generate notes only from commit messages; however, this may lack context and miss important warnings unless commit discipline is strong.
- Rely on contributors to manually tag "release-note" items, which can help but requires consistent developer engagement.
Additional Context
Automating release note generation improves consistency and saves time. It ensures end-users and contributors have a clear understanding of every change and how the release may affect their usage.
References:
Suggested Next Steps
- Decide on the level of automation required (full or draft/manual approval).
- Choose and configure a release note tool or GitHub Action.
- Define note template sections and update the repo's contributing guidelines.
- Pilot the process in the next release and refine based on feedback.
Metadata
Metadata
Assignees
Labels
No labels