From c5c71dd03532d94a6ee3c35bdd365373ef72068c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20De=20Boey?= Date: Sat, 16 May 2020 19:15:16 +0200 Subject: [PATCH] feat: Support ESLint 7.x BREAKING CHANGE: Requires Node@>=10.x --- .github/workflows/CI.yml | 108 +++++++++++++++++++++------------------ docs/README.md | 2 +- package.json | 13 +++-- test/pattern-matcher.js | 2 +- 4 files changed, 69 insertions(+), 56 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 95a6301..d3cb9d4 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -5,64 +5,74 @@ on: pull_request: branches: [master] schedule: - - cron: 0 0 * * 0 + - cron: 0 0 * * 0 jobs: lint: name: Lint runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v1 - with: - fetch-depth: 1 - - name: Install Node.js - uses: actions/setup-node@v1 - with: - node-version: 12 - - name: Install Packages - run: npm install - - name: Lint - run: npm run -s lint + - name: Checkout + uses: actions/checkout@v2 + - name: Install Node.js + uses: actions/setup-node@v2 + with: + node-version: 14 + - name: Install Packages + run: npm install + - name: Lint + run: npm run -s lint test: name: Test strategy: matrix: - node: [12, 10, 8, 6] - eslint: [6, 5] - exclude: - # ESLint 6 doesn't support Node 6. - - node: 6 - eslint: 6 - # Run ESLint 5 on only the newest and oldest Node. - - node: 10 - eslint: 5 - - node: 8 - eslint: 5 - runs-on: ubuntu-latest + os: [ubuntu-latest] + eslint: [7] + node: [14] + include: + # On other platforms + - eslint: 7 + node: 14 + os: windows-latest + - eslint: 7 + node: 14 + os: macos-latest + # On old Node.js versions + - eslint: 7 + node: 12 + os: ubuntu-latest + - eslint: 7 + node: 10 + os: ubuntu-latest + # On old ESLint versions + - eslint: 6 + node: 14 + os: ubuntu-latest + - eslint: 5 + node: 14 + os: ubuntu-latest + # On the minimum supported ESLint/Node.js version + - eslint: 5 + node: 10 + os: ubuntu-latest + runs-on: ${{ matrix.os }} steps: - - name: Checkout - uses: actions/checkout@v1 - with: - fetch-depth: 1 - - name: Install Node.js v${{ matrix.node }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node }} - - name: Install Packages - run: | - if [ ${{ matrix.node }} -eq 6 ]; then - npm install --global npm@^6.0.0 - fi - npm install - - name: Install ESLint v${{ matrix.eslint }} - run: npm install --no-save eslint@^${{ matrix.eslint }}.0.0 - - name: Build - run: npm run -s build - - name: Test - run: npm run -s test:mocha - - name: Send Coverage - run: npm run -s codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + - name: Checkout + uses: actions/checkout@v2 + - name: Install Node.js v${{ matrix.node }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node }} + - name: Install Packages + run: npm install + - name: Install ESLint ${{ matrix.eslint }} + run: npm install --no-save eslint@${{ matrix.eslint }} + - name: Build + run: npm run -s build + - name: Test + run: npm run -s test:mocha + - name: Send Coverage + run: npm run -s codecov + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/docs/README.md b/docs/README.md index d00b86f..1f85bdf 100644 --- a/docs/README.md +++ b/docs/README.md @@ -19,7 +19,7 @@ npm install eslint-utils ``` ::: tip Requirements -`eslint-utils` requires Node.js `6.5.0` or newer versions. +`eslint-utils` requires Node.js `10` or newer versions. ::: ## 📖 Usage diff --git a/package.json b/package.json index 661a97f..5cce223 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "2.1.0", "description": "Utilities for ESLint plugins.", "engines": { - "node": ">=6" + "node": ">=10" }, "sideEffects": false, "main": "index", @@ -12,15 +12,15 @@ "index.*" ], "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "devDependencies": { - "@mysticatea/eslint-plugin": "^12.0.0", + "@mysticatea/eslint-plugin": "^13.0.0", "codecov": "^3.6.1", "dot-prop": "^4.2.0", - "eslint": "^6.5.1", + "eslint": "^7.24.0", "esm": "^3.2.25", - "espree": "^6.1.1", + "espree": "^7.3.1", "mocha": "^6.2.2", "npm-run-all": "^4.1.5", "nyc": "^14.1.1", @@ -32,6 +32,9 @@ "vuepress": "^1.2.0", "warun": "^1.0.0" }, + "peerDependencies": { + "eslint": ">=5" + }, "scripts": { "prebuild": "npm run -s clean", "build": "rollup -c", diff --git a/test/pattern-matcher.js b/test/pattern-matcher.js index 717867f..f679397 100644 --- a/test/pattern-matcher.js +++ b/test/pattern-matcher.js @@ -3,7 +3,7 @@ import { PatternMatcher } from "../src/" const NAMED_CAPTURE_GROUP_SUPPORTED = (() => { try { - new RegExp("(?)", "u") //eslint-disable-line no-new, prefer-regex-literals, @mysticatea/node/no-unsupported-features/es-syntax + new RegExp("(?)", "u") //eslint-disable-line no-new, prefer-regex-literals return true } catch (_error) { return false