You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
👷 ci(release): wire up towncrier-driven release pipeline
The news fragments under docs/changelog/ were never consumed because the
project shipped only the PyPI publish workflow without the towncrier
config, template, rolled-up changelog, or release script that drives
them. Tags were being cut by hand and the urls.Changelog link pointed at
GitHub auto-generated notes, leaving the .rst fragments as dead weight.
Port the full pipeline from tox-dev/tox so a release is a single
workflow_dispatch click: prepare-release.yaml computes the next version
(auto-detects major/minor/patch from breaking/feature fragment counts),
then tox -e release runs tasks/release.py which calls towncrier build,
commits the assembled docs/changelog.rst, tags, force-pushes main, and
opens the GitHub release. The existing tag-push release.yaml handles
PyPI publishing unchanged.
docs/changelog.rst is backfilled for 1.0.0 through 1.3.0 from git
history so the rendered changelog is a single source of truth rather
than splitting history between Sphinx and GitHub Releases. The
65.feature.rst fragment is dropped because it already shipped in 1.3.0
via PR #71 and would otherwise double-count on the next release. The
sphinxcontrib-towncrier extension renders unreleased fragments as a
draft section in the docs.
0 commit comments