Skip to content

v0.113.0

Choose a tag to compare

@smm-h smm-h released this 09 Aug 13:41
· 3042 commits to main since this release

Release-path unblocks: the CI gates stop refusing commits whose jobs actually passed, the monorepo router gains a run_all dispatch that runs every member's CI on one commit, and advisory warnings no longer abort a release.

Context

Every change here was reproduced against a real release that could not proceed.

A matrix job GitHub skipped emits one unsuffixed check run, while the same job
run emits one per leg -- so a re-run that executed every leg could never
supersede the earlier skip, and both the CI wait and the publish gate refused a
commit whose jobs had all passed. Supersession is now decided by a strictly
later check run for the same job; a failing leg still blocks, and nothing else
can cover a skip.

The router's run_all dispatch input is the sanctioned way out of the adjacent
trap: a resumed candidate that touches only some members leaves the rest
filtered out by paths, and the previous remedy was to invent churn commits to
widen the window. Nothing is waived -- the jobs still have to pass.

The candidate-window guard was always told a push was about to happen, so a
resume with nothing left to push compared the candidate against itself and
refused, naming a push that was not happening. It now reads the window the plan
actually derived.

The pgdesign gate now matches pgdesign's own severity model, so a project with
zero errors and some advisory warnings is releasable; and monorepo extract /
extract-releasable are no longer consequential, since their history rewrite runs
on a throwaway clone and touches nothing published or already pulled.

Features

  • Monorepo CI router: run every member's jobs on one commit. The generated ci-router.yml now declares a run_all workflow_dispatch input. Dispatching with -f run_all=true short-circuits the paths filter so every member's CI jobs run on that exact commit -- the sanctioned way to unblock a release whose resumed candidate touches only some members, without inventing churn commits to widen the window. Nothing is waived: the jobs still have to pass. Run rlsbl monorepo sync to regenerate the router.

Fixes

  • Advisory pgdesign warnings no longer abort releases. The pgdesign release gate now runs pgdesign check --tag validation --ignore-warnings, matching pgdesign's own severity model: warn-severity results are advisory and only errors block a release. Previously a project with zero errors but any warnings could not be released at all.
  • A skipped matrix job no longer blocks a release its legs passed. GitHub emits one unsuffixed check run for a job it skipped, but one per leg for a job it ran, so a re-run that executed every leg could not supersede the earlier skip and both CI gates refused a commit whose jobs had all passed. A skipped check is now superseded by a strictly later check run for the same job. A failing leg still blocks, and nothing else can cover a skip.
  • A resume with nothing new to push is no longer refused as an "empty window". The pre-push candidate-window guard was always told a push was about to happen, so when the release branch was already at the candidate it compared that commit against itself and refused, naming a push that was not happening. It now uses the window the plan actually derived.
  • rlsbl monorepo extract and monorepo extract-releasable no longer interrupt with a confirmation prompt. Their history rewrite runs on a throwaway clone, so nothing published or already-pulled is touched.