Repository navigation
5.0.0
Immutable
release. Only release title and notes can be modified.
Features
- Add
exclude-newerandexclude-newer-packageinputs to every Action and reusable workflow that installs its own tools.exclude-newerdefaults to7 days;exclude-newer-packagetakes newline-separatedname=dateoverrides for an emergency (#20) by @gaborbernat. - Add a temporary
nab-git-commitinput torefresh-release-lockand to the Actions and reusable workflows that call it. A full commit SHA installs Nab fromnotatallshaw/nabat that commit, with no cooldown, until a Nab release carries the fix (#20) by @gaborbernat. - Add the
cooled-prekAction, which runs prek with the root configuration and hook environments built under the seven-day cutoff. The prepare workflow now installs its hooks through it (#20) by @gaborbernat. - Run
release-creator contributorsafter the Towncrier build inprepare-towncrier, so the changelog section gets a "New Contributors" subsection. It needs release-creator 3.1.0 (#20) by @gaborbernat.
Changes
- Drop the hook pin mention from the default
pull-request-bodyofupgrade-release-tools.yaml, which now reads "Refresh the project lock." (#20) by @gaborbernat. - Let
validate-newsaccept a pull request that removespylock.tomlwhen the project has no[tool.nab]table and noadditional-lockis configured, so nothing would produce a lock (#20) by @gaborbernat. - Make
check-tagged-sourcerequire that the tag resolves toGITHUB_SHA, as the Python release build job does (#20) by @gaborbernat. - Make the github-workflows release job check that the tag still resolves to the tagged commit before it creates the GitHub Release, and check the tag inline instead of through
check-tagged-source(#20) by @gaborbernat. - Reject a primary lock refresh that changes the lock's target environments, as the secondary lock refresh already does (#20) by @gaborbernat.
Breaking changes
- Accept only
pylock.tomland the configured secondary lock in theupgrade-release-tools.yamlpatch.pyproject.tomlanduv.lockchanges are rejected (#20) by @gaborbernat. - Generate the primary
pylock.tomlwithnab lock --all-groups --all-extras --no-cache, adding--upgradeinrefreshmode, and compare a regenerated lock incheckmode. Therelease-creator lockspath and the uv resolver steps are gone, so relock arelease-creator lockslock with Nab before re-pinning. Nab runs withoutSSL_CERT_FILEandSSL_CERT_DIR(#20) by @gaborbernat. - Remove GitHub's generated notes from the release path: the
generated-notesinput ofrender-release-notesis gone, and the github-workflows release no longer has a Contents-write job that fetches contributor metadata. The read-only notes job now runs in parallel with the tag check and renders the notes from the full history alone (#20) by @gaborbernat. - Remove the Actions' shared
pylock.toml, its weekly refresh, and thelock-sourceinput ofinstall-locked-tools. The Actions now install the newest release of each of their own tools, above a minimum version, that is older than a seven-day cutoff, andinstall-locked-toolsinstalls only from the caller'spylock.toml. Build constraints come from the caller lock'sbuildgroup alone, without the shared Cython and setuptools pins (#20) by @gaborbernat. - Remove the
--shared-policyoption and two-lock merging fromtools/build_constraints.py; it now exports the build constraints of one lock (#20) by @gaborbernat. - Remove the
check-hook-update-cooldownandrecheck-hook-update-cooldownActions and therecheck-hook-cooldown.yamlworkflow. Pull requests that change.pre-commit-config.yamlare no longer checked for hook revision age or dependency closure cooling; drop thehook-cooldownjob and its scheduled rerun from callers (#20) by @gaborbernat. - Remove the
install-local-release-creatorAction and thelocal-tool-sourceinput ofinstall-locked-toolsandprepare-towncrier-release.yaml. A lock may no longer list release-creator as a local directory package (#20) by @gaborbernat. - Remove the
keep-uv-lockinput ofrefresh-release-lock,validate-news,check-tagged-source,prepare-towncrier-release.yaml,upgrade-release-tools.yaml, andvalidate-python-release.yaml. A committeduv.lockis no longer refreshed or checked (#20) by @gaborbernat. - Remove the
refresh-mise-pinAction. Callers that pinned a mise binary with it keepjdx/mise-action's default release age instead (#20) by @gaborbernat. - Remove the
verify-frozen-hooksAction with its frozen revision, tagged hook provenance, and hook dependency closure checks. The shared prepare workflow andcheck-tagged-sourceno longer run it; drop it from custom tag jobs.prepare-towncrierandvalidate-release-patchnow reject aprek.tomlor a nested hook configuration before they runprek(#20) by @gaborbernat. - Remove the hook refresh from
upgrade-release-tools.yaml. The weekly updater no longer runsprek update --freeze --cooldown-days 7orrelease-creator hooks, and its writer accepts only the lock patch; let Dependabot'spre-commitecosystem update hook revisions instead (#20) by @gaborbernat. - Remove the reviewed cutoff table, the recent cutoff check, the cutoff expiry, and the
verify-cutoff-patchAction. Callers own their per-packageuploaded-prior-toexceptions in[tool.nab], and gw neither checks nor expires them (#20) by @gaborbernat. - Restructure
validate-python-release.yaml. A keylesslockjob checks the locks in parallel withbuild, which now checks the tag inline, including that it resolves toGITHUB_SHA, and exports its own build constraints; thesource-checkandconstraintsjobs and thebuild-constraintsartifact are gone. Thevalidatejob, which rantwine checkandcheck-wheel-contents, is removed; packages check their distributions with their owntox -e pkg_meta. The workflow no longer needsactions: readorpull-requests: read(#20) by @gaborbernat. - Stop checking caller locks against PyPI metadata and upload times in
install-locked-tools.check_lock_groups.pynow only checks that the selected groups exist, and Nab's regenerate-and-compare check inrefresh-release-lockguards the lock on pull requests, on tags, and in a new keylesslockjob ofprepare-towncrier-release.yamlthat runs before assembly (#20) by @gaborbernat. - Stop running
prekon the tagged source.check-tagged-sourcenow checks only the tag and the locks and no longer installs the caller'srelease-checkgroup; the release patch is still checked withprekbefore it is pushed (#20) by @gaborbernat.
Packaging
- Lock github-workflows' own
release-prepareandrelease-validatetools, with thebuildbackends PyYAML needs, in a smallpylock.tomlmade by Nab under the seven-day cutoff, so its release preparation installs them hash-checked from its own lock like every caller (#20) by @gaborbernat.