Repository navigation
👷 ci(release): adopt github-workflows 6.0.1 - #376
Merged
Merged
Conversation
gaborbernat
force-pushed
the
fix/release-contract
branch
from
October 25, 2026 22:25
fccfcb7 to
05c4987
Compare
gaborbernat
force-pushed
the
fix/release-contract
branch
from
October 26, 2026 00:03
05c4987 to
f21cd24
Compare
gaborbernat
force-pushed
the
fix/release-contract
branch
from
October 26, 2026 01:01
f21cd24 to
4ad0bd5
Compare
gaborbernat
force-pushed
the
fix/release-contract
branch
from
October 26, 2026 17:01
4ad0bd5 to
af83277
Compare
gaborbernat
force-pushed
the
fix/release-contract
branch
5 times, most recently
from
October 26, 2026 20:59
24c2d46 to
d7348a2
Compare
gaborbernat
force-pushed
the
fix/release-contract
branch
4 times, most recently
from
October 27, 2026 01:59
24784b3 to
43e5a22
Compare
Move the release pipeline to the shared towncrier flow of github-workflows 6.0.1 and release-creator 4.1.0. The tag workflow renders notes read-only in parallel with the build, uploads to PyPI without skip-existing, then reconciles digests and publishes the GitHub Release in one job. Only writers can push or move tags, so the step that re-checked the tag before publishing is gone, as is the release-validate group that only github-workflows' removed prepare validate job used. Every workflow, job and step now has an emoji name. The gate becomes "🚦 Required checks pass" and the news job "📝 News fragment". The news job drops its always-true pull_request condition. Nab 0.0.22 generates pylock.toml over every group with a seven-day window, a CPython 3.15 linux_x86_64 matrix and a temporary release-creator cutoff exception. A build group carries the hatchling backends plus cython and setuptools, since PyYAML has no cp315 wheel. The unused release and release-check groups are gone. Hook updates move to Dependabot and pre-commit.ci: the hook cooldown job and its recheck workflow are removed, and the Dependabot pre-commit entry drops its allow list. CONTRIBUTING drops hand-written credits, since credits now come from commit authors and co-authors. CodeQL moves from default setup to a committed advanced workflow on ubuntu-26.04 that scans actions and Python with the security-extended suite and skips tests and the roots fixtures.
gaborbernat
force-pushed
the
fix/release-contract
branch
from
October 27, 2026 04:00
43e5a22 to
2ae24c0
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.
sphinx-argparse-cli cut releases with shell scripts of its own: the maintainer typed the version into the prepare dispatch, and the tag workflow cut the GitHub Release notes out of
CHANGELOG.mdwithawk. This PR moves both onto the shared pipeline of github-workflows 6.0.1 and release-creator 4.1.0. 🚀 A release is now a dispatch with a bump choice that defaults toauto.The changelog covers all 40 releases with version anchors, the release-creator categories, pull request links and author credits. Contributors stop writing credits: they come from commit authors and
Co-authored-bytrailers, and a newCONTRIBUTING.mdlists the fragment types and whenskip newsapplies. The PyPI project page also gets working links to the changelog and contribution guide, which the README links by relative path.Architecture
The prepare workflow is a thin caller of
prepare-towncrier-release, which picks the version from the towncrier fragments, assemblesCHANGELOG.md, and pushes the release commit and tag with the release App. The tag workflow runs one build and one read-only notes job in parallel. PyPI publishing waits for both and uploads the build's own artifact over OIDC with attestations. A final job compares the PyPI digests with that artifact before it publishes the GitHub Release. Runs for the same tag queue behind each other instead of cancelling.flowchart LR Tag[Tag push] --> Build[🏗️ Build] Tag --> Notes[📝 Render notes] Build --> PyPI[🚀 Publish to PyPI] Notes --> PyPI PyPI --> Release[🚀 Reconcile digests and publish GitHub Release] Build --> Release Notes --> Release classDef src fill:#cfe4ff,stroke:#1f6feb,color:#0b1f3a; classDef job fill:#d8f0d8,stroke:#2e8b57,color:#0f2e1a; classDef pub fill:#ffe3a3,stroke:#d29200,color:#3a2c00; class Tag src; class Build,Notes job; class PyPI,Release pub;The tag workflow no longer checks the tag's shape or that
CHANGELOG.mdhas a section for it. People with write access are trusted with tags, in line withgithub-workflows6.0.0, which stopped re-checking the release tag and the patch that prepare had just produced. Pull requests stay the validation point: the news fragment check moves to its own workflow, which reacts to label changes, so adding or removing a label no longer reruns the test matrix. Sincegithub-workflows6.0.0 that check runs each validation only when the pull request touches the files it covers.Release tools and hooks
The release tools install from a
pylock.tomlthat Nab generates over every dependency group, for CPython 3.15 onlinux_x86_64with a seven-day upload window. release-creator has a temporary exception to that window at2026-10-26T18:24:46Z, marked for removal after 2026-11-02. A newbuildgroup lists the build backends pluscythonandsetuptools, because the lock has only the PyYAML 6.0.3 sdist for that target. A weekly workflow refreshes the lock through the sharedupgrade-release-tools. 🔒pre-commit hooks are pinned to frozen commit SHAs. Dependabot updates them weekly with a seven-day cooldown and the
skip newslabel, while pre-commit.ci autoupdate drops to quarterly.🛡️ CodeQL
CodeQL moves from default setup to a committed workflow on
ubuntu-26.04that scans actions and Python with thesecurity-extendedsuite and ignorestestsand therootsSphinx fixtures, which removes theubuntu-latestmigration notice default setup produces.