From ef75d979eccc5035e437134e1879b5216a3f8e13 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Fri, 1 Dec 2023 15:52:02 -0700 Subject: [PATCH] Bump min Node version to 18.18; use LTS for dev Now that both extension and mobile are using Node 18, we can follow suit. --- .github/workflows/lint-build-test.yml | 4 ++-- .nvmrc | 2 +- constraints.pro | 4 ++-- docs/contributing.md | 4 ++-- package.json | 2 +- packages/accounts-controller/package.json | 2 +- packages/address-book-controller/package.json | 2 +- packages/announcement-controller/package.json | 2 +- packages/approval-controller/package.json | 2 +- packages/assets-controllers/package.json | 2 +- packages/base-controller/package.json | 2 +- packages/build-utils/package.json | 2 +- packages/composable-controller/package.json | 2 +- packages/controller-utils/package.json | 2 +- packages/ens-controller/package.json | 2 +- packages/eth-json-rpc-provider/package.json | 2 +- packages/gas-fee-controller/package.json | 2 +- packages/json-rpc-engine/package.json | 2 +- packages/json-rpc-middleware-stream/package.json | 2 +- packages/keyring-controller/package.json | 2 +- packages/logging-controller/package.json | 2 +- packages/message-manager/package.json | 2 +- packages/name-controller/package.json | 2 +- packages/network-controller/package.json | 2 +- packages/notification-controller/package.json | 2 +- packages/permission-controller/package.json | 2 +- packages/permission-log-controller/package.json | 2 +- packages/phishing-controller/package.json | 2 +- packages/polling-controller/package.json | 2 +- packages/preferences-controller/package.json | 2 +- packages/queued-request-controller/package.json | 2 +- packages/rate-limit-controller/package.json | 2 +- packages/selected-network-controller/package.json | 2 +- packages/signature-controller/package.json | 2 +- packages/transaction-controller/package.json | 2 +- packages/user-operation-controller/package.json | 2 +- 36 files changed, 39 insertions(+), 39 deletions(-) diff --git a/.github/workflows/lint-build-test.yml b/.github/workflows/lint-build-test.yml index cc4849112f7..837a02f2ba6 100644 --- a/.github/workflows/lint-build-test.yml +++ b/.github/workflows/lint-build-test.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [16.x, 18.x, 20.x] + node-version: [18.x, 20.x] outputs: child-workspace-package-names: ${{ steps.workspace-package-names.outputs.child-workspace-package-names }} steps: @@ -105,7 +105,7 @@ jobs: needs: prepare strategy: matrix: - node-version: [16.x, 18.x, 20.x] + node-version: [18.x, 20.x] package-name: ${{ fromJson(needs.prepare.outputs.child-workspace-package-names) }} steps: - uses: actions/checkout@v3 diff --git a/.nvmrc b/.nvmrc index 6f7f377bf51..b009dfb9d9f 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v16 +lts/* diff --git a/constraints.pro b/constraints.pro index 985205b5a53..84cc63f1b55 100644 --- a/constraints.pro +++ b/constraints.pro @@ -408,8 +408,8 @@ gen_enforced_dependency(WorkspaceCwd, DependencyIdent, CorrectPeerDependencyRang atom_concat('^', CurrentDependencyVersion, CorrectPeerDependencyRange) ). -% All packages must specify a minimum Node version of 16. -gen_enforced_field(WorkspaceCwd, 'engines.node', '>=16.0.0'). +% All packages must specify a minimum Node version of 18. +gen_enforced_field(WorkspaceCwd, 'engines.node', '^18.18 || >=20'). % All published packages are public. gen_enforced_field(WorkspaceCwd, 'publishConfig.access', 'public') :- diff --git a/docs/contributing.md b/docs/contributing.md index 79f13d39909..55f2c9b9f33 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -2,8 +2,8 @@ ## Getting started -- Install [Node.js](https://nodejs.org) version 16. - - If you're using [NVM](https://github.com/creationix/nvm#installation) (recommended), `nvm use` will ensure that the right version is installed. +- Install the current LTS version of [Node.js](https://nodejs.org) + - If you are using [nvm](https://github.com/creationix/nvm#installation) (recommended) running `nvm install` will install the latest version and running `nvm use` will automatically choose the right node version for you. - Install [Yarn v3](https://yarnpkg.com/getting-started/install). - Run `yarn install` to install dependencies and run any required post-install scripts. - Run `yarn simple-git-hooks` to add a [Git hook](https://github.com/toplenboren/simple-git-hooks#what-is-a-git-hook) to your local development environment which will ensure that all files pass linting before you push a branch. diff --git a/package.json b/package.json index e7f873d933c..a7102efe73d 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ }, "packageManager": "yarn@3.3.0", "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "lavamoat": { "allowScripts": { diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index bc4ad85ca81..7f6f2cd15ee 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -70,7 +70,7 @@ "@metamask/snaps-controllers": "^4.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index 4ef0c0880fd..c53f67216bb 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -56,7 +56,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/announcement-controller/package.json b/packages/announcement-controller/package.json index 084a8647ed8..bfa44cdbc0b 100644 --- a/packages/announcement-controller/package.json +++ b/packages/announcement-controller/package.json @@ -54,7 +54,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 90ed56f94a3..bfaef0c883d 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -58,7 +58,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 68ffa81d55f..2b92f9e3635 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -95,7 +95,7 @@ "@metamask/preferences-controller": "^9.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/base-controller/package.json b/packages/base-controller/package.json index 90d4fe3f82b..5a515d8afe4 100644 --- a/packages/base-controller/package.json +++ b/packages/base-controller/package.json @@ -56,7 +56,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/build-utils/package.json b/packages/build-utils/package.json index 60b52b6a5b9..f8f8d900791 100644 --- a/packages/build-utils/package.json +++ b/packages/build-utils/package.json @@ -56,7 +56,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/composable-controller/package.json b/packages/composable-controller/package.json index 772a743b396..da4d357029e 100644 --- a/packages/composable-controller/package.json +++ b/packages/composable-controller/package.json @@ -57,7 +57,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index e4eee16c6ac..531b82fb814 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -63,7 +63,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index bab30fe118a..cc5ff3ea57d 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -62,7 +62,7 @@ "@metamask/network-controller": "^18.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/eth-json-rpc-provider/package.json b/packages/eth-json-rpc-provider/package.json index aff9660f15b..94f7b8fff8e 100644 --- a/packages/eth-json-rpc-provider/package.json +++ b/packages/eth-json-rpc-provider/package.json @@ -62,7 +62,7 @@ }, "packageManager": "yarn@3.3.0", "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index a4b21b23c4a..60e79fab205 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -71,7 +71,7 @@ "@metamask/network-controller": "^18.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/json-rpc-engine/package.json b/packages/json-rpc-engine/package.json index bc10052229d..e4b4ead38df 100644 --- a/packages/json-rpc-engine/package.json +++ b/packages/json-rpc-engine/package.json @@ -67,7 +67,7 @@ }, "packageManager": "yarn@3.3.0", "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/json-rpc-middleware-stream/package.json b/packages/json-rpc-middleware-stream/package.json index 87e636653c1..b0690a9f923 100644 --- a/packages/json-rpc-middleware-stream/package.json +++ b/packages/json-rpc-middleware-stream/package.json @@ -61,7 +61,7 @@ "webextension-polyfill-ts": "^0.26.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index e053db9e30f..0850e866e25 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -74,7 +74,7 @@ "uuid": "^8.3.2" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/logging-controller/package.json b/packages/logging-controller/package.json index 023479f8f61..c3347fb608f 100644 --- a/packages/logging-controller/package.json +++ b/packages/logging-controller/package.json @@ -56,7 +56,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/message-manager/package.json b/packages/message-manager/package.json index 17bf0fd1345..36f50477334 100644 --- a/packages/message-manager/package.json +++ b/packages/message-manager/package.json @@ -60,7 +60,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index a8ecafea8dd..776d1c73689 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -57,7 +57,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index a26efd025b4..e561a540e41 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -74,7 +74,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/notification-controller/package.json b/packages/notification-controller/package.json index 6f61db32356..1c314687fb9 100644 --- a/packages/notification-controller/package.json +++ b/packages/notification-controller/package.json @@ -56,7 +56,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index 0356c202413..65e4d498d20 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -66,7 +66,7 @@ "@metamask/approval-controller": "^6.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/permission-log-controller/package.json b/packages/permission-log-controller/package.json index b2d18735c14..e0b2319b58d 100644 --- a/packages/permission-log-controller/package.json +++ b/packages/permission-log-controller/package.json @@ -59,7 +59,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/phishing-controller/package.json b/packages/phishing-controller/package.json index a1a9f923b5e..8c1cfe43c29 100644 --- a/packages/phishing-controller/package.json +++ b/packages/phishing-controller/package.json @@ -60,7 +60,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/polling-controller/package.json b/packages/polling-controller/package.json index 27c459bb0cb..ca198c90c35 100644 --- a/packages/polling-controller/package.json +++ b/packages/polling-controller/package.json @@ -64,7 +64,7 @@ "@metamask/network-controller": "^18.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index 0a138d76bce..77ff607ba26 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -60,7 +60,7 @@ "@metamask/keyring-controller": "^14.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/queued-request-controller/package.json b/packages/queued-request-controller/package.json index 0fb608c171d..4e0be542f07 100644 --- a/packages/queued-request-controller/package.json +++ b/packages/queued-request-controller/package.json @@ -69,7 +69,7 @@ "@metamask/selected-network-controller": "^10.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/rate-limit-controller/package.json b/packages/rate-limit-controller/package.json index b2da9d5b33f..8edd01c7a77 100644 --- a/packages/rate-limit-controller/package.json +++ b/packages/rate-limit-controller/package.json @@ -56,7 +56,7 @@ "typescript": "~4.8.4" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index 37773958e0a..23a38a76ec7 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -67,7 +67,7 @@ "@metamask/permission-controller": "^9.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index 25f3abf96e1..54115b4cdff 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -67,7 +67,7 @@ "@metamask/logging-controller": "^3.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index adddd09d032..aa078554cbf 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -87,7 +87,7 @@ "@metamask/network-controller": "^18.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public", diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index df66a68824e..8e6c38ea853 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -77,7 +77,7 @@ "@metamask/transaction-controller": "^25.0.0" }, "engines": { - "node": ">=16.0.0" + "node": "^18.18 || >=20" }, "publishConfig": { "access": "public",