OpenZeppelin / OpenZeppelin/openzeppelin-relayer

Bump plugin runtime Node.js from 20 to 24

Open
#855 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

D-medium T-feature
Dominant language
Rust
Stars
150
Forks
72
Avg merge
8d 9h
Merged PRs (30d)
2

Description

Context

Production image currently ships Node 20 (EOL 2026-04-30) while plugins/ already requires >=22:

  • @openzeppelin/relayer-sdk@1.10.0 declares engines: { node: '>=22.14.0' }
  • Image ships 20.19.6 → live engine violation (warning only without engine-strict)

Node 20 receives no further upstream security fixes. Scan flagged CVE-2025-55130 in 20.19.6.

Current pin nodejs=~${NODE_VERSION} with NODE_VERSION=20.19 is a prefix match, frozen to 20.19.x since #266. No automation alerts on it.

Proposal

Migrate to Node 24 (Active LTS, EOL 2028-04-30).

  • 22 is maintenance (EOL 2027-04-30) — would need another bump next year
  • 26 is not LTS until 2026-10-28

Pin by major so patches flow in on rebuild:

Acceptance criteria

  • Dockerfile.production and Dockerfile.development use nodejs-24
  • CI uses Node 24
  • node --version reports 24.x in built image (amd64/arm64)
  • pnpm install no longer warns about unsupported engine for relayer-sdk
  • pnpm test in plugins/ + cargo test services::plugins green
  • One example plugin runs with PLUGIN_USE_POOL=true and false

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with Dockerfile.production and Dockerfile.development, then locate the CI configuration that selects the Node version. Check the plugins tests and the services::plugins Rust tests before rebuilding for amd64 and arm64. Done means Node reports 24.x, pnpm no longer warns about relayer-sdk, both test suites pass, and an example plugin works with PLUGIN_USE_POOL=true and false.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, node.js, rust
Domain
devops, infrastructure, testing
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
66/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.