Skip to content

✨ feat(workflows): dry-run release preparation - #53

Merged
gaborbernat merged 4 commits into
mainfrom
release-dry-run
Nov 6, 2026
Merged

gaborbernat merged 4 commits into
mainfrom
release-dry-run

Conversation

@gaborbernat

Copy link
Copy Markdown
Member

A pull request can merge green and still break the next release. Release preparation assembles under rules that no pull request check applies: prek hooks install with packages from the last seven days held back, fragments link to their pull requests, and the changelog builds and formats. simplint#55 bumped the Ruff hook to a release younger than seven days. Its checks passed and it merged, and then the next release failed while installing hooks. 🚦

prepare-towncrier-release and prepare-release-creator now take a dry-run input. It runs the assemble job unchanged and skips push. A caller makes its prepare workflow callable and runs it from the workflow that holds its required gate. The pull request then goes through the same assembly as the release, with the same inputs, and fails if the release would fail. A dry run needs no App key, and its concurrency group is scoped to the ref, so it never queues behind a real release or holds one up.

Callers adopt it with one job in their gate workflow and a workflow_call trigger on their prepare workflow; the README shows both. Real releases behave as before.

A release assembles under rules that a pull request's checks never
apply: prek hooks install with packages from the last seven days held
back, fragments link to their pull requests, and the changelog builds
and formats. simplint#55 bumped the Ruff hook to a release younger than
seven days, merged green, and failed the next release in its prepare
step.

prepare-towncrier-release and prepare-release-creator now take a
dry-run input that runs the assemble job and skips push, so a caller can
run its own prepare workflow inside the required PR gate. A dry run
needs no App key and has its own concurrency group per ref, so it never
queues behind a real release.
@gaborbernat gaborbernat added the enhancement New feature or request label Nov 6, 2026
@gaborbernat
gaborbernat merged commit 87c7e27 into main Nov 6, 2026
12 checks passed
@gaborbernat
gaborbernat deleted the release-dry-run branch November 6, 2026 15:53
This was referenced Nov 6, 2026
gaborbernat added a commit to gaborbernat/bump-deps-index that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to pytest-dev/pytest-print that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to pytest-dev/pytest-env that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to gaborbernat/pypi-changes that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to gaborbernat/simplint that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to gaborbernat/mdformat-hugo that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to pypa/pipx that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/pre-commit-uv that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/action-pre-commit-uv that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/sphinx-autodoc-typehints that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/pipdeptree that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/pyproject-api that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/mdformat-zola that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/sphinx-argparse-cli that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/tox-ini-fmt that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/xml-fmt that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/tox-gh that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/jetbrains-fish that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to pypa/virtualenv that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/devpi-process that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/python-discovery that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/tox that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/PyVenvManage that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/toml-fmt that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run for pyproject-fmt and tox-toml-fmt, through the `dry-run` input
added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/tox-uv that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/platformdirs that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
gaborbernat added a commit to tox-dev/filelock that referenced this pull request Nov 6, 2026
A pull request could merge green and still break the next release.
Release preparation assembles under rules no pull request check applied:
[prek](https://github.com/j178/prek) hooks install with packages from
the last seven days held back, fragments link to their pull requests,
and the changelog builds and formats.
[simplint#55](gaborbernat/simplint#55) merged
with every check green, and the [next release
failed](https://github.com/gaborbernat/simplint/actions/runs/42183854370)
while installing its hooks. 🚦

The required gate now runs this repository's own prepare workflow as a
dry run, through the `dry-run` input added in [github-workflows
6.6.0](tox-dev/github-workflows#53). The dry run
uses the same inputs and the same assembly as a real release and skips
the push job. A pull request that would break the release now fails its
gate instead. The dry run needs no App key, and it has its own
concurrency group, so it never queues behind a real release.

Releases dispatched by hand behave as before.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant