Skip to content

Release Notes - v0.14.0

Overview

This release adds release-level commit tracking to the changelog schema and Markdown output. Following GitHub's UI approach, the tagged commit SHA can now be displayed in release headings for improved traceability between changelogs and git history.

Highlights

  • New commit field at the release level in JSON schema
  • Release commit displayed in Markdown heading (GitHub-style)
  • Backfilled commit hashes for all previous releases (v0.1.0-v0.13.0)

New Features

Release-Level Commit Field

Track the commit SHA that a release tag points to:

{
  "releases": [
    {
      "version": "v1.0.0",
      "date": "2026-04-25",
      "commit": "abc1234",
      "highlights": [
        { "description": "Initial release" }
      ]
    }
  ]
}

Markdown Heading with Commit

When IncludeCommits option is enabled (default), the release commit appears in the heading:

## [v1.0.0] - 2026-04-25 ([`abc1234`](https://github.com/owner/repo/commit/abc1234))

This follows GitHub's release UI pattern, making it easy to navigate from changelog to the exact tagged commit.

Programmatic Access

The Release struct now includes a Commit field:

import "github.com/grokify/structured-changelog/changelog"

cl, _ := changelog.LoadFile("CHANGELOG.json")
for _, release := range cl.Releases {
    fmt.Printf("%s tagged at %s\n", release.Version, release.Commit)
}

Use Cases

  • Traceability: Link changelog entries directly to tagged commits
  • Auditing: Verify which code state corresponds to each release
  • Tooling: Automated release verification and validation
  • Navigation: One-click access from changelog to git history