SIGN IN SIGN UP

ci: introduce towncrier to generate changelog from fragments (#4573)

* introduce towncrier to generate changelog from fragments

Replace manual CHANGELOG.md editing with towncrier fragment-based changelog
management. Each PR adds a small text file in .changelog/ instead of editing
the changelog directly, eliminating merge conflicts.

Root .changelog/ is used for coordinated releases (most packages).
Per-package .changelog/ dirs are used for independently released packages
(opamp-client, propagator-aws-xray, resource-detector-azure, sdk-extension-aws).

Changes:
- Add towncrier config to root pyproject.toml and 4 independent package
  pyproject.toml files
- Add shared Jinja2 template at scripts/changelog_template.j2
- Replace sed-based changelog generation with towncrier build in all
  release workflows (coordinated + per-package)
- Rewrite changelog CI to use towncrier check for fragment validation
- Add do-not-edit comments and towncrier markers to all CHANGELOG.md files
- Update CONTRIBUTING.md with changelog fragment guidance
- Update RELEASING.md to reflect towncrier workflow
- Add towncrier to dev dependencies

Assisted-by: Claude Opus 4.6

* address review: drop towncrier explanation, add changelog backport

- Remove towncrier explanation sentence from RELEASING.md (per @xrmx)
- Add changelog backport step to prepare-patch-release.yml to sync
  changelog from release branch to main (per @emdneto, matching core)

Assisted-by: Claude Opus 4.6

---------

Co-authored-by: Aaron Abbott <aaronabbott@google.com>
M
Mike Goldsmith committed
a65160059e2380bb09a5105dbdad13c5e360e8f8
Parent: 287a65e
Committed by GitHub <noreply@github.com> on 5/12/2026, 8:19:13 PM