Repository navigation
👷 ci(release): move releases to github-workflows 6.0.1 - #292
Merged
gaborbernat merged 1 commit intoOct 27, 2026
Merged
Conversation
gaborbernat
enabled auto-merge (squash)
October 19, 2026 18:18
gaborbernat
disabled auto-merge
October 19, 2026 18:21
gaborbernat
force-pushed
the
fix/release-changelog-format
branch
from
October 19, 2026 20:32
f62fedb to
c878e06
Compare
gaborbernat
marked this pull request as draft
October 20, 2026 17:51
gaborbernat
force-pushed
the
fix/release-changelog-format
branch
from
October 25, 2026 22:19
62e3eef to
ec016db
Compare
gaborbernat
force-pushed
the
fix/release-changelog-format
branch
from
October 26, 2026 00:00
ec016db to
902ab5f
Compare
gaborbernat
force-pushed
the
fix/release-changelog-format
branch
from
October 26, 2026 01:00
902ab5f to
823a636
Compare
gaborbernat
force-pushed
the
fix/release-changelog-format
branch
4 times, most recently
from
October 26, 2026 16:58
44cb4c2 to
bc8e7bd
Compare
gaborbernat
force-pushed
the
fix/release-changelog-format
branch
from
October 26, 2026 17:12
bc8e7bd to
6bbfc16
Compare
gaborbernat
force-pushed
the
fix/release-changelog-format
branch
2 times, most recently
from
October 26, 2026 20:58
ef1e821 to
29f1333
Compare
gaborbernat
force-pushed
the
fix/release-changelog-format
branch
4 times, most recently
from
October 27, 2026 01:58
e93abdf to
57f4ceb
Compare
Move the prepare and tag workflows onto the shared workflows from github-workflows 6.0.1 and pin setup-uv 10.3.2. Prepare takes a bump type instead of a typed version. Release tools install from per-job groups (release-news, release-notes, release-prepare) that require release-creator 4.1. Nab writes pylock.toml from a [tool.nab] table on linux_x86_64, with a temporary upload cutoff exception for release-creator 4.1.0. A build group locks the hatchling backends with Cython and setuptools, since PyYAML has no CPython 3.15 wheel. The tag workflow builds through the shared workflow and renders notes from CHANGELOG.md in parallel, passing distributions and notes between jobs by artifact ID. After the PyPI upload, a job checks the uploaded files and their attestations before the GitHub Release is published. The tag run no longer checks for a matching changelog section, since only writers can push tags. The news check moves out of check.yaml into its own Changelog workflow, so label changes no longer rerun the tests. Every workflow, job and step name now starts with an emoji. Hooks are pinned to frozen commit SHAs. Dependabot's pre-commit ecosystem updates them weekly and pre-commit.ci autoupdates quarterly. A new CONTRIBUTING lists the fragment types and leaves credits to release-creator contributors, which reads commit authors and co-authors. CodeQL moves from default setup to a committed advanced workflow on ubuntu-26.04 with the same languages and query suite.
gaborbernat
force-pushed
the
fix/release-changelog-format
branch
from
October 27, 2026 04:00
57f4ceb to
f72cdd4
Compare
gaborbernat
marked this pull request as ready for review
October 27, 2026 05:39
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
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Releasing
devpi-processmeant typing an exact version into a hand-written prepare workflow, and the tag run built, uploaded and published through inline shell that only this repository maintained. 🚀 This PR moves both workflows onto the reusable ones in tox-dev/github-workflows 6.0.1, with release-creator 4.1.0 writing the changelog and release notes, so this repository keeps only thin callers.Release flow
A maintainer now starts a release by picking a bump (
auto,major,minororpatch) instead of typing a version. The shared prepare workflow asksrelease-creator tagsfor the next version from the pending fragments and existing tags (source), builds the changelog, adds a New Contributors subsection withrelease-creator contributors(source), runs theprekhooks, and pushes the commit and tag with the release App from therelease-authenvironment.On the tag, the distribution build and the notes rendering from
CHANGELOG.mdrun side by side. The PyPI upload waits for both; a verification job then compares every built file with PyPI and checks its trusted-publisher attestation (action), and only after that does the GitHub Release get created. Jobs pass distributions and notes to each other by artifact ID, and runs for one tag queue rather than cancel each other. Every workflow, job and step name now starts with an emoji.flowchart LR Tag[Tag push] --> Build[Build distributions] Tag --> Prev[Select previous tag] --> Notes[Render notes from CHANGELOG.md] Build --> PyPI[Publish to PyPI] Notes --> PyPI PyPI --> Verify[Verify PyPI files and attestations] Verify --> GHR[Publish GitHub Release] Notes --> GHR classDef step fill:#cfe4ff,stroke:#1f6feb,color:#0b1f3a; classDef publish fill:#ffe3a3,stroke:#d29200,color:#3a2c00; class Tag,Build,Prev,Notes,Verify step; class PyPI,GHR publish;The tag run no longer checks that the tag has a matching changelog section: only writers push tags, and the PR checks already validate the fragments. That news check moves to its own
📝 Changelogworkflow, which reruns when a label changes, so addingskip newsno longer reruns the test matrix.Changelog and contributors
CHANGELOG.mdnow uses release-creator's template, with entries grouped under Added, Fixed, Packaging and the other sections, each linked to its PR and credited to its author. Older releases gain entries they lacked, such as Python 3.11 support from #31 and Python 3.15 from #262. A newCONTRIBUTING.mdlists the ten fragment types and asks contributors not to write credits, because those come from commit authors andCo-authored-bytrailers.📦 On PyPI, the README's links to the changelog and the contributing guide pointed at relative paths; hatch-fancy-pypi-readme now rewrites them to GitHub URLs. The metadata adds a
ChangelogURL, drops theFramework :: toxand MIT license classifiers, and replaces the keywords withdevpi,processandtesting.Dependencies
nab 0.0.22 writes
pylock.tomlfor CPython 3.15 onlinux_x86_64, the only target where CI installs from the lock, with a seven-day upload cutoff. A temporary exception lets release-creator 4.1.0 in until 2026-11-02. Each release job installs only its own group (release-news,release-notesorrelease-prepare), and abuildgroup locks the hatchling backends with Cython and setuptools because PyYAML has no CPython 3.15 wheel. A weekly🔒 Upgrade release toolsworkflow relockspylock.tomland opens a PR.The pre-commit config pins each hook to a frozen commit SHA. Dependabot's
pre-commitecosystem updates them weekly with a seven-day cooldown, alongside a quarterly pre-commit.ci autoupdate.🛡️ CodeQL
CodeQL moves from default setup to a committed workflow on
ubuntu-26.04that scans Python and Actions with thesecurity-extendedsuite and skipstests, whose alerts nobody would fix. This also removes theubuntu-latestmigration notice default setup produces.