ci: fix two release-pipeline bugs the first tag exposed - #247
Merged
Conversation
Both predate this work and neither had ever run, because v0.3.0 is the repo's first tag. npm version cannot bump a package in a pnpm workspace. After pnpm install, it reifies the lockfile and rejects `workspace:*` with EUNSUPPORTEDPROTOCOL — the CI log shows it printing the new version and then dying. build-vscode hit it; publish-cli has the identical step and would have hit it next, having never run because it needs both build jobs. Both now edit the single version key with node, which never invokes npm's resolver, and verify the result. The pinned Node sidecar checksum was wrong. `ef28d8fa…` matches no published tarball; the real node-v22.23.1-darwin-arm64.tar.xz is `fb526811860f81dcac7dd8b2b55eca4accfc5d61c3b7c2508f2639faee8a738d`, confirmed both from nodejs.org's SHASUMS256.txt and by hashing the download. The integrity check had therefore never passed once. Corrected the pin rather than relaxing the check — a committed hash protects against a compromised nodejs.org in a way that fetching SHASUMS256.txt at build time does not, but only while the hash is right. Added the command to re-derive it on the next Node bump. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This was referenced Aug 8, 2026
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.
Summary
Two more latent bugs in
release.yml, both surfaced by the secondv0.3.0run. Neither is a regression —v0.3.0is the repo's first tag, so none of this had ever executed.1.
npm versioncannot bump a package in a pnpm workspaceIt writes the version, then dies reifying the lockfile against
workspace:*dependencies.build-vscodehit it.publish-clihas the identical step and would have hit it next — it had never run because it needs both build jobs to succeed first.Both now edit the one key with
nodeand verify the result. No resolver involved.I confirmed the mechanism rather than assuming it:
npm versionsucceeds on a bare copy ofapps/vscode/package.json(nonode_modules) and only fails after an install, which matches the CI log exactly. The replacement leavesworkspace:*untouched.2. The pinned Node sidecar checksum was wrong
The workflow pinned
ef28d8fab2c0…. That matches no published tarball — not arm64, not x64.The real hash, verified two independent ways:
nodejs.org/dist/v22.23.1/SHASUMS256.txtfb526811…8a738dfb526811…8a738dSo this integrity check had never passed once.
I corrected the pin rather than relaxing the check. A committed hash protects against a compromised nodejs.org in a way that fetching
SHASUMS256.txtat build time does not — but only while the hash is right. Added the one-liner to re-derive it on the next Node bump.Test plan
npm versionfailure mode and verified the replacement preservesworkspace:*while setting the versionRelease notes label
release-notes:internal— CI infrastructureStill blocking the release, and not mine to decide
deepcode-clion npm is owned by someone else —guocong199708,guocong-bincai/deepcode-cli, currently 1.3.2, an unrelated Doubao CLI.apps/cli/package.jsonclaims that exact name, sopnpm publishwill 403. Renaming (scoped@deepcode/cli? something else?) is a branding decision that also rewrites the install line in README, quickstart, and the migration guide.gh api …/actions/secretsreturns none), sobuild-maccannot sign or notarize andpublish-clihas noNPM_TOKEN.docs/RELEASING.md§"One-time setup" lists the six.Related
Follows #246. Blocks the v0.3.0 release (#245).
🤖 Generated with Claude Code