[codex] Drive changelog releases from towncrier#34
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit b11fad6. Configure here.
| exit 1 | ||
| fi | ||
| RELEASE: ${{ steps.calver.outputs.release }} | ||
| run: uv run --extra=release towncrier build --yes --version "$RELEASE" |
There was a problem hiding this comment.
Towncrier not in release extra, workflow will fail
High Severity
The workflow runs uv run --extra=release towncrier build but towncrier is only declared under optional-dependencies.dev, not optional-dependencies.release (which only contains check-wheel-contents). On a clean CI runner, uv will only install the release extra's dependencies, so the towncrier CLI won't be available and both changelog steps will fail.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit b11fad6. Configure here.


Summary
This switches release changelog handling to the same towncrier-based flow used by literalizer:
Nextchangelog section update withtowncrier buildnewsfragments/directoryNextentries into initial news fragmentsValidation
uv run --extra=release towncrier build --draft --version 2099.01.01uvx --from actionlint-py actionlint .github/workflows/release.ymluv run --extra=dev pyproject-fmt --check --no-print-diff pyproject.tomlwhere the repo has a dev extragit commitandgit pushNote
Medium Risk
Release automation now builds both
CHANGELOG.rstand GitHub release bodies from Towncrier fragments, which can affect tagging/publishing if the new workflow or templates mis-render or fail in CI.Overview
Switches the release workflow from manually editing a
Nextsection to runningtowncrier buildto both generate GitHub release notes (bodyFile: release-notes.md) and updateCHANGELOG.rst, committing the consumednewsfragments/in the same bump commit.Adds Towncrier into the project via new
[tool.towncrier]config and a custom template (docs/towncrier_template.rst.jinja), introduces anunreleaseddocs page rendered from draft fragments during Sphinx builds (sphinxcontrib.towncrier.ext), and updates manifest tooling to ignorenewsfragments/**.Reviewed by Cursor Bugbot for commit b11fad6. Bugbot is set up for automated code reviews on this repo. Configure here.