Skip to content

fix(ci): declare yellowstone-grpc patch in package.json so frozen install resolves (Blocker A of #344) - #375

Merged
rz1989s merged 1 commit into
mainfrom
fix/declare-yellowstone-patch
Sep 23, 2026
Merged

rz1989s merged 1 commit into
mainfrom
fix/declare-yellowstone-patch

Conversation

@rz1989s

@rz1989s rz1989s commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

Implements the KEEP-AND-DECLARE fix for Blocker A documented in #344 (Sep 22 comment). Does not merge any dependency bumps — it unblocks the 6-PR pass that starts after this merges.

Root cause (reproduced, deterministic)

pnpm install --frozen-lockfile on every lockfile-touching Dependabot branch fails:

ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  Cannot proceed with the frozen installation. The current "patchedDependencies" configuration doesn't match the value found in the lockfile
# main (pnpm 10):                       # dependabot regen:
patchedDependencies:                    patchedDependencies:
  '@triton-one/yellowstone-grpc@4.0.2':   '@triton-one/yellowstone-grpc@4.0.2': 3c931d…
    hash: 3c931d…
    path: patches/@triton-one__….patch
  • pnpm 10's frozen check then rejects the hash-only entry against the declared {hash, path} config. Reproduced locally with pnpm 10.34.5 on origin/dependabot/npm_and_yarn/minor-and-patch-e6685aadf7.

Change

KEEP-AND-DECLARE: move the explicit declaration into package.json (pnpm.patchedDependencies) — the classic location read by pnpm 9, pnpm 10, and Dependabot — and remove it from pnpm-workspace.yaml. Two files, no lockfile change.

Patch is still required — not dropped

Patch 3e07c9c (fixes sip-protocol#1077) adds {"type":"module"} / {"type":"commonjs"} markers to dist/esm/ of the pinned @triton-one/yellowstone-grpc@4.0.2; without them tsx fails to resolve named ESM imports. The npm tarball is immutable and still lacks the markers (patch applies cleanly), so it cannot be obsolete.

Verified locally (pnpm 10.34.5 — CI's major)

  • pnpm install --frozen-lockfile → green; patch applied (dist/esm/package.json = {"type":"module"} present in node_modules)
  • Full regen pnpm install --no-frozen-lockfile → pnpm-lock.yaml byte-identical to main (zero diff)
  • Frozen check matrix: {hash,path} lockfile + either declaration site → green; hash-only lockfile → red at both declaration sites

What this fixes and what it doesn't

…stall

Root cause of ERR_PNPM_LOCKFILE_CONFIG_MISMATCH on all lockfile-touching
Dependabot PRs (#374/#358/#357): the patch is declared only in
pnpm-workspace.yaml (a pnpm-10-only settings location). Dependabot's
updater pnpm cannot read it, so its lockfile regen rewrites the
patchedDependencies section to a hash-only inline entry; pnpm 10's
frozen check then rejects the mismatch against the declared config.

Keep-and-declare: move the explicit declaration to package.json
pnpm.patchedDependencies — the classic location read by pnpm 9, pnpm 10,
and Dependabot — and drop it from pnpm-workspace.yaml.

Verified locally (pnpm 10.34.5, CI's major):
- pnpm install --frozen-lockfile green; patch applied (dist/esm markers)
- full regen 'pnpm install --no-frozen-lockfile' leaves pnpm-lock.yaml
  byte-identical to main
- patch still required: it creates the dist/esm type:module/type:commonjs
  markers upstream 4.0.2 lacks (sip-protocol#1077, tsx named-import fix)
@vercel

vercel Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
sipher Ready Ready Preview Sep 23, 2026 3:11am UTC

@rz1989s
rz1989s merged commit d533422 into main Sep 23, 2026
8 checks passed
@rz1989s
rz1989s deleted the fix/declare-yellowstone-patch branch September 23, 2026 04:06

This branch was successfully deployed

1 active deployment
Preview — 123dda61 Deployed Sep 23, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant