From 1f917c98434cb6194383e75dc4231fe22685ffef Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 15 Apr 2026 21:52:27 -0700 Subject: [PATCH 1/9] [eslint config] [base] add disabled `import/enforce-node-protocol-usage` rule --- packages/eslint-config-airbnb-base/rules/imports.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/eslint-config-airbnb-base/rules/imports.js b/packages/eslint-config-airbnb-base/rules/imports.js index d36e4908fa..b9453924dc 100644 --- a/packages/eslint-config-airbnb-base/rules/imports.js +++ b/packages/eslint-config-airbnb-base/rules/imports.js @@ -279,5 +279,9 @@ module.exports = { // https://github.com/import-js/eslint-plugin-import/blob/d5fc8b670dc8e6903dbb7b0894452f60c03089f5/docs/rules/no-empty-named-blocks.md // TODO, semver-minor: enable 'import/no-empty-named-blocks': 'off', + + // https://github.com/import-js/eslint-plugin-import/blob/3a99e4c8d3bfd2cd466353d11784eb06dad9b166/docs/rules/enforce-node-protocol-usage.md + // TODO, semver-major: enable + 'import/enforce-node-protocol-usage': ['off', 'never'], }, }; From 1aac72bd1db0bf6cc165879f7f80702d58e25cca Mon Sep 17 00:00:00 2001 From: AyushiN <36621150+ANaphade@users.noreply.github.com> Date: Sun, 22 May 2022 12:13:06 +0530 Subject: [PATCH 2/9] [eslint config] [base] make error message clearer Fixes #2428. --- packages/eslint-config-airbnb-base/rules/style.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-config-airbnb-base/rules/style.js b/packages/eslint-config-airbnb-base/rules/style.js index 2e7f6fed44..0645e8feec 100644 --- a/packages/eslint-config-airbnb-base/rules/style.js +++ b/packages/eslint-config-airbnb-base/rules/style.js @@ -345,7 +345,7 @@ module.exports = { }, { selector: 'ForOfStatement', - message: 'iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.', + message: 'iterators/generators require regenerator-runtime in older browsers/engines, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.', }, { selector: 'LabeledStatement', From 4d00a73bbb82c12a42eccf4371fbdf52b4ec4c21 Mon Sep 17 00:00:00 2001 From: Aditya Date: Thu, 3 Apr 2025 09:46:02 +0400 Subject: [PATCH 3/9] Added cross platform compatibility --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a78bc250d4..afe129da02 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "A mostly reasonable approach to JavaScript.", "scripts": { "preinstall": "npm run install:config && npm run install:config:base", - "postinstall": "rm -rf node_modules/markdownlint-cli/node_modules/markdownlint", + "postinstall": "rimraf node_modules/markdownlint-cli/node_modules/markdownlint", "install:config": "cd packages/eslint-config-airbnb && npm prune && npm install", "install:config:base": "cd packages/eslint-config-airbnb-base && npm prune && npm install", "lint": "markdownlint --config linters/.markdownlint.json README.md */README.md", @@ -41,6 +41,7 @@ "homepage": "https://github.com/airbnb/javascript", "devDependencies": { "markdownlint": "^0.29.0", - "markdownlint-cli": "^0.35.0" + "markdownlint-cli": "^0.35.0", + "rimraf": "^6.0.1" } } From b2260ca1b6adfec293b4fc1b5e8932e4fd79b9c1 Mon Sep 17 00:00:00 2001 From: Ashish Kurmi Date: Sun, 30 Oct 2022 23:41:47 -0700 Subject: [PATCH 4/9] [actions] setting minimum token permissions for github actions Signed-off-by: Ashish Kurmi --- .github/workflows/node-pretest.yml | 3 +++ .github/workflows/node.yml | 3 +++ .github/workflows/rebase.yml | 6 ++++++ .github/workflows/require-allow-edits.yml | 5 +++++ 4 files changed, 17 insertions(+) diff --git a/.github/workflows/node-pretest.yml b/.github/workflows/node-pretest.yml index 48c68f5955..7706a11e93 100644 --- a/.github/workflows/node-pretest.yml +++ b/.github/workflows/node-pretest.yml @@ -2,6 +2,9 @@ name: 'Tests: pretest/posttest' on: [pull_request, push] +permissions: + contents: read + jobs: pretest: runs-on: ubuntu-latest diff --git a/.github/workflows/node.yml b/.github/workflows/node.yml index 6fc77ea08d..fe45fe2cc0 100644 --- a/.github/workflows/node.yml +++ b/.github/workflows/node.yml @@ -2,6 +2,9 @@ name: 'Tests: node.js' on: [pull_request, push] +permissions: + contents: read + jobs: matrix: runs-on: ubuntu-latest diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml index 027aed0797..323387ccab 100644 --- a/.github/workflows/rebase.yml +++ b/.github/workflows/rebase.yml @@ -2,8 +2,14 @@ name: Automatic Rebase on: [pull_request_target] +permissions: + contents: read + jobs: _: + permissions: + contents: write # for ljharb/rebase to push code to rebase + pull-requests: read # for ljharb/rebase to get info about PR name: "Automatic Rebase" runs-on: ubuntu-latest diff --git a/.github/workflows/require-allow-edits.yml b/.github/workflows/require-allow-edits.yml index 549d7b4823..eb3631b9e3 100644 --- a/.github/workflows/require-allow-edits.yml +++ b/.github/workflows/require-allow-edits.yml @@ -2,8 +2,13 @@ name: Require “Allow Edits” on: [pull_request_target] +permissions: + contents: read + jobs: _: + permissions: + pull-requests: read # for ljharb/require-allow-edits to check 'allow edits' on PR name: "Require “Allow Edits”" runs-on: ubuntu-latest From 05b7f680fd115dbcd62db5f303f0385c041a2837 Mon Sep 17 00:00:00 2001 From: Padraic Slattery Date: Thu, 15 Jan 2026 19:11:36 +0100 Subject: [PATCH 5/9] [actions] Update outdated GitHub Actions versions --- .github/workflows/node-pretest.yml | 2 +- .github/workflows/node.yml | 12 ++++++------ .github/workflows/rebase.yml | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/node-pretest.yml b/.github/workflows/node-pretest.yml index 7706a11e93..cea4567406 100644 --- a/.github/workflows/node-pretest.yml +++ b/.github/workflows/node-pretest.yml @@ -21,7 +21,7 @@ jobs: working-directory: "packages/${{ matrix.package }}" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - uses: ljharb/actions/node/install@main name: 'nvm install lts/* && npm install' with: diff --git a/.github/workflows/node.yml b/.github/workflows/node.yml index fe45fe2cc0..af1b557d11 100644 --- a/.github/workflows/node.yml +++ b/.github/workflows/node.yml @@ -42,7 +42,7 @@ jobs: working-directory: "packages/${{ matrix.package }}" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - uses: ljharb/actions/node/install@main name: 'nvm install ${{ matrix.node-version }} && npm install' with: @@ -53,7 +53,7 @@ jobs: - run: node -pe "require('eslint/package.json').version" name: 'eslint version' - run: npm run travis - - uses: codecov/codecov-action@v2 + - uses: codecov/codecov-action@v5 react: needs: [matrix] @@ -77,7 +77,7 @@ jobs: working-directory: "packages/${{ matrix.package }}" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - uses: ljharb/actions/node/install@main name: 'nvm install ${{ matrix.node-version }} && npm install' with: @@ -90,7 +90,7 @@ jobs: - run: npm install --no-save "eslint-plugin-react-hooks@${{ matrix.react-hooks }}" if: ${{ matrix.react-hooks > 0}} - run: npm run travis - - uses: codecov/codecov-action@v2 + - uses: codecov/codecov-action@v5 prepublish-base: name: 'prepublish tests (base config)' @@ -109,7 +109,7 @@ jobs: working-directory: "packages/${{ matrix.package }}" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - uses: ljharb/actions/node/install@main name: 'nvm install lts/* && npm install' with: @@ -142,7 +142,7 @@ jobs: working-directory: "packages/${{ matrix.package }}" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - uses: ljharb/actions/node/install@main name: 'nvm install lts/* && npm install' with: diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml index 323387ccab..fff3ba2d33 100644 --- a/.github/workflows/rebase.yml +++ b/.github/workflows/rebase.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - uses: ljharb/rebase@master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 0f38f1c9dbdf61c7a6927c480ac53e80051444eb Mon Sep 17 00:00:00 2001 From: prateekbisht23 Date: Fri, 22 Aug 2025 15:37:31 +0530 Subject: [PATCH 6/9] [eslint-config] [*] [readme] add note about ESLint --ext --- packages/eslint-config-airbnb-base/README.md | 10 ++++++++++ packages/eslint-config-airbnb/README.md | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/packages/eslint-config-airbnb-base/README.md b/packages/eslint-config-airbnb-base/README.md index 6ddc34dac1..79052b256a 100644 --- a/packages/eslint-config-airbnb-base/README.md +++ b/packages/eslint-config-airbnb-base/README.md @@ -62,6 +62,16 @@ Our default export contains all of our ESLint rules, including ECMAScript 6+. It 2. Add `"extends": "airbnb-base"` to your .eslintrc. +> **Note**: ESLint only lints `.js` files by default. + + If your project uses `.jsx` (or `.tsx` with TypeScript), you need to pass extensions to the CLI: + + ```sh + eslint . --ext .js, .jsx, .mjs + ``` + + Without this, JSX-related rules will not apply to `.jsx` files. + ### eslint-config-airbnb-base/legacy Lints ES5 and below. Requires `eslint` and `eslint-plugin-import`. diff --git a/packages/eslint-config-airbnb/README.md b/packages/eslint-config-airbnb/README.md index 3b3f43196d..e18088143a 100644 --- a/packages/eslint-config-airbnb/README.md +++ b/packages/eslint-config-airbnb/README.md @@ -58,6 +58,15 @@ If you don't need React, see [eslint-config-airbnb-base](https://npmjs.com/eslin 2. Add `"extends": "airbnb"` to your `.eslintrc` +> **Note**: ESLint only lints `.js` files by default. + If your project uses `.jsx` (or `.tsx` with TypeScript), you need to pass extensions to the CLI: + + ```sh + eslint . --ext .js, .jsx, .mjs + ``` + + Without this, JSX-related rules will not apply to `.jsx` files. + ### eslint-config-airbnb/hooks This entry point enables the linting rules for React hooks (requires v16.8+). To use, add `"extends": ["airbnb", "airbnb/hooks"]` to your `.eslintrc`. From 7a6ef3e7db0f988932d73386af9c6a15a739f64f Mon Sep 17 00:00:00 2001 From: gabrielslach Date: Wed, 17 Feb 2021 16:08:21 +0800 Subject: [PATCH 7/9] [react] [readme] Update ARIA roles link --- react/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/react/README.md b/react/README.md index a590a19672..f61602d161 100644 --- a/react/README.md +++ b/react/README.md @@ -350,7 +350,7 @@ This style guide is mostly based on the standards that are currently prevalent i Me waving hello ``` - - Use only valid, non-abstract [ARIA roles](https://www.w3.org/TR/wai-aria/#usage_intro). eslint: [`jsx-a11y/aria-role`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-role.md) + - Use only valid, non-abstract [ARIA roles](https://www.w3.org/TR/wai-aria/#usage). eslint: [`jsx-a11y/aria-role`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-role.md) ```jsx // bad - not an ARIA role From ce3f8e9a090d74406c265758ab8da8cdbd88570b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Berthommier?= Date: Wed, 27 Jul 2022 14:45:56 +0200 Subject: [PATCH 8/9] [eslint config] [base] [fix] allow block comments with multiple * Allow comments like: ```js /** * Bla bla bla **/ ``` --- packages/eslint-config-airbnb-base/rules/style.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-config-airbnb-base/rules/style.js b/packages/eslint-config-airbnb-base/rules/style.js index 0645e8feec..ad38834d88 100644 --- a/packages/eslint-config-airbnb-base/rules/style.js +++ b/packages/eslint-config-airbnb-base/rules/style.js @@ -510,7 +510,7 @@ module.exports = { markers: ['=', '!', '/'], // space here to support sprockets directives, slash for TS /// comments }, block: { - exceptions: ['-', '+'], + exceptions: ['-', '+', '*'], markers: ['=', '!', ':', '::'], // space here to support sprockets directives and flow comment types balanced: true, } From 8ed19247bef145e3cc41b24a02dd1fe6d9b5e681 Mon Sep 17 00:00:00 2001 From: Eduard Barrera Date: Sat, 21 Feb 2026 17:48:29 -0500 Subject: [PATCH 9/9] [readme] use single quotes in nested ternary bad example (section 15.6) The bad example in section 15.6 (nested ternaries) used double-quoted string literals ('"bar"', '"baz"'), which contradicts section 6.1 of this same style guide that requires single quotes. Also related to issue #3152 which flagged inconsistent style conventions in code examples across sections. Fixes the bad example to use single-quoted strings consistently with the rest of the guide and with the good examples immediately below. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9a325a355b..bd91faf2ea 100644 --- a/README.md +++ b/README.md @@ -2133,8 +2133,8 @@ Other Style Guides ```javascript // bad const foo = maybe1 > maybe2 - ? "bar" - : value1 > value2 ? "baz" : null; + ? 'bar' + : value1 > value2 ? 'baz' : null; // split into 2 separated ternary expressions const maybeNull = value1 > value2 ? 'baz' : null;