From 89fd797b15408ac636276761afd576e3378a249b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20De=20Boey?= Date: Tue, 29 Oct 2024 15:58:13 +0100 Subject: [PATCH] feat: drop Node 4, 6, 8, 10, 12, 14 & 16 support BREAKING CHANGE: Requires Node@^18.18.0 || ^20.9.0 || >=21.1.0 --- .eslintrc | 10 +- .github/workflows/node-minors.yml | 117 ------------------- .github/workflows/{node-18+.yml => node.yml} | 4 +- package.json | 2 +- 4 files changed, 4 insertions(+), 129 deletions(-) delete mode 100644 .github/workflows/node-minors.yml rename .github/workflows/{node-18+.yml => node.yml} (97%) diff --git a/.eslintrc b/.eslintrc index 894df7caa9..45ccdd5d03 100644 --- a/.eslintrc +++ b/.eslintrc @@ -34,17 +34,10 @@ "consistent-return": 0, "prefer-destructuring": [2, { "array": false, "object": false }, { "enforceForRenamedProperties": false }], - "prefer-object-spread": 0, // until node 8 is required - "prefer-rest-params": 0, // until node 6 is required - "prefer-spread": 0, // until node 6 is required - "function-call-argument-newline": 1, // TODO: enable + "function-call-argument-newline": 1, "function-paren-newline": 0, "no-plusplus": [2, {"allowForLoopAfterthoughts": true}], "no-param-reassign": 1, - "no-restricted-syntax": [2, { - "selector": "ObjectPattern", - "message": "Object destructuring is not compatible with Node v4" - }], "strict": [2, "safe"], "valid-jsdoc": [2, { "requireReturn": false, @@ -78,7 +71,6 @@ "rules": { "camelcase": 0, "no-console": 0, - "no-restricted-syntax": 0, }, }, ], diff --git a/.github/workflows/node-minors.yml b/.github/workflows/node-minors.yml deleted file mode 100644 index 69f92684ea..0000000000 --- a/.github/workflows/node-minors.yml +++ /dev/null @@ -1,117 +0,0 @@ -name: 'Tests: node.js (4 - 18)' - -on: [pull_request, push] - -jobs: - matrix: - runs-on: ubuntu-latest - outputs: - latest: ${{ steps.set-matrix.outputs.requireds }} - minors: ${{ steps.set-matrix.outputs.optionals }} - steps: - - uses: ljharb/actions/node/matrix@main - id: set-matrix - with: - versionsAsRoot: true - type: majors - preset: '>=4 < 18' - - latest: - needs: [matrix] - name: 'latest majors' - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - node-version: ${{ fromJson(needs.matrix.outputs.latest) }} - eslint: - - 8 - - 7 - - 6 - - 5 - - 4 - - 4.14 # last version without messageId - - 3 - babel-eslint: - - 10 - - 9 - - 8 - exclude: - - node-version: 5 - babel-eslint: 10 - - node-version: 5 - babel-eslint: 9 - - node-version: 4 - babel-eslint: 10 - - node-version: 4 - babel-eslint: 9 - - node-version: 15 - eslint: 8 - - node-version: 13 - eslint: 8 - - node-version: 11 - eslint: 8 - - node-version: 11 - eslint: 7 - - node-version: 10 - eslint: 8 - - node-version: 9 - eslint: 8 - - node-version: 9 - eslint: 7 - - node-version: 8 - eslint: 8 - - node-version: 8 - eslint: 7 - - node-version: 7 - eslint: 8 - - node-version: 7 - eslint: 7 - - node-version: 7 - eslint: 6 - - node-version: 6 - eslint: 8 - - node-version: 6 - eslint: 7 - - node-version: 6 - eslint: 6 - - node-version: 5 - eslint: 8 - - node-version: 5 - eslint: 7 - - node-version: 5 - eslint: 6 - - node-version: 5 - eslint: 5 - - node-version: 4 - eslint: 8 - - node-version: 4 - eslint: 7 - - node-version: 4 - eslint: 6 - - node-version: 4 - eslint: 5 - - steps: - - uses: actions/checkout@v4 - - uses: ljharb/actions/node/install@main - name: 'nvm install ${{ matrix.node-version }} && npm install' - with: - node-version: ${{ matrix.node-version }} - after_install: | - npm install --no-save "eslint@${{ matrix.eslint }}" "@typescript-eslint/parser@${{ matrix.node-version >= 18 && matrix.eslint >= 8 && '8' || (matrix.node-version >= 16 && matrix.eslint >= 7 && '6' || (matrix.node-version >= 14 && '5' || (matrix.node-version >= 12 && '4' || (matrix.node-version >= 10 && '4.0' || (matrix.node-version >= 8 && '3' || '2'))))) }}" "babel-eslint@${{ matrix.babel-eslint }}" - skip-ls-check: ${{ matrix.node-version < 10 && true || false }} - env: - NPM_CONFIG_LEGACY_PEER_DEPS: "${{ matrix.node-version >= 16 && matrix.eslint >= 7 && 'false' || 'true' }}" - - run: npx ls-engines - if: ${{ matrix.node-version >= 12 }} - - run: npm run unit-test - - uses: codecov/codecov-action@v3.1.5 - - node: - name: 'node 4 - 17' - needs: [latest] - runs-on: ubuntu-latest - steps: - - run: 'echo tests completed' diff --git a/.github/workflows/node-18+.yml b/.github/workflows/node.yml similarity index 97% rename from .github/workflows/node-18+.yml rename to .github/workflows/node.yml index ee7d126939..56d96887a0 100644 --- a/.github/workflows/node-18+.yml +++ b/.github/workflows/node.yml @@ -1,4 +1,4 @@ -name: 'Tests: node.js (18+)' +name: 'Tests: node.js' on: [pull_request, push] @@ -14,7 +14,7 @@ jobs: with: versionsAsRoot: true type: majors - preset: '>=18' + preset: '^18.18.0 || ^20.9.0 || >=21.1.0' latest: needs: [matrix] diff --git a/package.json b/package.json index 510549d6a8..a101431e34 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" }, "engines": { - "node": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "keywords": [ "eslint",