diff --git a/.github/actions/yarn-install/action.yml b/.github/actions/yarn-install/action.yml index d42f20c80b..059f7650f2 100644 --- a/.github/actions/yarn-install/action.yml +++ b/.github/actions/yarn-install/action.yml @@ -4,10 +4,6 @@ inputs: type: string required: false default: '20.x' - ignore-engines: - type: string - required: false - default: 'false' runs: using: "composite" @@ -19,5 +15,5 @@ runs: cache-dependency-path: yarn.lock check-latest: true - name: Install Dependencies - run: yarn install --frozen-lockfile --non-interactive --ignore-scripts ${{ inputs.ignore-engines == 'true' && '--ignore-engines' || ''}} + run: yarn install --frozen-lockfile --non-interactive --ignore-scripts shell: bash diff --git a/.github/workflows/build-test-and-deploy.yml b/.github/workflows/build-test-and-deploy.yml index 84af90081e..85250bbdb3 100644 --- a/.github/workflows/build-test-and-deploy.yml +++ b/.github/workflows/build-test-and-deploy.yml @@ -47,18 +47,11 @@ jobs: fail-fast: false matrix: runs-on: ['ubuntu-latest'] - node-version: ['18.0', '18.x', '20.x'] - include: - - runs-on: ubuntu-latest - node-version: '18.0' - # @typescript-eslint/eslint-plugin requires node ^18.18 - # but we allow yarn install to run regardless to test the package - ignore-engines: 'true' + node-version: ['18.18', '18.x', '20.x'] uses: ./.github/workflows/test.yml with: node-version: ${{ matrix.node-version }} runs-on: ${{ matrix.runs-on }} - ignore-engines: ${{ matrix.ignore-engines }} deploy: # runs only on tag pushes diff --git a/.github/workflows/nightly-node-compatibility-validation.yml b/.github/workflows/nightly-node-compatibility-validation.yml index 6a4d7341b1..c3a1dd90ed 100644 --- a/.github/workflows/nightly-node-compatibility-validation.yml +++ b/.github/workflows/nightly-node-compatibility-validation.yml @@ -20,17 +20,11 @@ jobs: matrix: runs-on: ['ubuntu-latest'] node-version: [ # https://github.com/nodejs/release#release-schedule - '18.0', # minimum supported + '18.18', # minimum supported 'lts/-1', # pre-latest lts 'lts/*', # latest lts 'current' # newest ] - include: - - runs-on: ubuntu-latest - node-version: '18.0' - # @typescript-eslint/eslint-plugin requires node ^18.18 - # but we allow yarn install to run regardless to test the package - ignore-engines: 'true' uses: ./.github/workflows/test.yml with: node-version: ${{ matrix.node-version }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 05da26590a..556d64ed14 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,10 +10,6 @@ on: type: string required: false default: '20.x' - ignore-engines: - type: string - required: false - default: 'false' jobs: test: name: "Tests [Node.js ${{ inputs.node-version }}, ${{ inputs.runs-on }}]" @@ -23,6 +19,5 @@ jobs: - uses: ./.github/actions/yarn-install with: node-version: ${{ inputs.node-version }} - ignore-engines: ${{ inputs.ignore-engines }} - name: Run Jest Tests run: yarn jest --ci --maxWorkers 4 --reporters=default --reporters=jest-junit --rootdir='./' diff --git a/package.json b/package.json index d7de6251c9..59047d8ea4 100644 --- a/package.json +++ b/package.json @@ -94,6 +94,6 @@ "license": "MIT", "dependencies": {}, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/buck-worker-tool/package.json b/packages/buck-worker-tool/package.json index 33e4396d5b..1d68992567 100644 --- a/packages/buck-worker-tool/package.json +++ b/packages/buck-worker-tool/package.json @@ -19,6 +19,6 @@ "cleanup-release": "test ! -e build && mv src build && mv src.real src" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-babel-register/package.json b/packages/metro-babel-register/package.json index a1b450b651..2c09ebe818 100644 --- a/packages/metro-babel-register/package.json +++ b/packages/metro-babel-register/package.json @@ -26,6 +26,6 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-babel-transformer/package.json b/packages/metro-babel-transformer/package.json index c370277b34..2d3fac7674 100644 --- a/packages/metro-babel-transformer/package.json +++ b/packages/metro-babel-transformer/package.json @@ -23,6 +23,6 @@ "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-cache-key/package.json b/packages/metro-cache-key/package.json index 7e80116809..777f14edd5 100644 --- a/packages/metro-cache-key/package.json +++ b/packages/metro-cache-key/package.json @@ -15,10 +15,10 @@ "devDependencies": { "metro-memory-fs": "0.80.11" }, - "engines": { - "node": ">=18" - }, "dependencies": { "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=18.18" } } diff --git a/packages/metro-cache/package.json b/packages/metro-cache/package.json index 3493963200..667ed0487c 100644 --- a/packages/metro-cache/package.json +++ b/packages/metro-cache/package.json @@ -21,6 +21,6 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index 3ab1d172ce..90b7e64e81 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -29,6 +29,6 @@ "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-core/package.json b/packages/metro-core/package.json index c0848bdb73..369c9a75b3 100644 --- a/packages/metro-core/package.json +++ b/packages/metro-core/package.json @@ -18,6 +18,6 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-file-map/package.json b/packages/metro-file-map/package.json index 4551fdb193..4bbdba3a76 100644 --- a/packages/metro-file-map/package.json +++ b/packages/metro-file-map/package.json @@ -32,6 +32,6 @@ "fsevents": "^2.3.2" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-memory-fs/package.json b/packages/metro-memory-fs/package.json index a7d0f1d8cc..209269c3cc 100644 --- a/packages/metro-memory-fs/package.json +++ b/packages/metro-memory-fs/package.json @@ -12,10 +12,10 @@ "cleanup-release": "test ! -e build && mv src build && mv src.real src" }, "license": "MIT", - "engines": { - "node": ">=18" - }, "dependencies": { "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=18.18" } } diff --git a/packages/metro-minify-terser/package.json b/packages/metro-minify-terser/package.json index 8d04b5721e..00b3e70450 100644 --- a/packages/metro-minify-terser/package.json +++ b/packages/metro-minify-terser/package.json @@ -17,6 +17,6 @@ "terser": "^5.15.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-resolver/package.json b/packages/metro-resolver/package.json index 8a0647503c..b4eb5812c1 100644 --- a/packages/metro-resolver/package.json +++ b/packages/metro-resolver/package.json @@ -13,7 +13,7 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" }, "devDependencies": { "metro": "0.80.11" diff --git a/packages/metro-runtime/package.json b/packages/metro-runtime/package.json index 6390c442e1..4eca50ca6d 100644 --- a/packages/metro-runtime/package.json +++ b/packages/metro-runtime/package.json @@ -23,6 +23,6 @@ "react-test-renderer": "19.0.0-rc-fb9a90fa48-20240614" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-source-map/package.json b/packages/metro-source-map/package.json index a28e57d5b6..2dfb04bff6 100644 --- a/packages/metro-source-map/package.json +++ b/packages/metro-source-map/package.json @@ -30,6 +30,6 @@ "terser": "^5.15.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-symbolicate/package.json b/packages/metro-symbolicate/package.json index 0182ffa6a0..9e2a62dbb1 100644 --- a/packages/metro-symbolicate/package.json +++ b/packages/metro-symbolicate/package.json @@ -26,6 +26,6 @@ "vlq": "^1.0.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-transform-plugins/package.json b/packages/metro-transform-plugins/package.json index d7dc658170..765cfe1788 100644 --- a/packages/metro-transform-plugins/package.json +++ b/packages/metro-transform-plugins/package.json @@ -30,6 +30,6 @@ "metro": "0.80.11" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-transform-worker/package.json b/packages/metro-transform-worker/package.json index b5bcef39f3..90f9f842aa 100644 --- a/packages/metro-transform-worker/package.json +++ b/packages/metro-transform-worker/package.json @@ -32,6 +32,6 @@ "metro-memory-fs": "0.80.11" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro/package.json b/packages/metro/package.json index 760811ea7b..51220a9212 100644 --- a/packages/metro/package.json +++ b/packages/metro/package.json @@ -73,6 +73,6 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro/src/integration_tests/__tests__/server-test.js b/packages/metro/src/integration_tests/__tests__/server-test.js index 2b77da6372..24baedf584 100644 --- a/packages/metro/src/integration_tests/__tests__/server-test.js +++ b/packages/metro/src/integration_tests/__tests__/server-test.js @@ -19,20 +19,11 @@ jest.unmock('cosmiconfig'); jest.setTimeout(60 * 1000); -// Can't set the "Connection" header in node < 18.14.1 (undici < 5.15.0): https://github.com/nodejs/undici/pull/1829, -// However in these versions "Connection" is set to "close" by default in node 18 anyway comparing with later version -const [nodeVersionMajor, nodeVersionMinor, nodeVersionPatch] = - process.versions.node.split('.').map(Number); -const canSetConnectionHeader = - nodeVersionMajor > 18 || - (nodeVersionMajor === 18 && nodeVersionMinor > 14) || - (nodeVersionMajor === 18 && nodeVersionMinor === 14 && nodeVersionPatch >= 1); - // Workaround for https://github.com/nodejs/node/issues/54484: -// Fetch with connection: close to prevent Node reusing connections across tests +// Fetch with {Connection: 'close'} to prevent Node reusing connections across tests const fetchAndClose = (path: string) => fetch(path, { - headers: canSetConnectionHeader ? {Connection: 'close'} : {}, + headers: {Connection: 'close'}, }); describe('Metro development server serves bundles via HTTP', () => { diff --git a/packages/ob1/package.json b/packages/ob1/package.json index 887ccb904b..7c9cf428f4 100644 --- a/packages/ob1/package.json +++ b/packages/ob1/package.json @@ -19,6 +19,6 @@ "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }