Repository navigation
ci(npm): re-publish an existing release tag via a tag input - #2794
Merged
Merged
Conversation
publish-js.yml and publish-wasm.yml accept an optional tag input on manual dispatch. scripts/resolve_publish_source.sh resolves the commit every job builds: the tag's exact commit (published as latest) when the input is set, otherwise the workflow ref as before. The workflow definition must be the tag's or current main's, and the source must be reachable from main. Publish JS gates a re-published tag with the workflow commit's JS tests, so test-only fixes landed after the tag (#2780) apply. Recovers 0.20.1, which never reached npm, without cutting a new version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | 4169a6a | Commit Preview URL Branch Preview URL |
Oct 29 2026, 10:26 PM |
CodeQL flagged cache poisoning: build-js, build-wasm and release-js restore default-branch caches after checking out the resolved publish source. The source is verified on main, but artifacts that ship should not depend on cache state either, so drop pnpm/cargo/rust-cache in those jobs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and GHSA-f86p-h4j2-7qgj Lockfile-only refresh within solid-js's ~1.6.8 range; clears the Audit job. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
CI notes for the first push:
Generated by Claude Code |
CodeQL's cache-poisoning finding is about running code after checking out a computed ref in a default-branch context, not about the cache actions: it stayed at 5 alerts with every cache removed. Keep the caches. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-vchqx5 # Conflicts: # site/pnpm-lock.yaml
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 free
to 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.
Requested by Михайло · project thread
What changed
Publish JSandPublish Webaccept an optionaltaginput on manual dispatch. When it is set, every job builds that release tag's exact commit, using the current workflow definition, and publishes as npmlatest:scripts/resolve_publish_source.shresolves the source commit and dist-tag once inverify-source. Every later checkout uses that SHA, and the publish jobs assert it.vX.Y.Z, the workflow ref must be the tag or currentmain, the source must be reachable frommain, and the version must matchpackage.json.latest, and any other ref publishesnext.Publish JSgates a re-published tag with the workflow commit'scrates/bashkit-js/__test__. Tests aren't in the tarball, so the shipped bytes are still the tag's. This lets fix(js): unblock npm release by sizing the host-callback timeout for Rosetta #2780's Rosetta timeout fix apply to v0.20.1.Why
0.20.1 never reached npm (both packages are still on 0.19.0). Re-running at the tag uses the tag's workflow, which still reads the revoked
NPM_TOKEN. A plain dispatch frommainbuilds main's code and publishesnext. This publishes the real 0.20.1 bytes without a new version.Before / After
knowledge/operations/release-process.md).tag=v0.20.1from main resolves to0e9bb551(v0.20.1) aslatest.next.Tests:
scripts/tests/test_resolve_publish_source.py(7 cases on a scratch git origin), plus a workflow test that every post-verify checkout uses the resolved SHA.python3 -m unittest discover -s scripts/testspasses, and so dojust check-workflow-parityand the doc link check.Risk
--ref vX.Y.Z, no input) resolves to the same SHA and dist-tag as before.__test__frommainassumes main's tests still target the tag's API. For v0.20.1 the only difference is fix(js): unblock npm release by sizing the host-callback timeout for Rosetta #2780.Checklist