# Changelog management `CHANGELOG.md` is the release-note source of truth for both ResizeMe implementations. Every pull request must add a concise, user-facing bullet to its **Unreleased** section. The **Changelog** GitHub Actions check enforces this for every PR. ## Writing an entry Place the entry under the most appropriate Keep a Changelog category: ```markdown ## [Unreleased] ### Added - Added a keyboard shortcut for opening the preset picker. ### Fixed - Fixed the menu bar app restoring a minimized window before resizing it. ``` - Describe what users notice, not the implementation detail. - Use one bullet per independently useful change. - Include changes to either the Go/Wails app or the native macOS app in the same root changelog. - Do not remove or rewrite entries written by another pull request. ## Preparing a release Before creating a release tag, turn the Unreleased entries into a versioned section. Use the numeric release version without the platform suffix; the same section supplies both `-mac` and `-windows` releases. ```markdown ## [Unreleased] ## [1.0.3] - 2026-08-12 ### Added - Added a keyboard shortcut for opening the preset picker. ``` Commit that changelog update with the version-file changes. The release tools validate that the selected version has a non-empty versioned section before they create tags. The macOS and Windows workflows extract that section into the published GitHub Release and Sparkle release notes. ## Validation rules | Stage | Required validation | | --- | --- | | Pull request | `CHANGELOG.md` changes and adds at least one `- ` entry while retaining `## [Unreleased]`. | | Tag creation | The matching `## [X.Y.Z] - YYYY-MM-DD` section contains at least one bullet. | | Release workflow | The matching versioned section is extracted into the release notes; the workflow fails if it is missing or empty. | The Release Hub previews Unreleased entries while planning a release and uses the matching versioned section once it exists.