Uh oh!
There was an error while loading. Please reload this page.
chore(ci): delete release.yml, a workflow that never ran - #5407
Merged
os-support-ai merged 1 commit intoAug 20, 2026
Conversation
`.github/workflows/release.yml` (workflow id 223155593, "Release") had `total_count: 0` workflow runs across the repository's entire history. It triggered on `push: tags: ['v*']` and no tag matching that glob has ever existed here: all 2896 tags on the remote are Changesets per-package tags (`@object-ui/<pkg>@<semver>`), none beginning with `v`, and nothing in the repo creates tags except the Changesets action. Obsolete rather than misconfigured: the workflow parsed and registered fine (GitHub reports it `active`) and would have fired on a `v*` tag. The job it would do -- "Create GitHub Release" -- is already done by `changeset-release.yml`, whose Changesets action publishes GitHub Releases tagged `@object-ui/<pkg>@<version>`. Its npm publish step was still commented out under "Uncomment the following steps when ready to publish to npm" while the repo has published through Changesets for months. `content/docs/guide/ci-cd-pipeline.md` loses its inventory row and its "Tag Release" section, which documented this as a release path. `scripts/__tests__/ci-cd-pipeline-doc.test.ts` pins that page to `.github/workflows/` in both directions, so the doc edit is required, not housekeeping. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RV6yuVCxymHYE16PL9vQkE
os-support-ai
marked this pull request as ready for review
August 20, 2026 14:58
Uh oh!
There was an error while loading. Please reload this page.
os-support-ai
deleted the
claude/issue-5405-delete-dead-release-workflow
branch
August 20, 2026 14:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#5405
.github/workflows/release.ymlhad 0 workflow runs, ever. It is deleted here, along with the two places oncontent/docs/guide/ci-cd-pipeline.mdthat documented it as a release path.The deletion is one
git rm. Establishing that the file is dead is the work, so all three checks were re-run independently, each with its own counter-probe.1.
total_count: 0— re-confirmed, and it means "never", not "not lately"release.yml(by filename)total_count: 0223155593(same workflow, addressed by id)total_count: 0changeset-release.ymltotal_count: 39020stale.yml, daily cron since 2026-01-15shadcn-check.yml, first page reaches back toThe bogus-name probe is what turns the zero into a reading: an unknown workflow 404s, so
0cannot also be the "not found" signal. The retention probes close the other gap — a zero would be worthless if Actions were ageing run records out. They are not: records here reach back six months to workflow creation, andstale.ymlhas one run for very nearly every day since it was created. The zero spans the repository's entire life.(The card quoted 3901 for
changeset-release.yml; it now reads 3902. The counter moved between the card and this PR, which is itself a small confirmation that the method reads live data.)2. Nothing pushes
v*tagsv, case-insensitive — checked locally aftergit fetch --tagsand again remote-side withgit ls-remote, so the answer does not depend on my local ref state.v*returns 0 while@object-ui/app-shell@11*returns 5 local tags / 10 remote refs. The filter resolves; the zero is not a broken pattern.scripts/, and everypackage.jsonforgit tag,--tags,--follow-tags,refs/tags,gh release createand the usual release CLIs finds no tag-creating step outside the Changesets action.packages/vscode-extension/PUBLISHING.mdinstructs a human to create a GitHub release taggedvscode-extension-v0.1.1. That name does matchv*— the glob anchors on the leadingvonly. It is manual, automated nowhere, and has never been executed (zero such tags, local and remote). Had it ever been executed, this workflow would have misfired rather than helped: its${GITHUB_REF#refs/tags/v}strips the leadingvofvscode-..., so it would have built the entire monorepo and published a release titledRelease scode-extension-v0.1.1.3. Nothing references it
A repo-wide grep for
release.yml(excludingnode_modules,.git,dist) returns exactly two unqualified mentions, both oncontent/docs/guide/ci-cd-pipeline.md. Every other hit ischangeset-release.yml. No badge names it (the README badges are CI and CodeQL), noworkflow_runlistener exists anywhere in the repo, and no script mentions it. It also cannot have been a required check by construction: apush: tagstrigger produces no pull-request context.Both doc mentions go here — the workflow-inventory row and the
### Tag Releasesection. That edit is required rather than housekeeping:scripts/__tests__/ci-cd-pipeline-doc.test.tspins that page to.github/workflows/in both directions, so a page still naming a deleted workflow fails.The edit is deliberately subtractive. The page's own tests exist because unpinned prose claims on it drift, so this adds no new editorial sentence about there being only one release path — the surviving
### Changeset Releasesection is the claim, and the forward pin already forces any future workflow to be documented in that spot.The fork: obsolete, not intended-but-broken
These have opposite fixes, so here is the evidence for obsolete.
state: activewith a workflow id, so it would fire if av*tag were pushed. The trigger never fires because this repo emits@object-ui/PACKAGE@VERSIONtags, notv-prefixed ones.github-actions[bot]through the Changesets action onchangeset-release.yml, tagged@object-ui/types@17.5.0and friends, most recently 2026-08-14. Deleting this removes a duplicate, not a capability.v+ semver for the whole repo pointing at the rootCHANGELOG.md; this repo releases a 39-package fixed group with per-package versions.A note on one thing I could not use as evidence:
git logattributes bothrelease.ymlandchangeset-release.ymlto the same 2026-08-10 commit, which is an artifact of this being a shallow clone (grafted at 660 commits), not real history. The creation dates above come from the Actions API instead —release.ymlon 2026-01-13 among the repo's first workflows,changeset-release.ymltwo days later on 2026-01-15.Also noted while verifying, and not changed here:
changelog.ymllikewise shows 0 runs. That is explained without any defect — it listens forrelease: published, and releases published byGITHUB_TOKENdeliberately do not trigger further workflow runs. It is out of scope for this PR and no claim about it is made here.Tests
All at
fe329892d, the final commit, on an otherwise clean tree.pnpm exec vitest run scripts/from the repo root — 58 files, 1549 tests, all passed. That is the real blast radius: 20+ scripts read.github/workflows/, so the wholescripts/suite was run rather than only the one obviously-related file.check-control-bytes(4483 files scanned),check-doc-links(13 scan roots),check-changeset-presence,check-changeset-no-major,check-doc-component-types(which does cover.md, not only.mdx— 183 doc files, 887 type literals).check-doc-snippet-typeswas reasoned about rather than run: it compiles against builtdist/, and this diff removes no code fence at all, so that file's set of compilable snippets is byte-identical tomain.Reverse verification of the doc pin
A green pin proves nothing until it is shown to be able to fail, so, from the committed state: re-introduce one unqualified mention of
release.ymlon the page with the workflow still deleted.Predicted direction was red, and red is what happened — 1 failed / 31 passed:
Restored with
git checkout HEAD -- ..., confirmed byte-identical to the commit, re-run green at 32/32. No rebuild is involved in either leg: this test reads the doc and the workflow directory from disk withfs.readFileSync, so there is nodist/resolution that a stale build could make vacuously green.Scope
Touches exactly three paths: the deleted workflow, the doc that described it, and a changeset.
changeset-release.yml(#5404) andci.yml(#5403) are deliberately untouched — neither is modified by this branch. The changeset carries empty frontmatter, the repo's first-class way to declare "this publishes nothing": no released package'ssrc/changed, whichcheck-changeset-presenceconfirms independently.Not enabling auto-merge — the PM lands this.
Generated by Claude Code