Skip to content
AyoKoding

Artifact: Changelog Entry (Keep a Changelog)

ex-05 · exercises co-04 · a real CHANGELOG.md [Unreleased] entry, in Keep a Changelog 1.1.0's format.

Keep a Changelog 1.1.0 defines exactly six categories -- Added, Changed, Deprecated, Removed, Fixed, Security -- and every entry lives under an ## [Unreleased] heading until the next tagged release moves it under a dated version heading.

# Changelog
 
All notable changes to this project are documented in this file, in the format defined by
Keep a Changelog (keepachangelog.com/en/1.1.0/), and this project adheres to Semantic
Versioning (semver.org).
 
## [Unreleased]
 
### Added
 
- `Client.fetch(url, timeout: float = 30.0)` now accepts an optional per-request timeout.
 
### Fixed
 
- `parse_date("")` now returns `None` instead of raising `IndexError` on empty input.
 
## [1.4.0] - 2026-06-02
 
### Added
 
- Initial public release of the `Client` HTTP wrapper.

Verify: both new entries sit under the ## [Unreleased] heading, and each uses exactly one of the six Keep a Changelog category headings (Added for the new timeout parameter, Fixed for the parse_date bug) -- matching categories the format actually defines, not an invented one.

Key takeaway: a changelog entry is one bullet, filed under one of six fixed categories, under Unreleased until release day moves the whole section under a dated version heading.

Why It Matters: a reader deciding whether to upgrade needs "what changed for me," not "what commits happened." The six fixed categories are the whole value: they force every entry into a user-facing shape (Added/Fixed/...) instead of an implementation-facing one -- exactly what the raw commit log (Example 6) fails to do.

Last updated July 17, 2026

Command Palette

Search for a command to run...