Skip to content

docs: add towncrier changelog management - #398

Merged
TKIPisalegacycipher merged 1 commit into
mainfrom
chore/changelog-towncrier
Jun 10, 2026
Merged

docs: add towncrier changelog management#398
TKIPisalegacycipher merged 1 commit into
mainfrom
chore/changelog-towncrier

Conversation

@TKIPisalegacycipher

Copy link
Copy Markdown
Collaborator

What

Introduce towncrier-based changelog management to eliminate CHANGELOG.md merge conflicts across the main/beta/httpx branch model.

Contributors add one news fragment per user-facing change under changelog.d/; towncrier renders them into CHANGELOG.md at release time. Different filenames mean zero conflicts on parallel branches.

Changes

  • pyproject.toml: towncrier config ([tool.towncrier] + 6 change types) and dev dependency
  • CHANGELOG.md: skeleton with the towncrier release-notes marker
  • changelog.d/.gitignore: keeps the empty fragment dir tracked
  • create-release.yml: Build changelog step renders + commits CHANGELOG.md before the release is cut (needs contents: write)
  • CONTRIBUTING.md, docs/releasing.md: fragment authoring + release workflow docs
  • .gitignore: ignore .worktrees/

Rollout (trunk-down)

This is the infra, targeting main as the single source of truth. After merge:

  1. Merge mainbetahttpx so the infra propagates
  2. Each branch accumulates its own fragments; towncrier consumes them at that branch's next release

The httpx migration fragment already lives on httpx and will be consumed once this infra reaches it.

Verification

towncrier build --draft renders correctly; uv.lock regenerated with towncrier.

🤖 Generated with Claude Code

Introduce towncrier-based changelog management to avoid CHANGELOG.md
merge conflicts across the main/beta/httpx branch model. Contributors
add one news fragment per user-facing change under changelog.d/;
towncrier renders them into CHANGELOG.md at release time.

- pyproject.toml: towncrier config + dev dependency
- CHANGELOG.md: skeleton with towncrier marker
- changelog.d/.gitignore: keep empty fragment dir tracked
- create-release.yml: build + commit changelog before release
- CONTRIBUTING.md, docs/releasing.md: fragment workflow docs

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@TKIPisalegacycipher
TKIPisalegacycipher merged commit c41c9e5 into main Jun 10, 2026
14 checks passed
@TKIPisalegacycipher
TKIPisalegacycipher deleted the chore/changelog-towncrier branch June 10, 2026 18:18
TKIPisalegacycipher added a commit that referenced this pull request Jun 10, 2026
Cherry-pick of the changelog infra from main (#398) onto beta, so the
branch gets towncrier without entangling unrelated generated-API spec
drift. beta accumulates its own changelog.d/ fragments, consumed by
towncrier at the next beta release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
TKIPisalegacycipher added a commit that referenced this pull request Jun 10, 2026
Cherry-pick of the changelog infra from main (#398) onto httpx. Kept
httpx's own dev deps (respx, pytest-benchmark, hypothesis,
pytest-json-report) alongside towncrier; regenerated uv.lock. The
existing +httpx-migration fragment renders correctly in a draft build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.

1 participant