Create GitHub Release and Slack still key off `published == 'true'`, so they can announce a half-shipped release that is not on npm yet
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 84/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- github-actions, javascript
Direzione di ricerca
Inizia da .github/workflows/release.yml, seguendo il passaggio Verify every package version on this commit is on npm e le condizioni di Create GitHub Release e Post release notes to Slack. Esamina scripts/check-published.mjs e scripts/generate-release-slack-payload.mjs per il comportamento di verifica esistente. Il lavoro è completato quando entrambi gli annunci vengono eseguiti solo dopo che la verifica del registro ha esito positivo, mentre gli errori del token Slack rimangono non bloccanti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Workflow: .github/workflows/release.yml @ f5aeaa869c1c15b7604e14047354059b5bd1f5c5
Scripts: scripts/check-published.mjs, scripts/generate-release-slack-payload.mjs
What happens
The Release job already knows a publish can be left half-shipped. From the comment above Verify every package version on this commit is on npm:
changeset publishruns onepnpm publishper package and one failure leaves the release half-shipped, withworkflowpossibly pointing at a@workflow/corethat is not on npm yet. 5.0.0-beta.48 shipped 7 of 21 packages on its first attempt…
check-published.mjs is the check that job runs after publishing, whatever the publish step's outcome. It GETs the registry and fails when a publishable version is NOT ON NPM, or when the branch dist-tag does not point at it. The script's own header:
npm does not commit a publish synchronously:
pnpm publishexits 0 once the version is staged, and the version list and dist-tag catch up afterwards. The lag is minutes, not seconds… 5.0.0-beta.48 left@workflow/webstaged for about a day, which no retry budget can wait out.
Create GitHub Release and Post release notes to Slack do not mention that check. Both still run under:
if: steps.changesets.outputs.published == 'true'
published is Changesets reporting the publish script, not the registry. Slack is fed PUBLISHED_PACKAGES so the payload “matches the exact set of packages published.” generate-release-slack-payload.mjs never GETs npm. The post is :rocket: New release: <release url>.
continue-on-error: true is only there so a broken Slack token must not turn a successful release red (token_expired, then invalid_auth). It is not a dependency on the verify step.
GitHub Actions fail-fast means those two steps are skipped today when Verify every package version on this commit is on npm exits 1. That is job order, not an if. The authorize condition is still published == 'true'.
Why this matters
The invariant check-published.mjs exists to keep trustworthy is “every non-private package … must have its manifest version in the registry's version list, and the branch's dist-tag must point at it.” Slack and the GitHub Release still speak from Changesets' list.
So the room can be told the ship happened while the script would print NOT ON NPM, or while a version is only staged. Installers then hit the half-ship the comments already name: workflow pointing at an @workflow/core that does not exist yet.
Evidence
You already measured this on your own releases (from check-published.mjs):
- 5.0.0-beta.48 shipped 7 of 21 packages on its first attempt;
@workflow/webstayed staged for about a day. - 5.0.0-beta.49: just over 5m for
@workflow/webto appear in the registry. - 5.0.0-beta.50: 1m29s
@workflow/astro, 3m03s@workflow/core(9.4MB), 4m11s@workflow/web(11.3MB).
On that window, Changesets can already have published == 'true' (pnpm publish exited 0 once staged). The Slack/Release if would be true. The verify step would still be retrying or exiting 1.
What we would like
Gate Create GitHub Release and Post release notes to Slack on the verify step succeeding — the same “whatever the publish step's outcome” rule you already wrote — not only on steps.changesets.outputs.published == 'true'.
Either:
if: steps.changesets.outputs.published == 'true' && steps.<verify>.outcome == 'success'
or make those two steps needs the registry check so the announce cannot outrun “NOT ON NPM.”
Optionally have generate-release-slack-payload.mjs refuse to post unless the versions in PUBLISHED_PACKAGES are visible and dist-tagged, so the payload cannot say “New release” for a version the registry will not serve.
- Lingua principale
- TypeScript
- Stelle
- 2.5k
- Fork
- 401
- Merge medio
- 2g 36m
- PR unite (30g)
- 150
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di vercel/workflow
-
node-module-esbuild-plugin: getImportedIdentifier only checks the first named import when locating a violationForse già presa @div-cowboy l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
vercel/workflow#5057 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
code-transform.mdx §ID Generation omits the package-shipped `name@version` ID formForse già presa @Mohith26 l’ha presa 109 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
world-postgres: LISTEN clients lose non-enumerable pg password credentialsForse già presa @vishalrajofficial l’ha presa oggi. Aperta
Difficoltà 3/5 Mezza giornata Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
-
[world-local] SQLite never uses events_by_correlation, so hook_created writes scan the whole runAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di vercel/workflow
Issue simili
-
[BUG]: Duplicate preposition in heading and unformatted feedback text on Strengthen Argument pageApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
AOSSIE-Org/DebateAI#801 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
ci: repo has no GitHub Actions workflow, so pushes and pull requests are never built or testedApertaagents area: runtime automation chore cli consistency dependencies developer-experience difficulty: easy documentation enhancement good first issue help wanted hygiene json-output priority: P3 starters tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Add: BOM CineApertaapproved check:passed streams:add
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno