Pin Docker, CI, and packageManager to pnpm 12.3.4 (npm latest).
Unpinned Docker installs now get pnpm 12, which rejects `pnpm fetch
--frozen-lockfile` (fetch always uses the lockfile). Install via
npm install -g instead of corepack: Node 22's bundled corepack still
looks for bin/pnpm.cjs and cannot run the Rust 12.x binary. Record an
allowBuilds policy so pnpm 11+ lifecycle-script review succeeds.
Details
- Reviewers
PiRK - Group Reviewers
Restricted Project - Commits
- rABC35bd61985f5e: [monorepo] Upgrade pnpm to 12.3.4
- npm install -g pnpm@12.3.4 && pnpm --version
- pnpm install --frozen-lockfile
- pnpm fetch
- pnpm --filter b58-ts run build && pnpm --filter b58-ts test
- pnpm --filter ecashaddrjs run build && pnpm --filter ecashaddrjs test
- After land, CashtabappCom and ecash-herald Docker builds succeed past the fetch step
Diff Detail
- Repository
- rABC Bitcoin ABC
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review
Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────
(\(\
(• .•) Your cache invalidation strategy is 'vibes and hope'.
────────────────────────────────────────────────────────────────────────
major [Stability & Availability] → ]8;;vscode://file//work/modules/ecashaddrjs/Dockerfile:7modules/ecashaddrjs/Dockerfile:7]8;; Use a Node.js version supported by pnpm 12. pnpm@12.3.4 declares node >=18.*, but this image uses node:16-buster-slim. The later pnpm install and pnpm publish commands can fail under Node.js 16. Update the base image to Node.js 22, or use a pnpm release that supports Node.js 16.
────────────────────────────────────────────────────────────────────────
major [Stability & Availability] → ]8;;vscode://file//work/ecashaddrjs.Dockerfile:7ecashaddrjs.Dockerfile:7]8;; Use a Node.js runtime supported by pnpm 12. node:16-buster-slim cannot install or run pnpm@12.3.4. Use Node.js 22.13 or newer, or pin a pnpm release that supports Node.js 16 and this project's lockfile format.
────────────────────────────────────────
Review complete
2 findings ✔
Major 2
28 files reviewed:
- CONTRIBUTING.md
- apps/marlin-wallet/web/install-dependencies.sh
- b58-ts.Dockerfile
- cashtab-connect.Dockerfile
- cashtab-faucet.Dockerfile
- cashtab.Dockerfile
- cashtab/install-deps.sh
- charts.e.cash.Dockerfile
- chronik-client.Dockerfile
- contrib/teamcity/build-configurations.yml
... and 18 more files
────────────────────────────────────────
Print all AI prompts: coderabbit review --show-prompts
Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review
Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────
(\(\
(• .•) If programmers were electricians, parallel programmers would be bomb disposal experts. Both cut wires. - Bartosz Milewski
────────────────────────────────────────────────────────────────────────
major [Functional Correctness] → ]8;;vscode://file//work/modules/ecashaddrjs/Dockerfile:7modules/ecashaddrjs/Dockerfile:7]8;; Use a Node.js version supported by pnpm 12. This image uses node:16-buster-slim, but installs pnpm@12.3.4. pnpm 12 does not support Node.js 16, so the later pnpm install step may fail. -FROM node:16-buster-slim +FROM node:22-bookworm-slim
────────────────────────────────────────
Review complete
1 finding ✔
Major 1
28 files reviewed:
- CONTRIBUTING.md
- apps/marlin-wallet/web/install-dependencies.sh
- b58-ts.Dockerfile
- cashtab-connect.Dockerfile
- cashtab-faucet.Dockerfile
- cashtab.Dockerfile
- cashtab/install-deps.sh
- charts.e.cash.Dockerfile
- chronik-client.Dockerfile
- contrib/teamcity/build-configurations.yml
... and 18 more files
────────────────────────────────────────
Print all AI prompts: coderabbit review --show-prompts
Bump leftover ecashaddrjs publish image from node:16-buster-slim to node:22-bookworm-slim so pnpm 12 can run.
Rebase onto D20594 and delete unused modules/ecashaddrjs/Dockerfile (publish uses repo-root ecashaddrjs.Dockerfile).
Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review
Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────
(\(\
(• .•) Finish what you start. Where possible, the routine or object that allocates a resource should be responsible for deallocating it.
────────────────────────────────────────
Review complete
No findings ✔
28 files reviewed:
- CONTRIBUTING.md
- apps/marlin-wallet/web/install-dependencies.sh
- b58-ts.Dockerfile
- cashtab-connect.Dockerfile
- cashtab-faucet.Dockerfile
- cashtab.Dockerfile
- cashtab/install-deps.sh
- charts.e.cash.Dockerfile
- chronik-client.Dockerfile
- contrib/teamcity/build-configurations.yml
... and 18 more files
────────────────────────────────────────
Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review
Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────
(\(\
(• .•) Your code is like a magic trick: now you see it... now it's undefined.
────────────────────────────────────────────────────────────────────────
major [Data Integrity & Integration] → ]8;;vscode://file//work/package.json:3package.json:3]8;; Regenerate and commit pnpm-lock.yaml with pnpm 12.3.4. If pmOnFail: ignore is not configured, frozen installs can fail with ERR_PNPM_FROZEN_LOCKFILE_WITH_OUTDATED_LOCKFILE when packageManagerDependencies does not match package.json.
────────────────────────────────────────
Review complete
1 finding ✔
Major 1
28 files reviewed:
- CONTRIBUTING.md
- apps/marlin-wallet/web/install-dependencies.sh
- b58-ts.Dockerfile
- cashtab-connect.Dockerfile
- cashtab-faucet.Dockerfile
- cashtab.Dockerfile
- cashtab/install-deps.sh
- charts.e.cash.Dockerfile
- chronik-client.Dockerfile
- contrib/teamcity/build-configurations.yml
... and 18 more files
────────────────────────────────────────
Print all AI prompts: coderabbit review --show-prompts
Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review
Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────
(\(\
(• .•) Here's Johnny! Ready to axe those bugs.
────────────────────────────────────────
Review complete
No findings ✔
28 files reviewed:
- CONTRIBUTING.md
- apps/marlin-wallet/web/install-dependencies.sh
- b58-ts.Dockerfile
- cashtab-connect.Dockerfile
- cashtab-faucet.Dockerfile
- cashtab.Dockerfile
- cashtab/install-deps.sh
- charts.e.cash.Dockerfile
- chronik-client.Dockerfile
- contrib/teamcity/build-configurations.yml
... and 18 more files
────────────────────────────────────────
Failed tests logs:
====== Test expected websocket behavior of chronik-client: After this block is avalanche parked.Test expected websocket behavior of chronik-client After this block is avalanche parked ======
AssertionError: expected undefined to deeply equal { type: 'Tx', …(2) }
at Context.<anonymous> (test/integration/websocket.ts:854:42)
at processTicksAndRejections (node:internal/process/task_queues:105:5)
+ expected - actual: failed to generate Mocha diffEach failure log is accessible here:
Test expected websocket behavior of chronik-client: After this block is avalanche parked.Test expected websocket behavior of chronik-client After this block is avalanche parked
Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review
Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────
(\(\
(• .•) I see you chose the 'dynamic typing' difficulty setting. On purpose.
────────────────────────────────────────
Review complete
No findings ✔
28 files reviewed:
- CONTRIBUTING.md
- apps/marlin-wallet/web/install-dependencies.sh
- b58-ts.Dockerfile
- cashtab-connect.Dockerfile
- cashtab-faucet.Dockerfile
- cashtab.Dockerfile
- cashtab/install-deps.sh
- charts.e.cash.Dockerfile
- chronik-client.Dockerfile
- contrib/teamcity/build-configurations.yml
... and 18 more files
────────────────────────────────────────
Rebase onto latest master (ws flake fix + unused Dockerfile already landed). Lockfile still generated by pnpm 12.3.4; frozen install and fetch succeed.
Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review
Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────
(\(\
(• .•) Here comes the bug bouncer.
────────────────────────────────────────────────────────────────────────
minor [Data Integrity & Integration] → ]8;;vscode://file//work/package.json:3package.json:3]8;; Synchronize pnpm-lock.yaml with pnpm@12.3.4. pnpm 12 records the resolved package-manager version in pnpm-lock.yaml. Dockerfiles use pnpm install --frozen-lockfile, so the unchanged lockfile can fail image builds with ERR_PNPM_FROZEN_LOCKFILE_WITH_OUTDATED_LOCKFILE. Run `pnpm install --lockfile-only` with pnpm 12.3.4 and commit the resulting lockfile changes.
────────────────────────────────────────
Review complete
1 finding ✔
Minor 1
27 files reviewed:
- CONTRIBUTING.md
- apps/marlin-wallet/web/install-dependencies.sh
- b58-ts.Dockerfile
- cashtab-connect.Dockerfile
- cashtab-faucet.Dockerfile
- cashtab.Dockerfile
- cashtab/install-deps.sh
- charts.e.cash.Dockerfile
- chronik-client.Dockerfile
- contrib/teamcity/build-configurations.yml
... and 17 more files
────────────────────────────────────────
Print all AI prompts: coderabbit review --show-prompts
| apps/marlin-wallet/web/install-dependencies.sh | ||
|---|---|---|
| 25 ↗ | (On Diff #61273) | the --frozen-lockfile flag is not supported for pnpm fetch in 12 |
Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review
Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────
(\(\
(• .•) Never bring a script to a dependency battle - bring a lockfile.
────────────────────────────────────────────────────────────────────────
major [Stability & Availability] → ]8;;vscode://file//work/package.json:3package.json:3]8;; Regenerate pnpm-lock.yaml for pnpm 12.3.4 package.json pins pnpm 12.3.4, but the lockfile lacks matching packageManagerDependencies metadata. The Docker and CI frozen installs can reject this outdated lockfile before building. Regenerate and commit pnpm-lock.yaml with pnpm 12.3.4.
────────────────────────────────────────
Review complete
1 finding ✔
Major 1
27 files reviewed:
- CONTRIBUTING.md
- apps/marlin-wallet/web/install-dependencies.sh
- b58-ts.Dockerfile
- cashtab-connect.Dockerfile
- cashtab-faucet.Dockerfile
- cashtab.Dockerfile
- cashtab/install-deps.sh
- charts.e.cash.Dockerfile
- chronik-client.Dockerfile
- contrib/teamcity/build-configurations.yml
... and 17 more files
────────────────────────────────────────
Print all AI prompts: coderabbit review --show-prompts