Skip to content

Manage CHANGELOG.rst with chloggen#31

Merged
mmanciop merged 2 commits into
mainfrom
issue_28_chloggen_changelog
Jul 23, 2026
Merged

Manage CHANGELOG.rst with chloggen#31
mmanciop merged 2 commits into
mainfrom
issue_28_chloggen_changelog

Conversation

@ocelotl

@ocelotl ocelotl commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Closes #28.

Adopt chloggen, the OpenTelemetry changelog tool, so changes are recorded as individual .chloggen/*.yaml entry files and compiled into a dated version section at release time instead of hand-editing CHANGELOG.rst.

Approach

CHANGELOG.rst stays reStructuredText — the whole repo is rst. chloggen's renderer is format-agnostic via its summary_template config key, so this ships a custom rst template rather than converting the changelog to Markdown. Released history is left byte-for-byte unchanged.

Changes

  • .chloggen/config.yaml, TEMPLATE.yaml, summary.tmpl — chloggen config plus a custom reStructuredText summary template (rst section underlines, ``component`` inline literals, anonymous `#N <url>`__ issue links, indent-based subtext). Single changelog → CHANGELOG.rst; components unrestricted.
  • CHANGELOG.rst — adds the <!-- next version --> insertion marker (written as an rst comment) and an intro describing the workflow.
  • CONTRIBUTING.rst — new "Changelog" section: create an entry by copying TEMPLATE.yaml or via chloggen new, field reference, and how to validate locally.
  • RELEASING.rst — the release step now runs chloggen update --version "<version> - <date>" (which consumes the entry files) instead of hand-editing.
  • .github/workflows/ci.yml — a new changelog job runs chloggen validate on every PR (via setup-go + go run …@v0.30.0; no Go dependency is added to the Python project).

Verification

  • chloggen validate passes on the clean setup.
  • A real chloggen update renders correct rst, and the resulting CHANGELOG.rst parses clean through docutils at the default warning level.

Notes

  • The changelog was all released history with no hand-written "Unreleased" section, so no lossy conversion was needed.
  • CI validates entries but does not force every PR to include one; adding an entry for user-facing changes is documented as a convention in CONTRIBUTING.rst.

Adopt chloggen (the OpenTelemetry changelog tool) so changes are recorded as
individual .chloggen/*.yaml entry files and compiled into a dated version
section at release time, instead of hand-editing CHANGELOG.rst.

- Add .chloggen/config.yaml, TEMPLATE.yaml, and a custom reStructuredText
  summary template so chloggen renders into CHANGELOG.rst rather than its
  built-in Markdown; generated sections keep the existing rst style.
- CHANGELOG.rst gains the "<!-- next version -->" insertion marker (written as
  an rst comment) and an intro describing the workflow; released history is
  unchanged.
- CONTRIBUTING.rst documents how to add an entry; RELEASING.rst replaces the
  hand-edit step with "chloggen update".
- CI validates pending entries on every pull request via a new changelog job.

Closes #28
@ocelotl
ocelotl marked this pull request as ready for review July 22, 2026 17:12
Comment thread .chloggen/summary.tmpl
Match the changelog conventions used in dash0hq/dash0-cli, keeping the output
reStructuredText (the whole repo is rst):

- config.yaml: name the changelog `user` (was `default`), as in dash0-cli.
- TEMPLATE.yaml: drop the `telemetry` change_type (not in dash0-cli and with no
  section in summary.tmpl) and add the `change_logs` field with the
  chore/"Skip Changelog" note.
- summary.tmpl: Title-Case the section headings (Breaking Changes, New
  Components, Bug Fixes) to match dash0-cli.
- Makefile: add dash0-cli-style `chlog-new`/`chlog-validate`/`chlog-preview`/
  `chlog-update` targets that drive chloggen via `go run` (no Go dependency
  added to the Python project).
- docs/changelog-maintenance.rst: add the maintenance guide dash0-cli keeps in
  docs/, adapted to rst; CONTRIBUTING.rst now carries only the quick start and
  points to it.
- ci.yml / RELEASING.rst: use the new make targets.

Verified: `chloggen validate` passes, a real `chloggen update` renders correct
rst, and the resulting CHANGELOG.rst parses clean through docutils.
@ocelotl
ocelotl requested a review from mmanciop July 22, 2026 21:42
@mmanciop
mmanciop merged commit e1509f7 into main Jul 23, 2026
8 checks passed
@mmanciop
mmanciop deleted the issue_28_chloggen_changelog branch July 23, 2026 04:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate to chloggen to manage the Changelog

2 participants