ADR-0002: Standardized changelog and release documentation in A2C
- Status: Accepted
- Date: 2026-06-12
- Deciders: Michel Gillet
Context
A2C-governed repositories need a consistent, human-readable record of what changed in each released version. Git commit history alone is too granular and noisy for consumers, release planning, and adoption decisions.
Without an explicit standard, projects omit changelogs, mix commit dumps with release notes, or use incompatible formats that block semi-automated release workflows.
Decision
Every A2C-governed software repository must maintain a root-level CHANGELOG.md file.
Standards
- Format: Keep a Changelog 1.1.0
- Versioning: Semantic Versioning 2.0.0
Intent
- Provide a curated, human-readable history of notable changes per released version
- Separate internal commit history from release-level notes
- Support automated or semi-automated release workflows that rely on semver and changelog entries
When to update
Update CHANGELOG.md when changes are user-visible or release-relevant:
- features, fixes, breaking changes, deprecations, removals, security fixes
Maintain an ## [Unreleased] section on active development branches. Curate entries as work lands; finalize into a version heading at release.
Do not require changelog entries for minor internal refactors, non-user-visible tooling tweaks, or trivial documentation fixes that do not affect releases.
Required structure
Aligned with Keep a Changelog:
## [Unreleased]at the top (when using unreleased workflow)- Categorized subsections:
### Added,### Changed,### Deprecated,### Removed,### Fixed,### Security(use only sections that apply) - One heading per release:
## [X.Y.Z] - YYYY-MM-DD - Optional compare/tag footer links when the project uses them
Relationship with ADRs
| Artifact | Captures |
|---|---|
| ADR | Why a significant architectural decision was made |
| CHANGELOG | What changed in which version (curated list) |
Changelog entries may reference ADR numbers when helpful. ADRs do not replace changelog entries.
Release automation
Operational bump-and-release mechanics (scripts, CI verify jobs, tag discipline) are defined in ADR-0004. This ADR defines changelog and semver content standards; ADR-0004 defines how releases are produced in CI.
Consequences
Positive
- Consistent release communication across A2C-governed projects
- Clear separation between decision history (ADRs) and release history (changelog)
- Enables
bump_release.py-style workflows and consumer version adoption
Negative
- Maintainers must curate
[Unreleased]during development, not only at release time - Trivial changes require judgment about release relevance
References
- docs/workflow/changelog-policy.md
- ADR-0003 —
check-changeloghook enforces staging discipline (complements this ADR) - ADR-0004 — standardized CI bump, tag, and verify flow
- rules/11-changelog-policy.md
- docs/release-pipeline.md
- templates/changelog/CHANGELOG-template.md