Skip to content

Conversation

gabrocheleau
Copy link
Contributor

@gabrocheleau gabrocheleau commented Sep 25, 2025

This PR migrates npm to pnpm, notably to address issues where npm packagel-lock is generate to be environment specific (e.g. Linux or Mac). Pnpm allows cross-platform lockfiles.

@gabrocheleau gabrocheleau added type: meta package: monorepo dependencies Pull requests that update a dependency file labels Sep 25, 2025
- Add submodule checkout and caching to build.yml, ci.yml, and docker-image.yml
- Fix Docker workflow pnpm setup order
- Remove test step from build jobs to prevent dependent job failures
- Ensure ethereum-tests submodule is available for tx package tests
- Fix spellcheck.yml, lint.yml, noCompile.yml, and typecheck.yml
- Move pnpm/action-setup before actions/setup-node to fix 'Unable to locate executable file: pnpm' error
- Ensures pnpm is available when Node.js setup tries to use it for caching
…flows

- Add package.json, pnpm-lock.yaml, and pnpm-workspace.yaml to Dockerfile
- Fix pnpm setup order in lockfile.yml and spellcheck.yml workflows
- Add dependency installation to spellcheck workflow
…properly

- Add pnpm installation to Dockerfile
- Run pnpm install to properly set up workspace dependencies
- This ensures workspace packages are correctly linked in the container
- Fix pnpm/action-setup@v4 to run before actions/setup-node@v5 in all workflows
- This ensures pnpm is available when Node.js setup tries to use it for caching
- Fixes 'Unable to locate executable file: pnpm' errors in CI
- Also convert remaining npm usage to pnpm in vm-pr.yml
- Remove cache: 'pnpm' from Node.js setup steps in blockchain-build.yml and client-build.yml
- This should fix 'Dependencies lock file is not found' error
- Workflows already have manual cache restore/install steps
- Remove cache: 'pnpm' from all Node.js setup steps across all workflow files
- This fixes the 'Dependencies lock file is not found' error
- Workflows already have manual cache restore/install steps for dependency management
- This approach avoids conflicts with defaults.run.working-directory settings
…flows

- Add working-directory: ${{ github.workspace }} to pnpm install commands in:
  - build.yml
  - node-versions.yml
  - spellcheck.yml
- This ensures pnpm install runs from the repository root where pnpm-lock.yaml is located
- Fixes 'No package.json found' error in CI workflows
- Install pnpm before setup-node (so cache: 'pnpm' works)
- Add sanity check to verify package.json exists at root
- Install dependencies from workspace root with --prefer-offline
- Use pnpm --filter to target specific packages
- Remove defaults.run.working-directory (run everything from root)
- This follows the correct pnpm workspace pattern
- Restore pnpm caching (now that pnpm is installed first)
- Add sanity check to verify package.json exists at root
- Use pnpm --filter to target blockchain package
- Remove defaults.run.working-directory
- Install dependencies from workspace root with --prefer-offline
Copy link

codecov bot commented Oct 3, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.81%. Comparing base (e1b7733) to head (e31153b).

Additional details and impacted files

Impacted file tree graph

Flag Coverage Δ
block ?
blockchain ?
common 97.52% <100.00%> (ø)
evm ?
mpt ?
rlp ?
statemanager ?
static 99.77% <ø> (ø)
tx 90.04% <ø> (ø)
util 88.73% <100.00%> (ø)
vm ?

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file package: monorepo type: meta
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant