Skip to content

v0.193.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 14:40
· 49 commits to main since this release

The 0.192.0 release took 64 minutes end to end (push 55 s, hosted checks 895 s, release gate 1350 s, tag 700 s, release workflow 592 s, npm 267 s). This release removes the parts of that which repeated work or waited without a reason. None of it was measured end to end at the time of writing: the next TIMINGS line is the measurement, and this entry does not quote a number it has not seen.

  • A tag push is no longer gated. The pre-push gate ran again, for 697 s, when ship pushed the release tag, although the tag names a commit that was already gated when its branch was pushed. A tag whose commit is already contained in a remote-tracking branch now counts as "no new commits". A tag on a commit the remote lacks is still gated, and a branch is never exempt.
  • The early release gate is now actually used. A defect found in the 0.192.0 run: right after a push, the pull request API can still report the previous head commit, so ship recorded the early gate's pass (and the pre-push pass) against a stale commit. The post-merge verify then found no matching early pass and ran 25 checks again, 1350 s that overlapped nothing. The pull request head is now taken from the branch on origin when that is the commit just pushed. verify after the merge then runs only the two checks that need the merge (head-pushed, remote-ci-green).
  • A slow informational job no longer restarts the whole run. The stuck-job detector counted informational jobs. A 40 minute local-model run made ship cancel and re-run the entire CI run, discarding the progress of every blocking job (about 40 minutes in the second 0.192.0 attempt). Informational jobs are now exempt from that detector.
  • The tag-time release workflow runs less. On a tag push only the rest leg runs its checks (changelog, version, catalogs, dependency currency and the hosted-CI check that requires every blocking pull-request check to be green for the commit). The test shards, both bench groups and the closure leg are marked full_only and run for real on a workflow_dispatch dry run. What this gives up is a clean-runner re-run, with the cache off, of those legs at tag time; the pull request's blocking jobs ran the same work for the same tree. A tag pushed for a commit that never had a pull request is guarded only by the hosted-CI check in rest, so run the dry run first in that case. publish still needs the gate job, still verifies the bundle and package shape on its own runner, and is still the only job with id-token: write.
  • The npm check no longer holds the release open. ship waits 90 s for the registry to show the version. If it is still behind, the release is reported as shipped with the npm check PENDING and marked "NOT YET VERIFIED"; node scripts/ship.mjs --resume re-runs only that check. It is never reported as verified before the registry shows the version with its provenance attestation.
  • Not done, and why. (a) Running the local release closure in parallel with the other early checks: the closure rebuilds dist in place, so overlapping it with checks that read the bundle on the same checkout is unsafe; it needs its own worktree. (b) Moving language-tools-ghc and language-suites to the informational tier: the early gate (the closure alone is 1080 s, of which test:loop is 567 s) is longer than the slowest hosted blocking job, so the change would remove a merge check and save no wall-clock time until the closure shrinks. (c) Dropping the hosted release workflow's remaining checks entirely: not done, and not recommended.