Skip to content

Latest commit

 

History

History
71 lines (47 loc) · 1.73 KB

File metadata and controls

71 lines (47 loc) · 1.73 KB

Release Notes

Purpose

navigation_3d generates changelog drafts and release notes from Conventional Commits, merged PR titles, and Git tags.

The current policy is:

  • development changes accumulate into a draft changelog
  • stable version descriptions are frozen on release tags
  • Git tags are the source of truth for release versions

Local Draft Generation

Generate a draft from the latest tag to HEAD:

./scripts/release_notes.py --draft --output /tmp/release-notes.md

Generate a draft for an explicit range:

./scripts/release_notes.py --from v0.1.0 --to HEAD --title Unreleased

The output is grouped by commit type:

  • feat
  • fix
  • docs
  • refactor
  • test
  • chore
  • style
  • breaking

Repository Changelog

CHANGELOG.md is the repository-level rolling changelog. It is generated from the same tag and Conventional Commit history, and can be refreshed locally or by the changelog sync workflow:

./scripts/update_changelog.py --output CHANGELOG.md

When develop changes, the changelog sync workflow can open a PR that refreshes the file using the same generator logic.

Tag-Based Release Notes

When a release tag is pushed, the repository automatically generates a GitHub Release body from the tag range and publishes it through:

This workflow uses the same generator script as the local draft flow:

Archiving

If the team wants to keep a repository-local archive, the generated Markdown can be saved under:

  • docs/releases/<tag>.md

That archive is optional and can be updated manually from the generated output when a release is frozen.