| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
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.
| Back | FazBrowse Home | New Git URL |
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.