Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ jobs:
strategy:
fail-fast: false
matrix:
# 22.x is deprecated but still supported: it stays required until the
# breaking-change release that drops it (first major on/after 2027-04-30).
# See README.md "Node.js Version Support Policy".
node-version: [22.x, 24.x, 26.x]
experimental: [false]
include:
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,4 @@ This will generate the necessary boilerplate for a new coin implementation.

## Node.js Version Support

BitGoJS supports Node.js versions 22 and later, including Node.js 26, with NPM >=3.10.10.
BitGoJS supports Node.js versions 22 and later, including Node.js 26, with NPM >=3.10.10. Node.js 22 is deprecated and will be removed from engines.node in the first major release on or after its 2027-04-30 end-of-life; see README.md "Node.js Version Support Policy".
4 changes: 3 additions & 1 deletion DEVELOPERS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Requirements

- yarn version 1 (classic)
- Node.js version 22 or later
- Node.js version 22 or later (Node.js 22 is deprecated and support ends with the first major release on or after 2027-04-30; Node.js 24 or 26 recommended)

# Installing

Expand Down Expand Up @@ -186,6 +186,8 @@ Engines should be set to the following:
}
```

Node.js 22 is deprecated; keep `>=22` until the removal release described in the [Node.js Version Support Policy](README.md#nodejs-version-support-policy), then change every package to `>=24` in a single breaking-change commit.

### `tsconfig.json`

There are a few things each module's `tsconfig.json` must do:
Expand Down
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,20 @@ BitGoJS currently provides support for the following Node versions per package.j
}
```

## Deprecation notice: Node.js 22

Node.js 22 is deprecated as of 2026-10-28, when Node.js 26 entered Active LTS. Node.js 22 remains supported, and required to pass continuous integration, until it reaches end-of-life on 2027-04-30. The first BitGoJS major release on or after 2027-04-30 will remove Node.js 22 from `engines.node` (changing it to `>=24`) and from the continuous integration matrix. Upgrade to Node.js 24 or 26 before then.

We specifically limit our support to these versions of Node, not because this package won't work on other versions, but because these versions tend to be the most widely used in practice. The packages may work correctly on newer or older versions, but only the supported versions below are required to pass continuous integration. We also run one newer Node.js release as a non-blocking early-warning check so incompatibilities are visible before that release becomes supported.

As each Node LTS version reaches its end-of-life we will exclude that version from the node engines property of our package's package.json file. Removing a Node version is considered a breaking change and will entail the publishing of a new major version of this package. We will not accept any requests to support an end-of-life version of Node, and any pull requests or issues regarding support for an end-of-life version of Node will be closed. We will accept code that allows this package to run on newer, non-LTS, versions of Node. Furthermore, we will attempt to ensure our own changes work on the latest version of Node. To help in that commitment, our continuous integration setup runs the full test suite on the latest release of the following versions of node:

- `22` (Maintenance LTS) — required to pass
- `22` (Maintenance LTS, deprecated; removal planned for the first major release on or after 2027-04-30) — required to pass
- `24` (Maintenance LTS) — required to pass
- `26` (Current) — required to pass
- `26` (Active LTS) — required to pass
- `27` nightly (experimental) — non-blocking; a failure posts a warning comment on the pull request

When a new Node.js major becomes supported, add it to the required `node-version` matrix in `.github/workflows/ci.yml` and update the `engines.node` range across all `modules/*/package.json` files if the range does not already include it. Keep exactly one newer release as the non-blocking early-warning check: when Node.js 28 development builds become available, replace the Node.js 27 nightly entry rather than adding another experimental matrix entry. Node.js 26 is required before its Long Term Support (LTS) transition, so its CI check is intentionally blocking already.
When a new Node.js major becomes supported, add it to the required `node-version` matrix in `.github/workflows/ci.yml` and update the `engines.node` range across all `modules/*/package.json` files if the range does not already include it. Keep exactly one newer release as the non-blocking early-warning check: when Node.js 28 development builds become available, replace the Node.js 27 nightly entry rather than adding another experimental matrix entry. When a new Node.js major enters Active LTS, mark the oldest supported LTS as deprecated in this section, keep it in the required matrix, and plan its removal for the first major release on or after its end-of-life date. Removal changes `engines.node` in every package and the generators, drops the version from the CI matrix, and must be committed with a `BREAKING CHANGE:` footer so the release publishes a major version of every package.

JavaScript package managers should allow you to install this package with any version of Node, with, at most, a warning if your version of Node does not fall within the range specified by our node engines property. If you encounter issues installing this package on a supported version of Node, please report the issue to us.

Expand Down
2 changes: 1 addition & 1 deletion modules/bitgo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ If you have questions or comments about this API, email support@bitgo.com.

# Installation

Ensure you're running Node.js version 22 or later, including Node.js 26, and NPM version 10.
Ensure you're running Node.js version 22 or later, including Node.js 26, and NPM version 10. Node.js 22 is deprecated and support will be removed in the first major release on or after 2027-04-30; use Node.js 24 or 26.
For setting your Node version, we recommend using `nvm` - the [Node Version Manager](https://github.com/creationix/nvm/blob/master/README.markdown#installation).

`npm install --save bitgo`
Expand Down
2 changes: 1 addition & 1 deletion modules/express/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ For users who are unable to run BitGo Express as a Docker container, we recommen

### Prerequisites

Use Node.js 22 or later. The required continuous integration checks cover Node.js 22, 24, and 26. We recommend using `nvm`, the [Node Version Manager](https://github.com/creationix/nvm/blob/master/README.markdown#installation), for setting your Node.js version. BitGo Express is part of the monorepo, so use `yarn` for local setup.
Use Node.js 22 or later. The required continuous integration checks cover Node.js 22, 24, and 26. Node.js 22 is deprecated and support will be removed in the first major release on or after 2027-04-30. We recommend using `nvm`, the [Node Version Manager](https://github.com/creationix/nvm/blob/master/README.markdown#installation), for setting your Node.js version. BitGo Express is part of the monorepo, so use `yarn` for local setup.

### Cloning the repository and installing dependencies

Expand Down
1 change: 1 addition & 0 deletions scripts/sdk-coin-generator-v2/core/generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,7 @@ export class Generator {
author: 'BitGo SDK Team <sdkteam@bitgo.com>',
license: 'MIT',
engines: {
// Keep in sync with README.md "Node.js Version Support Policy"; Node.js 22 is deprecated but remains in range until the removal major release.
node: '>=22',
},
repository: {
Expand Down
Loading