Changelog Automation Workflow
Capture change notes with each contribution, generate a human-readable changelog at release, and keep breaking changes prominent for consumers.
Objective
Produce an accurate, readable changelog from contributor input without hand-writing it at release.
Environment
- A change-note convention or tool
- Conventional commits or a changeset flow
Steps
1. Require contributors to add a change
Require contributors to add a change note with the change.
Expected state: Intent is captured at the source.
2. Generate the changelog from the notes
Generate the changelog from the notes at release time.
Expected state: The changelog reflects real changes.
3. Highlight breaking changes and migration steps
Highlight breaking changes and migration steps prominently.
Expected state: Consumers see impactful changes first.
4. Link entries to issues or pull
Link entries to issues or pull requests.
Expected state: Readers can get context.
Decision points
Automated or curated changelog?
- Automated with editing
- Fully automated
Automate the draft then edit for clarity; fully automated lists are often unreadable.
Include internal refactors?
- No, user-facing only
- Everything
User-facing changes plus notable fixes; listing internal refactors buries what matters.
Expected outcome
A changelog generated from contributor notes that accurately reflects the release and leads with breaking changes.
Verification
Confirm the generated changelog lists every user-facing change in the release and that breaking changes include migration guidance.
Cleanup
Publish the changelog and tag the release.
Overview
Produce an accurate, readable changelog from contributor input without hand-writing it at release. Confirm the generated changelog lists every user-facing change in the release and that breaking changes include migration guidance.
Steps
- Require contributors to add a change note with the change. Expected state: Intent is captured at the source.
- Generate the changelog from the notes at release time. Expected state: The changelog reflects real changes.
- Highlight breaking changes and migration steps prominently. Expected state: Consumers see impactful changes first.
- Link entries to issues or pull requests. Expected state: Readers can get context.
npx conventional-changelog -p angular -i CHANGELOG.md -s
# review and edit before publishing
Verification
- A changelog generated from contributor notes that accurately reflects the release and leads with breaking changes.
Decision points
- Automated or curated changelog? Options: Automated with editing; Fully automated. Recommended: Automate the draft then edit for clarity; fully automated lists are often unreadable.
- Include internal refactors? Options: No, user-facing only; Everything. Recommended: User-facing changes plus notable fixes; listing internal refactors buries what matters.