Skip to content

👷 ci(release): validate notes before PyPI - #292

Draft
gaborbernat wants to merge 59 commits into
tox-dev:mainfrom
gaborbernat:fix/release-changelog-format
Draft

gaborbernat wants to merge 59 commits into
tox-dev:mainfrom
gaborbernat:fix/release-changelog-format

Conversation

@gaborbernat

@gaborbernat gaborbernat commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Use github-workflows #3 and release-creator #11 for named fragments, protected release preparation, tagged artifact checks, and GitHub notes. Preparation runs prek before the repository-scoped App pushes a commit and tag. The tag workflow stages a matching GitHub Release draft, uploads only missing exact files to PyPI on retry, verifies the complete PyPI set, then publishes the draft. Contents-write jobs use the numeric-tag release environment.

The changelog covers every PyPI version. The Python 3.11 support entry in 0.3.0 comes from PR #31. The full lock includes build and package-check tools; hatch-fancy-pypi-readme provides working changelog and contribution links in PyPI metadata. The shared workflow remains in a draft PR; release-creator 0.5.1 is locked from PyPI.

The required PR check enforces a seven-day cooldown on pre-commit.ci hook updates using the live head and PR update time.

Release jobs now install only the tool groups they use from the full project lock.

@gaborbernat gaborbernat added bug Something isn't working skip news No user-facing changelog entry is needed labels Oct 19, 2026
@gaborbernat
gaborbernat enabled auto-merge (squash) October 19, 2026 18:18
@gaborbernat
gaborbernat disabled auto-merge October 19, 2026 18:21
@gaborbernat
gaborbernat force-pushed the fix/release-changelog-format branch from f62fedb to c878e06 Compare October 19, 2026 20:32
@gaborbernat gaborbernat changed the title 🐛 fix(release): check generated changelog 🩹 fix(release): validate the full release path Oct 19, 2026
@gaborbernat gaborbernat changed the title 🩹 fix(release): validate the full release path 🐛 fix(release): validate the release path Oct 20, 2026
The release-only pylock omitted other dependency groups and narrowed
the usable Python range. Export all selections from uv's project
resolution and keep release installs scoped to their group.
@gaborbernat gaborbernat changed the title 🐛 fix(release): validate the release path 🐛 fix: check assembled release notes Oct 20, 2026
@gaborbernat gaborbernat changed the title 🐛 fix: check assembled release notes 👷 ci(release): validate notes before PyPI Oct 21, 2026
@gaborbernat gaborbernat removed the skip news No user-facing changelog entry is needed label Oct 21, 2026
Stage a matching GitHub Release draft before PyPI upload. On retry, compare the original built files with PyPI, upload only missing files, and verify the complete set before publishing the draft.
Use release-creator 0.5.0 from the project lock. Open weekly release-tool
PRs with the repo-only App so pull request checks run on those changes.
The App needs Pull requests write as well as Contents write.
Use the current shared actions and release-creator 0.5.1 to enforce
the full project lock during release work. Rerun bot PR cooldown checks
daily after their seven-day age gate.

This branch has not been deployed

No deployments
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