Repository navigation
6.0.0
Immutable
release. Only release title and notes can be modified.
Features
- Every Action and reusable workflow now logs the choices it makes and why, and no longer hides tool output (#23) by @gaborbernat.
- Run each
validate-newscheck only when the pull request touches what it validates: fragment validation when the fragment directory changes, the Towncrier configuration check whentowncrier.tomlor thetool.towncriertable changes, the lock check when apyproject.toml,pylock.toml, rootpylock.*.toml, ornab.tomlchanges, and the lock-removal guard whenpylock.tomlis deleted. Workflow changes no longer trigger the lock check, and every rootpylock.*.tomldoes, whether or not it is the configuredadditional-lock. The fragment requirement for human pull requests still runs on every pull request (#23) by @gaborbernat.
Changes
- Drop the
mainbranch condition from the writer job ofupgrade-release-tools.yaml. The deployment branch rule of therelease-authenvironment still applies (#23) by @gaborbernat. - Drop the
sourcejob of the github-workflows release workflow, which re-checked the tag that started it (#23) by @gaborbernat. - Give every job and step in the shared workflows and Actions a name that starts with an emoji. Jobs of the reusable workflows show up in callers as
<caller job> / <job name>, so required status checks that name them must be updated.publish-jetbrains-marketplacealso recognizes a prior upload step named🚀 Publish signed ZIP, the README's new name for the caller's publishing step (#23) by @gaborbernat. - Make
publish-github-releaseupdate an existing draft's title, notes, and prerelease flag on a rerun instead of failing, use the first Release when several share the tag, and create the draft inpublishmode when none exists. It no longer compares the title, notes, and prerelease flag of an existing Release; the read-after-write retry and the asset name and digest checks stay (#23) by @gaborbernat. - Stop
commit-and-tagfrom requiring a clean working tree with only a staged patch; it commits whatever is staged (#23) by @gaborbernat. - Stop
publish-jetbrains-marketplacefrom inspecting earlierreleaseenvironment deployments for the tag before an upload; the job no longer needs Deployments read access. Stoppublish-post-release-prfrom failing when an open pull request's title, body, or base changed, when several pull requests match, or when a merged pull request lost itsskip newslabel; it re-applies the label instead (#23) by @gaborbernat. - Stop
refresh-release-lockfrom failing inrefreshmode when the regenerated lock targets different environments.checkmode still compares the whole lock (#23) by @gaborbernat. - Stop checking the shape of built artifacts that the release jobs produce themselves.
validate-python-release.yamlno longer requires an emptydistdirectory or exactly one wheel and one sdist at the tag's version, andbuild-python-distributionno longer requires an emptydistdirectory.reconcile-pypi-artifactsno longer rejects an emptydist, an invalid project name, or local files that are hidden, symbolic links, directories, or belong to another release; it compares every file indistwith PyPI (#23) by @gaborbernat. - Stop re-checking files the release jobs produce themselves in the JetBrains Actions.
sign-jetbrains-pluginno longer runsunzip -ton the unsigned or signed ZIP, checks for Java 17 or an existing signed ZIP, runs the signer'sverify, or checks the signed ZIP's type and members.publish-jetbrains-marketplaceno longer runsunzip -t, re-hashes the upload copy, or checks the file types of a downloaded receipt and earlier artifacts (#23) by @gaborbernat. - Stop re-checking the release tag before publishing.
publish-github-releaseno longer requires the remote tag to resolve tocommit, which now only sets the target of a new Release.publish-jetbrains-marketplaceno longer requires the remote tag to targetcommitor fails on an earlier upload of the tag from another commit. Drop the step that re-checks the tag beforepublish-github-releasefrom callers that copied the README example (#23) by @gaborbernat. - Stop validating caller input in the prepare and tag Actions.
prepare-towncrierno longer rejects an unknownphase, afinalizerun withoutversion, achangelog-prefixother than empty orv, an explicitversionthat is not newer than existing tags, other hook configuration files, or an unknown changelog format; any changelog not ending in.rstis formatted withmdformat.read-towncrier-configno longer checks that the paths are normalized and inside the repository, that the changelog ends in.mdor.rst, or that fragment categories are configured.select-previous-tagno longer requires the tag to exist locally or limits it to one namespace separator, andcommit-and-tagno longer rejects an emptytokenorapp-slugor anannotatedvalue other thantrueorfalse; any value other thantruecreates a lightweight tag (#23) by @gaborbernat. - Stop validating caller input in the publishing Actions.
publish-github-releaseno longer rejects an empty tag, title, or notes file, aprereleaseother thantrueorfalse, an unknownmode, or asset directories with hidden, non-regular, or unusually named entries.publish-jetbrains-marketplaceno longer checks the archive name and type, the plugin ID, the channel, the tag ref, the notes file type, the artifact IDs, or thatpublish-tokenis set.sign-jetbrains-pluginno longer checks the archive name and type, andpublish-post-release-prno longer checks the format of its inputs or theallowed-pathsentries (#23) by @gaborbernat.
Breaking changes
- Reduce
validate-release-patchto applying the patch and checking its paths and file modes, and remove itsversionandchecksinputs; remove them from callers. It no longer rejects amainbranch that moved, a patch that leaves the changelog unchanged, or RST conflict markers, and it no longer runsrelease-creator validate-fragment-deletions,release-creator notes, the hook configuration check, orprek(#23) by @gaborbernat. - Remove the
app-slugandcommit-messageinputs frompublish-post-release-pr; remove them from callers. The Action no longer compares the candidate's author, committer, and message with the App bot and the expected message, re-reads the branch, pull request head, or base after writing, or checks the files of an already merged pull request against the current base (#23) by @gaborbernat. - Remove the
check-tagged-sourceAction, and stop checking the tag invalidate-python-release.yaml: the workflow no longer requires the tag to resolve toGITHUB_SHAor to sit onmain, and checks out the tag with the default fetch depth. Removecheck-tagged-sourcesteps from callers (#23) by @gaborbernat. - Remove the
lockjob fromvalidate-python-release.yamlandprepare-towncrier-release.yaml, and the lock check fromcheck-tagged-source.validate-newsstill checks the lock on the pull request that changes it. Both workflows drop theadditional-lock,additional-lock-groups,additional-lock-selection,additional-matrix-python,additional-matrix-platforms, andadditional-matrix-implementationsinputs, andcheck-tagged-sourcedrops them along withexclude-newerandexclude-newer-package; remove them from callers. Without thelockjob,prepare-towncrier-release.yamlno longer skips a dispatch from a branch other thanmain(#23) by @gaborbernat. - Remove the
validatejob fromprepare-towncrier-release.yaml, which recalculated the version and ranrelease-creatorandprekon the patch thatassemblehad just produced;pushnow depends onassemblealone. The workflow no longer installs therelease-validategroup (#23) by @gaborbernat. - Remove the
verify-lockandverify-groupsinputs frominstall-locked-toolsandverify-groupsfromexport-build-constraints, together with thecheck_lock_groups.pycheck behind them; remove them from callers.install-locked-toolsno longer checks that the requested groups exist in the lock or requiresvenvwithgroups,export-build-constraintsno longer rejects an unknown platform, a malformed or empty target list, or targets that select different build package versions, andrefresh-release-lockandupgrade-release-tools.yamlno longer validatemode,additional-lock, and the secondary matrix inputs (#23) by @gaborbernat. - Remove the temporary
nab-git-commitinput fromrefresh-release-lock,validate-news,prepare-towncrier-release.yaml,upgrade-release-tools.yaml, andvalidate-python-release.yaml. The Actions always install Nab from PyPI; remove the input from callers (#23) by @gaborbernat. - Rename the jobs of
validate-python-release.yamlto🏗️ Build distributionsand ofprepare-towncrier-release.yamlto🏷️ Assemble releaseand⬆️ Push release commit and tag. Required status checks and rulesets that reference the old job names must use the new ones (#23) by @gaborbernat.