Changelog-Based Release System
Overview
This repository uses a changelog-based release system.
Releases are triggered by updating changelogs and merging to main - no manual tagging required.
Key principle: The changelog is the source of truth for releases.
When a new version appears in a changelog and merges to main, the release workflow automatically creates a git tag and triggers the appropriate release pipeline.
How It Works
The release process follows a simple flow:
- Check for changes - Are there unreleased changes since the last release?
- Update changelog - Finalize the changelog with a new version entry
- Create PR - Submit the changelog update for review
- Merge to main - After approval, merge triggers automation
- Automatic tagging -
release-auto.ymlworkflow creates git tag - Build and publish - Module-specific workflow builds artifacts
Developer
│
▼
┌──────────────────┐
│ Check pending │ Are there changes to release?
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Update changelog │ Finalize version entry
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Create PR │ Submit for review
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Merge to main │ After approval
└────────┬─────────┘
│
─────────┼─────────────────────────────────────────
│ CI/CD (automated)
▼
┌──────────────────┐
│ Auto-tagging │ Creates git tag from changelog
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Build & publish │ Module-specific release workflow
└──────────────────┘
Why Changelog-Based?
Traditional Approach Problems
- Manual git tagging is error-prone
- Easy to forget to update changelog
- Tag creation and changelog updates can get out of sync
- Multiple steps to coordinate
Changelog-Based Benefits
- Single source of truth - Changelog drives the release
- Reviewed releases - Changelog changes go through PR review
- Automatic tagging - No manual git tag commands
- Audit trail - Every release decision is a reviewed commit
Reference Documentation
For complete CLI commands and workflow details, see:
Complete implementation guide including:
eac release pending- Check for unreleased changeseac release this- Finalize changelog for releaseeac release tag-pending- Check for untagged versionseac validate release- Validate changelog format- Workflow automation details
- Troubleshooting guide
Changelog Format Specification
Keep a Changelog format details
Related Documentation
- Release Notes - How to write effective release notes
- Release Evidence - What evidence is required for approval
- Commit Messages - Conventional commit format
Tutorials | How-to Guides | Explanation | Reference
You are here: Explanation — understanding-oriented discussion that clarifies concepts.