FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

🚀 ci(release): towncrier changelog + publish on tag push by gaborbernat · Pull Request #509 · tox-dev/platformdirs · GitHub

🚀 ci(release): towncrier changelog + publish on tag push - #509

Merged
gaborbernat merged 3 commits into
tox-dev:mainfrom
gaborbernat:fix/release-pipeline
Jul 18, 2026
Merged

🚀 ci(release): towncrier changelog + publish on tag push#509
gaborbernat merged 3 commits into
tox-dev:mainfrom
gaborbernat:fix/release-pipeline

Conversation

gaborbernat commented Jul 18, 2026
edited
Loading

Copy link
Copy Markdown
Member

Cutting 4.10.1 produced a tag and a GitHub release but no PyPI upload, as issue #508 reports. 🐛 The release job that publishes ran only when someone dispatched the Release workflow with a semver bump. A tag or release created by hand ran neither the changelog build nor the upload, so the version stalled with no wheel on PyPI and no changelog section on readthedocs.

This mirrors the release setup filelock uses. tasks/changelog.py, which scraped merged PR titles at release time, gives way to towncrier: each user-facing change drops a fragment under docs/changelog/, and check requires one on every such PR. A Prepare release workflow runs towncrier build to fold the fragments into docs/changelog.rst, commits, and pushes the tag with RELEASE_TOKEN so the push triggers workflows. ✨ Release then fires on the tag ref, builds the sdist and wheel, and publishes through PyPI trusted publishing. A guard greps docs/changelog.rst for the tag's version and stops when the section is missing, so a hand-cut tag fails rather than shipping an undocumented release or skipping PyPI.

readthedocs renders the pending fragments as a draft Unreleased section through sphinxcontrib-towncrier, so unreleased notes stay visible between releases. The 4.10.1 fragment for the ctypes leak fix ships here so the next release run folds it into the changelog.

gaborbernat added the bug Something isn't working label Jul 18, 2026
gaborbernat requested a review from ofek as a code owner July 18, 2026 02:59
Mirror the filelock setup: news fragments under docs/changelog/ are folded
into docs/changelog.rst at release time by towncrier, and readthedocs renders
the pending fragments as a draft Unreleased section.

Replaces tasks/changelog.py, which derived the changelog from merged PR titles
only when the release job ran; a tag cut by hand produced no changelog at all.
The release job only published when the Release workflow was dispatched with a
semver bump. A tag or GitHub release created by hand ran neither the changelog
build nor the upload, so 4.10.1 shipped a tag and GitHub release but never
reached PyPI (issue tox-dev#508).

Adopt the filelock split: Prepare release builds the changelog with towncrier,
commits it, and pushes the tag with RELEASE_TOKEN; Release then triggers on the
tag ref and publishes. A guard refuses to publish a version docs/changelog.rst
does not document, and check requires a news fragment on every user-facing PR.
The 4.10.1 tag was cut without the release workflow, so its notes were never
written. Add the fragment for the ctypes leak fix so the next release run
folds it into the changelog.
gaborbernat force-pushed the fix/release-pipeline branch from ee79a4e to 199b623 Compare July 18, 2026 03:08
gaborbernat changed the title 🚀 ci(release): publish to PyPI on tag push 🚀 ci(release): towncrier changelog + publish on tag push Jul 18, 2026
gaborbernat enabled auto-merge (squash) July 18, 2026 03:10
gaborbernat disabled auto-merge July 18, 2026 03:12
gaborbernat merged commit 42751ce into tox-dev:main Jul 18, 2026
29 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant


Back | FazBrowse Home | New Git URL