Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: replace Karma with Webdriver.IO #17126

Merged
merged 22 commits into from Aug 30, 2023

Conversation

christian-bromann
Copy link
Contributor

The current test framework for browser testing (Karma) is not maintained anymore and WebdriverIO provides a more modern stack that allows to test in different browser.

This patch replaces these test frameworks.

fixes: #17009

Prerequisites checklist

What is the purpose of this pull request? (put an "X" next to an item)

[ ] Documentation update
[x] Bug fix (template)
[ ] New rule (template)
[ ] Changes an existing rule (template)
[ ] Add autofix to a rule
[ ] Add a CLI option
[ ] Add something to the core
[ ] Other, please explain:

What changes did you make? (Give an overview)

Is there anything you'd like reviewers to focus on?

This is still a work in progress PR but I would like the maintainer to take a quick look and verify that they are ok with the change.

@christian-bromann christian-bromann requested a review from a team as a code owner April 26, 2023 21:00
@eslint-github-bot eslint-github-bot bot added the chore This change is not user-facing label Apr 26, 2023
@netlify
Copy link

netlify bot commented Apr 26, 2023

Deploy Preview for docs-eslint canceled.

Name Link
🔨 Latest commit a00fa6e
🔍 Latest deploy log https://app.netlify.com/sites/docs-eslint/deploys/64dbad6b6e938600086b9e42

lib/linter/rules.js Outdated Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
@mdjermanovic mdjermanovic added the evaluating The team will evaluate this issue to decide whether it meets the criteria for inclusion label Apr 27, 2023
@mdjermanovic mdjermanovic marked this pull request as draft April 27, 2023 06:43
@mdjermanovic
Copy link
Member

I converted this to draft to prevent accidental merging since it's still work in progress and some tests are .skip-ed,

Copy link
Member

@mdjermanovic mdjermanovic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we still use webpack as that's the scenario we'd like to test since we're using webpack to build the Playground.

@christian-bromann
Copy link
Contributor Author

Can we still use webpack

WebdriverIO uses Vite to power the component tests (including mocking etc.). Let me check if I can just bundle with webpack and import the compiled files. This would make the setup also simpler.

@github-actions
Copy link

github-actions bot commented May 7, 2023

Hi everyone, it looks like we lost track of this pull request. Please review and see what the next steps are. This pull request will auto-close in 7 days without an update.

@github-actions github-actions bot added the Stale label May 7, 2023
@Rec0iL99
Copy link
Member

Rec0iL99 commented May 8, 2023

Don't close. Work in progress.

@Rec0iL99 Rec0iL99 removed the Stale label May 8, 2023
@github-actions
Copy link

Hi everyone, it looks like we lost track of this pull request. Please review and see what the next steps are. This pull request will auto-close in 7 days without an update.

@github-actions github-actions bot added the Stale label May 18, 2023
@aladdin-add aladdin-add self-assigned this May 19, 2023
@christian-bromann
Copy link
Contributor Author

christian-bromann commented May 19, 2023

Sorry, haven't forgotten about this. Will try to put some time in this or next week to finish it. Can we remove the stale label?

@aladdin-add aladdin-add removed the Stale label May 19, 2023
@aladdin-add
Copy link
Member

@christian-bromann no worries, I've removed it.

@christian-bromann
Copy link
Contributor Author

Made some progress on this:

  • removed the changes in EsLint core
  • use the webpack build artifact within the browser test
  • removed unused puppeteer dependency
  • used WebdriverIO based mocking for two tests as Sinon can't spy on ESM modules

Note: for the mocking to work I had to use import syntax. I will have to push an enhancement to WebdriverIO to switch back to require but I wonder if this test is also run in Node.js because if not I can just make everything an import statement.

@christian-bromann
Copy link
Contributor Author

The build is failing due to:

/home/runner/work/eslint/eslint/tests/lib/linter/linter.js
  12:1  error  Parsing error: 'import' and 'export' may appear only with 'sourceType: module'

Unfortunately WebdriverIOs mocking features only work when using import. Since the linter.js test is run within the browser I wonder if we can move the file into a directory for browser tests and change the file to use ESM. What do you think?

@mdjermanovic
Copy link
Member

Note: for the mocking to work I had to use import syntax. I will have to push an enhancement to WebdriverIO to switch back to require but I wonder if this test is also run in Node.js because if not I can just make everything an import statement

This test file is run in Node.js too. Perhaps we could make another bundle from tests/lib/linter/linter.js entry point and then run that file in a browser?

@nzakas
Copy link
Member

nzakas commented Jun 6, 2023

@christian-bromann are you still working on this?

@christian-bromann
Copy link
Contributor Author

@nzakas yes, sorry for my delay, still many competing tasks but will try to get back to it in the following days

@BYK
Copy link
Member

BYK commented Jun 29, 2023

@christian-bromann do you need any help with pushing this over the finish line? Looks like it is close so I'd like to help if you need any.

@christian-bromann
Copy link
Contributor Author

Thanks for pinging and sorry for the delay. I have been 2 weeks on vacation. Put it on my todo for this week.

@christian-bromann
Copy link
Contributor Author

@kecrily @mdjermanovic I updated the branch, all wdio dependencies and made the path to the spec file more explicit. This should resolve the issue for you (I assume you've been running the command outside of the root dir). Let me know if there is anything else I can do.

@nzakas
Copy link
Member

nzakas commented Aug 14, 2023

@christian-bromann the test is now failing on the PR

@christian-bromann
Copy link
Contributor Author

@nzakas pushed a fix for it. I missed to remove the Chromedriver dependencies which is now all built-into WebdriverIO. Due to differences between CI and my local machine it passed when I tested it but failed in CI. Should be good to go now.

package.json Outdated Show resolved Hide resolved
@aladdin-add
Copy link
Member

seems working fine on my macos! 👍

Copy link
Member

@kecrily kecrily left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

kecrily

This comment was marked as duplicate.

@aladdin-add aladdin-add merged commit 926a286 into eslint:main Aug 30, 2023
22 checks passed
@aladdin-add
Copy link
Member

merged, thanks for contributing! 👍

@christian-bromann christian-bromann deleted the cb-webdriverio-tests branch August 30, 2023 05:50
@christian-bromann
Copy link
Contributor Author

Thanks folks for the support 👍 don't hesitate to ping me if you run into any issues with the tests.

@mdjermanovic
Copy link
Member

Question: Does this expect that Chrome is already installed and what happens if it isn't? Asking because we previously had issues with the browser test on our Jenkins server that we use for releases, and then we added puppeteer to fix the problem (#11027). But, puppeteer is removed now, so I'm worried if this test will work on our Jenkins server.

@christian-bromann
Copy link
Contributor Author

Currently WebdriverIO will prefer the browser installed on the host OS, if no Chrome is installed it will automatically install latest stable release of Chrome. If you set browserVersion: 'stable' in your capabilities it will always download the latest stable release.

nzakas pushed a commit that referenced this pull request Sep 6, 2023
* test: replace Karma with Webdriver.IO

The current test framework for browser testing (Karma) is not maintained anymore and WebdriverIO provides a more modern stack that allows to test in different browser.

This patch replaces these test frameworks.

fixes: #17009

* update webdriverio deps

* PR feedback

* adjust tests

* build eslint before running tests

* make test file an esm file

* revert more esm changes

* make it work

* remove return value

* custom log dir for wdio tests

* auto detect chromedriver

* bump timeout, store logs

* bump timeout again

* update wdio deps

* update wdio deps

* set log level to trace

* update wdio deps and unskip tests

* no need to have this be an async test

* update deps

* make path spec file explicit

* remove Chromedriver deps

* removed wdio command
ChrisW-B pushed a commit to ChrisW-B/PersonalApi that referenced this pull request Sep 10, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`6.5.0` -> `6.6.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.5.0/6.6.0) |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`6.5.0` -> `6.6.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.5.0/6.6.0) |
| [@typescript-eslint/typescript-estree](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`6.5.0` -> `6.6.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2ftypescript-estree/6.5.0/6.6.0) |
| [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | minor | [`8.48.0` -> `8.49.0`](https://renovatebot.com/diffs/npm/eslint/8.48.0/8.49.0) |
| [netlify-cli](https://github.com/netlify/cli) | devDependencies | minor | [`16.2.0` -> `16.3.1`](https://renovatebot.com/diffs/npm/netlify-cli/16.2.0/16.3.1) |

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/eslint-plugin)</summary>

### [`v6.6.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#660-2023-09-04)

[Compare Source](typescript-eslint/typescript-eslint@v6.5.0...v6.6.0)

##### Bug Fixes

-   **eslint-plugin:** \[key-spacing] consider properties with parens and comments ([#&#8203;7525](typescript-eslint/typescript-eslint#7525)) ([7012279](typescript-eslint/typescript-eslint@7012279))

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/parser)</summary>

### [`v6.6.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#660-2023-09-04)

[Compare Source](typescript-eslint/typescript-eslint@v6.5.0...v6.6.0)

**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser)

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/typescript-estree)</summary>

### [`v6.6.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-estree/CHANGELOG.md#660-2023-09-04)

[Compare Source](typescript-eslint/typescript-eslint@v6.5.0...v6.6.0)

**Note:** Version bump only for package [@&#8203;typescript-eslint/typescript-estree](https://github.com/typescript-eslint/typescript-estree)

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

</details>

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.49.0`](https://github.com/eslint/eslint/releases/tag/v8.49.0)

[Compare Source](eslint/eslint@v8.48.0...v8.49.0)

#### Features

-   [`da09f4e`](eslint/eslint@da09f4e) feat: Implement onUnreachableCodePathStart/End ([#&#8203;17511](eslint/eslint#17511)) (Nicholas C. Zakas)
-   [`32b2327`](eslint/eslint@32b2327) feat: Emit deprecation warnings in RuleTester ([#&#8203;17527](eslint/eslint#17527)) (Nicholas C. Zakas)
-   [`acb7df3`](eslint/eslint@acb7df3) feat: add new `enforce` option to `lines-between-class-members` ([#&#8203;17462](eslint/eslint#17462)) (Nitin Kumar)

#### Documentation

-   [`ecfb54f`](eslint/eslint@ecfb54f) docs: Update README (GitHub Actions Bot)
-   [`de86b3b`](eslint/eslint@de86b3b) docs: update `no-promise-executor-return` examples ([#&#8203;17529](eslint/eslint#17529)) (Nitin Kumar)
-   [`032c4b1`](eslint/eslint@032c4b1) docs: add typescript template ([#&#8203;17500](eslint/eslint#17500)) (James)
-   [`cd7da5c`](eslint/eslint@cd7da5c) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`b7621c3`](eslint/eslint@b7621c3) chore: remove browser test from `npm test` ([#&#8203;17550](eslint/eslint#17550)) (Milos Djermanovic)
-   [`cac45d0`](eslint/eslint@cac45d0) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).49.0 ([#&#8203;17549](eslint/eslint#17549)) (Milos Djermanovic)
-   [`cd39508`](eslint/eslint@cd39508) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`203a971`](eslint/eslint@203a971) ci: bump actions/checkout from 3 to 4 ([#&#8203;17530](eslint/eslint#17530)) (dependabot\[bot])
-   [`a40fa50`](eslint/eslint@a40fa50) chore: use eslint-plugin-jsdoc's flat config ([#&#8203;17516](eslint/eslint#17516)) (Milos Djermanovic)
-   [`926a286`](eslint/eslint@926a286) test: replace Karma with Webdriver.IO ([#&#8203;17126](eslint/eslint#17126)) (Christian Bromann)
-   [`f591d2c`](eslint/eslint@f591d2c) chore: Upgrade config-array ([#&#8203;17512](eslint/eslint#17512)) (Nicholas C. Zakas)

</details>

<details>
<summary>netlify/cli (netlify-cli)</summary>

### [`v16.3.1`](https://github.com/netlify/cli/blob/HEAD/CHANGELOG.md#1631-2023-09-06)

[Compare Source](netlify/cli@v16.3.0...v16.3.1)

##### Bug Fixes

-   **deps:** update dependency [@&#8203;netlify/build](https://github.com/netlify/build) to v29.20.13 ([#&#8203;5981](netlify/cli#5981)) ([d9545fa](netlify/cli@d9545fa))
-   **deps:** update dependency [@&#8203;netlify/edge-bundler](https://github.com/netlify/edge-bundler) to v8.19.1 ([#&#8203;5983](netlify/cli#5983)) ([9d86237](netlify/cli@9d86237))

### [`v16.3.0`](https://github.com/netlify/cli/blob/HEAD/CHANGELOG.md#1630-2023-09-06)

[Compare Source](netlify/cli@v16.2.0...v16.3.0)

##### Features

-   support `context.params` + `config.method` in functions + edge functions ([#&#8203;5970](netlify/cli#5970)) ([6afe7bd](netlify/cli@6afe7bd))

##### Bug Fixes

-   **deps:** update netlify packages ([#&#8203;5972](netlify/cli#5972)) ([34e0faa](netlify/cli@34e0faa))
-   **deps:** update netlify packages ([#&#8203;5974](netlify/cli#5974)) ([4a7d9df](netlify/cli@4a7d9df))
-   make lm:setup test pass ([#&#8203;5980](netlify/cli#5980)) ([40b3e78](netlify/cli@40b3e78))
-   show proper `req.url` in HTTPS mode ([#&#8203;5968](netlify/cli#5968)) ([da723a1](netlify/cli@da723a1))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 3pm on Sunday" in timezone America/New_York, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi43Ny4wIiwidXBkYXRlZEluVmVyIjoiMzYuNzcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: chris b <blue.iron1752@chrisb.xyz>
Reviewed-on: https://git.chriswb.dev/chrisw-b/PersonalApi/pulls/6
Co-authored-by: Renovate Bot <renovate.bot@chrisb.xyz>
Co-committed-by: Renovate Bot <renovate.bot@chrisb.xyz>
Vylpes pushed a commit to Vylpes/Droplet that referenced this pull request Feb 5, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | minor | [`8.40.0` -> `8.56.0`](https://renovatebot.com/diffs/npm/eslint/8.40.0/8.56.0) |
| [@types/eslint](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/eslint) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped)) | devDependencies | minor | [`8.37.0` -> `8.56.2`](https://renovatebot.com/diffs/npm/@types%2feslint/8.37.0/8.56.2) |

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.56.0`](https://github.com/eslint/eslint/releases/tag/v8.56.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.55.0...v8.56.0)

#### Features

-   [`0dd9704`](https://github.com/eslint/eslint/commit/0dd9704c4751e1cd02039f7d6485fee09bbccbf6) feat: Support custom severity when reporting unused disable directives ([#&#8203;17212](https://github.com/eslint/eslint/issues/17212)) (Bryan Mishkin)
-   [`31a7e3f`](https://github.com/eslint/eslint/commit/31a7e3fde491e36496b54e8905c766b31162d776) feat: fix no-restricted-properties false negatives with unknown objects ([#&#8203;17818](https://github.com/eslint/eslint/issues/17818)) (Arka Pratim Chaudhuri)

#### Bug Fixes

-   [`7d5e5f6`](https://github.com/eslint/eslint/commit/7d5e5f68849ae80caec0fc96ecceebccd348deec) fix: `TypeError: fs.exists is not a function` on read-only file system ([#&#8203;17846](https://github.com/eslint/eslint/issues/17846)) (Francesco Trotta)
-   [`74739c8`](https://github.com/eslint/eslint/commit/74739c849bbb6547b0e555ed8bb2ba1cbe0fdce4) fix: suggestion with invalid syntax in no-promise-executor-return rule ([#&#8203;17812](https://github.com/eslint/eslint/issues/17812)) (Bryan Mishkin)

#### Documentation

-   [`9007719`](https://github.com/eslint/eslint/commit/90077199fe519953f9af8664bf947db4e4958514) docs: update link in ways-to-extend.md ([#&#8203;17839](https://github.com/eslint/eslint/issues/17839)) (Amel SELMANE)
-   [`3a22236`](https://github.com/eslint/eslint/commit/3a22236f8d10af8a5bcafe56092651d3d681c99d) docs: Update README (GitHub Actions Bot)
-   [`54c3ca6`](https://github.com/eslint/eslint/commit/54c3ca6f2dcd2a7afd53f42fc32055a25587259e) docs: fix migration-guide example ([#&#8203;17829](https://github.com/eslint/eslint/issues/17829)) (Tanuj Kanti)
-   [`4391b71`](https://github.com/eslint/eslint/commit/4391b71e62b15e54b0493f0dce1ea053ebbc0689) docs: check config comments in rule examples ([#&#8203;17815](https://github.com/eslint/eslint/issues/17815)) (Francesco Trotta)
-   [`fd28363`](https://github.com/eslint/eslint/commit/fd2836342c2be4751b05fe0ba7cece17d1edecc8) docs: remove mention about ESLint stylistic rules in readme ([#&#8203;17810](https://github.com/eslint/eslint/issues/17810)) (Zwyx)
-   [`48ed5a6`](https://github.com/eslint/eslint/commit/48ed5a6dad478a14d3e823f137455c523f373e0b) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`ba6af85`](https://github.com/eslint/eslint/commit/ba6af85c7d8ba55d37f8663aee949d148e441c1a) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).56.0 ([#&#8203;17864](https://github.com/eslint/eslint/issues/17864)) (Milos Djermanovic)
-   [`60a531a`](https://github.com/eslint/eslint/commit/60a531a9c0811ddf718e26b9136e133f580b6c36) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins)
-   [`ba87a06`](https://github.com/eslint/eslint/commit/ba87a0651a65b52c3ac442b512dd9f4c2b4c5f57) chore: update dependency markdownlint to ^0.32.0 ([#&#8203;17783](https://github.com/eslint/eslint/issues/17783)) (renovate\[bot])
-   [`9271d10`](https://github.com/eslint/eslint/commit/9271d10d9eabeafb0129a090f29191bfd14273c0) chore: add GitHub issue template for docs issues ([#&#8203;17845](https://github.com/eslint/eslint/issues/17845)) (Josh Goldberg ✨)
-   [`70a686b`](https://github.com/eslint/eslint/commit/70a686b3c1feac5eca98bbff9bd67175f550d5db) chore: Convert rule tests to FlatRuleTester ([#&#8203;17819](https://github.com/eslint/eslint/issues/17819)) (Nicholas C. Zakas)
-   [`f3a599d`](https://github.com/eslint/eslint/commit/f3a599d34c7080fc0b2c9a60b5e54dc98c22867c) chore: upgrade eslint-plugin-unicorn to v49.0.0 ([#&#8203;17837](https://github.com/eslint/eslint/issues/17837)) (唯然)
-   [`905d4b7`](https://github.com/eslint/eslint/commit/905d4b75ab2df42aba30622cee0f66b511397e2c) chore: upgrade eslint-plugin-eslint-plugin v5.2.1 ([#&#8203;17838](https://github.com/eslint/eslint/issues/17838)) (唯然)
-   [`4d7c3ce`](https://github.com/eslint/eslint/commit/4d7c3ce246e6b499f472342ef59496a47cc033d6) chore: update eslint-plugin-n v16.4.0 ([#&#8203;17836](https://github.com/eslint/eslint/issues/17836)) (唯然)
-   [`fd0c60c`](https://github.com/eslint/eslint/commit/fd0c60c3be1f213e5a6d69d8a3248e963619e155) ci: unpin Node.js 21.2.0 ([#&#8203;17821](https://github.com/eslint/eslint/issues/17821)) (Francesco Trotta)

### [`v8.55.0`](https://github.com/eslint/eslint/releases/tag/v8.55.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.54.0...v8.55.0)

#### Features

-   [`8c9e6c1`](https://github.com/eslint/eslint/commit/8c9e6c100a6eb69da292463293b3b48cff911a01) feat: importNamePattern option in no-restricted-imports ([#&#8203;17721](https://github.com/eslint/eslint/issues/17721)) (Tanuj Kanti)

#### Documentation

-   [`83ece2a`](https://github.com/eslint/eslint/commit/83ece2afc2dc6c49efe82678663fe4cba590c0e5) docs: fix typo `--rules` -> `--rule` ([#&#8203;17806](https://github.com/eslint/eslint/issues/17806)) (OKURA Masafumi)
-   [`fffca5c`](https://github.com/eslint/eslint/commit/fffca5c362bcd205dbf79d1bb52834f8a98fc6bd) docs: remove "Open in Playground" buttons for removed rules ([#&#8203;17791](https://github.com/eslint/eslint/issues/17791)) (Francesco Trotta)
-   [`a6d9442`](https://github.com/eslint/eslint/commit/a6d9442a9ab34d5d19f78d8c8fd0767a1237bfe3) docs: fix correct/incorrect examples of rules ([#&#8203;17789](https://github.com/eslint/eslint/issues/17789)) (Tanuj Kanti)
-   [`383e999`](https://github.com/eslint/eslint/commit/383e99928d7ce649ec9030c9856b03fbac0c3501) docs: update and fix examples for `no-unused-vars` ([#&#8203;17788](https://github.com/eslint/eslint/issues/17788)) (Tanuj Kanti)
-   [`5a8efd5`](https://github.com/eslint/eslint/commit/5a8efd5b7ad13eb320a1f468d1d4ab3c8ab99214) docs: add specific stylistic rule for each deprecated rule ([#&#8203;17778](https://github.com/eslint/eslint/issues/17778)) (Etienne)

#### Chores

-   [`eb8950c`](https://github.com/eslint/eslint/commit/eb8950c3b811c9163b9aae23af8b6266ad98b295) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).55.0 ([#&#8203;17811](https://github.com/eslint/eslint/issues/17811)) (Milos Djermanovic)
-   [`93df384`](https://github.com/eslint/eslint/commit/93df3849a7a25ebe0502000bf0bfb80a6613a5ae) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins)
-   [`fe4b954`](https://github.com/eslint/eslint/commit/fe4b9545a83e9aca7ba4bb77bc9c868d57de777f) chore: upgrade [@&#8203;eslint/eslintrc](https://github.com/eslint/eslintrc)[@&#8203;2](https://github.com/2).1.4 ([#&#8203;17799](https://github.com/eslint/eslint/issues/17799)) (Milos Djermanovic)
-   [`bd8911d`](https://github.com/eslint/eslint/commit/bd8911db85c7a1127543c9212c8cea47a5cb687d) ci: pin Node.js 21.2.0 ([#&#8203;17809](https://github.com/eslint/eslint/issues/17809)) (Milos Djermanovic)
-   [`b29a16b`](https://github.com/eslint/eslint/commit/b29a16b22f234f6134475efb6c7be5ac946556ee) chore: fix several `cli` tests to run in the intended flat config mode ([#&#8203;17797](https://github.com/eslint/eslint/issues/17797)) (Milos Djermanovic)
-   [`de165c1`](https://github.com/eslint/eslint/commit/de165c108203c6703516ac651f5b4cac5b241804) chore: remove unused config-extends fixtures ([#&#8203;17781](https://github.com/eslint/eslint/issues/17781)) (Milos Djermanovic)
-   [`d4304b8`](https://github.com/eslint/eslint/commit/d4304b8b66eac870ffbf4840d84add8a123b25fc) chore: remove formatting/stylistic rules from new rule templates ([#&#8203;17780](https://github.com/eslint/eslint/issues/17780)) (Francesco Trotta)
-   [`21024fe`](https://github.com/eslint/eslint/commit/21024fe2029420b413bed11d23761c87e9a02a1a) chore: check rule examples for syntax errors ([#&#8203;17718](https://github.com/eslint/eslint/issues/17718)) (Francesco Trotta)

### [`v8.54.0`](https://github.com/eslint/eslint/releases/tag/v8.54.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.53.0...v8.54.0)

#### Features

-   [`a7a883b`](https://github.com/eslint/eslint/commit/a7a883bd6ba4f140b60cbbb2be5b53d750f6c8db) feat: for-direction rule add check for condition in reverse order ([#&#8203;17755](https://github.com/eslint/eslint/issues/17755)) (Angelo Annunziata)
-   [`1452dc9`](https://github.com/eslint/eslint/commit/1452dc9f12c45c05d7c569f737221f0d988ecef1) feat: Add suggestions to no-console ([#&#8203;17680](https://github.com/eslint/eslint/issues/17680)) (Joel Mathew Koshy)
-   [`21ebf8a`](https://github.com/eslint/eslint/commit/21ebf8a811be9f4b009cf70a10be5062d4fdc736) feat: update `no-array-constructor` rule ([#&#8203;17711](https://github.com/eslint/eslint/issues/17711)) (Francesco Trotta)

#### Bug Fixes

-   [`98926e6`](https://github.com/eslint/eslint/commit/98926e6e7323e5dd12a9f016cb558144296665af) fix: Ensure that extra data is not accidentally stored in the cache file ([#&#8203;17760](https://github.com/eslint/eslint/issues/17760)) (Milos Djermanovic)
-   [`e8cf9f6`](https://github.com/eslint/eslint/commit/e8cf9f6a524332293f8b2c90a2db4a532e47d919) fix: Make dark scroll bar in dark theme ([#&#8203;17753](https://github.com/eslint/eslint/issues/17753)) (Pavel)
-   [`3cbeaad`](https://github.com/eslint/eslint/commit/3cbeaad7b943c153937ce34365cec2c406f2b98b) fix: Use `cwd` constructor option as config `basePath` in Linter ([#&#8203;17705](https://github.com/eslint/eslint/issues/17705)) (Milos Djermanovic)

#### Documentation

-   [`becfdd3`](https://github.com/eslint/eslint/commit/becfdd39b25d795e56c9a13eb3e77af6b9c86e8a) docs: Make clear when rules are removed ([#&#8203;17728](https://github.com/eslint/eslint/issues/17728)) (Nicholas C. Zakas)
-   [`05d6e99`](https://github.com/eslint/eslint/commit/05d6e99153ed6d94eb30f46c57609371918a41f3) docs: update "Submit a Pull Request" page ([#&#8203;17712](https://github.com/eslint/eslint/issues/17712)) (Francesco Trotta)
-   [`eb2279e`](https://github.com/eslint/eslint/commit/eb2279e5148cee8fdea7dae614f4f8af7a2d06c3) docs: display info about deprecated rules ([#&#8203;17749](https://github.com/eslint/eslint/issues/17749)) (Percy Ma)
-   [`d245326`](https://github.com/eslint/eslint/commit/d24532601e64714ac5d08507e05aa5c14ecd1d5a) docs: Correct working in migrating plugin docs ([#&#8203;17722](https://github.com/eslint/eslint/issues/17722)) (Filip Tammergård)

#### Chores

-   [`d644de9`](https://github.com/eslint/eslint/commit/d644de9a4b593b565617303a095bc9aa69e7b768) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).54.0 ([#&#8203;17773](https://github.com/eslint/eslint/issues/17773)) (Milos Djermanovic)
-   [`1e6e314`](https://github.com/eslint/eslint/commit/1e6e31415cc429a3a9fc64b2ec03df0e0ec0c91b) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins)
-   [`6fb8805`](https://github.com/eslint/eslint/commit/6fb8805310afe7476d6c404f172177a6d15fcf11) chore: Fixed grammar in issue_templates/rule_change ([#&#8203;17770](https://github.com/eslint/eslint/issues/17770)) (Joel Mathew Koshy)
-   [`85db724`](https://github.com/eslint/eslint/commit/85db7243ddb8706ed60ab64a7ddf604d0d7de493) chore: upgrade `markdownlint` to 0.31.1 ([#&#8203;17754](https://github.com/eslint/eslint/issues/17754)) (Nitin Kumar)
-   [`6d470d2`](https://github.com/eslint/eslint/commit/6d470d2e74535761bd56dcb1c021b463ef9e8a9c) chore: update dependency recast to ^0.23.0 ([#&#8203;17736](https://github.com/eslint/eslint/issues/17736)) (renovate\[bot])
-   [`b7121b5`](https://github.com/eslint/eslint/commit/b7121b590d578c9c9b38ee481313317f30e54817) chore: update dependency markdownlint-cli to ^0.37.0 ([#&#8203;17735](https://github.com/eslint/eslint/issues/17735)) (renovate\[bot])
-   [`633b9a1`](https://github.com/eslint/eslint/commit/633b9a19752b6a22ab4d6c824f27a75ac0e4151b) chore: update dependency regenerator-runtime to ^0.14.0 ([#&#8203;17739](https://github.com/eslint/eslint/issues/17739)) (renovate\[bot])
-   [`acac16f`](https://github.com/eslint/eslint/commit/acac16fdf8540f7ba86cf637e3c1b253bd35a268) chore: update dependency vite-plugin-commonjs to ^0.10.0 ([#&#8203;17740](https://github.com/eslint/eslint/issues/17740)) (renovate\[bot])
-   [`ba8ca7e`](https://github.com/eslint/eslint/commit/ba8ca7e3debcba68ee7015b9221cf5acd7870206) chore: add .github/renovate.json5 ([#&#8203;17567](https://github.com/eslint/eslint/issues/17567)) (Josh Goldberg ✨)

### [`v8.53.0`](https://github.com/eslint/eslint/releases/tag/v8.53.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.52.0...v8.53.0)

#### Features

-   [`528e1c0`](https://github.com/eslint/eslint/commit/528e1c00dc2aa8636e5b706c4270dc655cfa17e3) feat: Deprecate formatting rules ([#&#8203;17696](https://github.com/eslint/eslint/issues/17696)) (Nicholas C. Zakas)
-   [`c0b11dd`](https://github.com/eslint/eslint/commit/c0b11ddb9f8aacc64c3933b9f278939aa7bea481) feat: Add suggestions for no-prototype-builtins ([#&#8203;17677](https://github.com/eslint/eslint/issues/17677)) (Yonathan Randolph)

#### Bug Fixes

-   [`1ad6257`](https://github.com/eslint/eslint/commit/1ad6257744d63281235fcc33288394b1d69b34ce) fix: ensure that exit code for fatal errors is not overwritten ([#&#8203;17683](https://github.com/eslint/eslint/issues/17683)) (Milos Djermanovic)
-   [`b329ea7`](https://github.com/eslint/eslint/commit/b329ea748dff45f11c7e218208244dc24fcb5c8f) fix: add `;` after JSX nodes in  `no-object-constructor` autofix ([#&#8203;17672](https://github.com/eslint/eslint/issues/17672)) (Francesco Trotta)

#### Documentation

-   [`ab8c60d`](https://github.com/eslint/eslint/commit/ab8c60d4f859cec787b5a12f7271b40e666235f5) docs: change position of return to top button ([#&#8203;17688](https://github.com/eslint/eslint/issues/17688)) (Tanuj Kanti)
-   [`4fc44c0`](https://github.com/eslint/eslint/commit/4fc44c0b8c5dca466bffdfe01dfd80794d7762b7) docs: update twitter icon to new X icon ([#&#8203;17687](https://github.com/eslint/eslint/issues/17687)) (Tanuj Kanti)
-   [`4164b2c`](https://github.com/eslint/eslint/commit/4164b2ceec89726b18ea0b0e34fab05735d55a09) docs: Update README (GitHub Actions Bot)
-   [`8651895`](https://github.com/eslint/eslint/commit/8651895ca7ae15e13d74c8be67d9eebd63a7ce1f) docs: Fix tabs in rule examples ([#&#8203;17653](https://github.com/eslint/eslint/issues/17653)) (Francesco Trotta)
-   [`3aec1c5`](https://github.com/eslint/eslint/commit/3aec1c55ba2c6d2833e1c0afe0a58f0cc6bbc0a4) docs: explained rule fixers and suggestions ([#&#8203;17657](https://github.com/eslint/eslint/issues/17657)) (Josh Goldberg ✨)

#### Chores

-   [`ba4d4d5`](https://github.com/eslint/eslint/commit/ba4d4d567a82554250dd8c7933322824e6a73944) chore: remove metascraper ([#&#8203;17707](https://github.com/eslint/eslint/issues/17707)) (Milos Djermanovic)
-   [`0d07338`](https://github.com/eslint/eslint/commit/0d0733882944b4849d71a40723c251213698cef9) chore: Update dependencies ([#&#8203;17706](https://github.com/eslint/eslint/issues/17706)) (Milos Djermanovic)
-   [`93256a3`](https://github.com/eslint/eslint/commit/93256a32e312f3f4e5c532762df71bdc06bded20) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`485ec7d`](https://github.com/eslint/eslint/commit/485ec7d08ed2040c292f52bf9b9152f6c8ef4809) test: fix ESLint tests for caching ([#&#8203;17699](https://github.com/eslint/eslint/issues/17699)) (Milos Djermanovic)
-   [`db06a7f`](https://github.com/eslint/eslint/commit/db06a7ff7992a74368f03d1f21beb00df0407021) ci: bump actions/setup-node from 3 to 4 ([#&#8203;17676](https://github.com/eslint/eslint/issues/17676)) (dependabot\[bot])
-   [`994596b`](https://github.com/eslint/eslint/commit/994596b07f5ff20a615a4be1ea03e5fd59cdb84b) ci: run tests in Node.js 21 ([#&#8203;17673](https://github.com/eslint/eslint/issues/17673)) (Francesco Trotta)

### [`v8.52.0`](https://github.com/eslint/eslint/releases/tag/v8.52.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.51.0...v8.52.0)

#### Features

-   [`70648ee`](https://github.com/eslint/eslint/commit/70648ee49c07f7b533d09f6bf8a5291e5a5a8601) feat: report-unused-disable-directive to report unused eslint-enable ([#&#8203;17611](https://github.com/eslint/eslint/issues/17611)) (Yosuke Ota)

#### Bug Fixes

-   [`5de9637`](https://github.com/eslint/eslint/commit/5de9637fc925729a83d5a5e9e868a41792a184e3) fix: Ensure shared references in rule configs are separated ([#&#8203;17666](https://github.com/eslint/eslint/issues/17666)) (Nicholas C. Zakas)
-   [`dcfe573`](https://github.com/eslint/eslint/commit/dcfe5739c374c9d7ed21f14027870ec0fd453661) fix: add preceding semicolon in suggestions of `no-object-constructor` ([#&#8203;17649](https://github.com/eslint/eslint/issues/17649)) (Francesco Trotta)

#### Documentation

-   [`476d58a`](https://github.com/eslint/eslint/commit/476d58a584d5d2db003c4c22ffee90e63566164d) docs: Add note about invalid CLI flags when using flat config. ([#&#8203;17664](https://github.com/eslint/eslint/issues/17664)) (Nicholas C. Zakas)
-   [`660ed3a`](https://github.com/eslint/eslint/commit/660ed3afd128ad529234a855345629982caf1bc7) docs: Plugin flat config migration guide ([#&#8203;17640](https://github.com/eslint/eslint/issues/17640)) (Nicholas C. Zakas)
-   [`a58aa20`](https://github.com/eslint/eslint/commit/a58aa200fccedae7e2e9b6129246f2cedab14f8d) docs: fix examples for several rules ([#&#8203;17645](https://github.com/eslint/eslint/issues/17645)) (Milos Djermanovic)
-   [`179929b`](https://github.com/eslint/eslint/commit/179929bd46892f18f2aef0c159d5cc361cb69987) docs: Remove trailing newline from the code of Playground links ([#&#8203;17641](https://github.com/eslint/eslint/issues/17641)) (Francesco Trotta)
-   [`f8e5c30`](https://github.com/eslint/eslint/commit/f8e5c30636450d4a8baf51f0e227685e6d77ac64) docs: Update README (GitHub Actions Bot)
-   [`b7ef2f3`](https://github.com/eslint/eslint/commit/b7ef2f34fe12b68a366e1b4bf5f64d7332c6e72e) docs: Enable pretty code formatter output ([#&#8203;17635](https://github.com/eslint/eslint/issues/17635)) (Nicholas C. Zakas)
-   [`0bcb9a8`](https://github.com/eslint/eslint/commit/0bcb9a8db608a3d0bd2645f99e0707b9a9bbaaf0) docs: Fix syntax errors in rule examples ([#&#8203;17633](https://github.com/eslint/eslint/issues/17633)) (Francesco Trotta)
-   [`61b9083`](https://github.com/eslint/eslint/commit/61b90839633ef300ac7707a651f65f532e65f42d) docs: Make no-continue example code work ([#&#8203;17643](https://github.com/eslint/eslint/issues/17643)) (Zhongyuan Zhou)
-   [`9fafe45`](https://github.com/eslint/eslint/commit/9fafe450c31ed9b6bdd9dcd6c115255943b8c1c2) docs: upgrade to 11ty 2.0 ([#&#8203;17632](https://github.com/eslint/eslint/issues/17632)) (Percy Ma)
-   [`ff8e4bf`](https://github.com/eslint/eslint/commit/ff8e4bf327b5c92b0623b0fc5f8f101954f785db) docs: Update README (GitHub Actions Bot)
-   [`fab249a`](https://github.com/eslint/eslint/commit/fab249ae6addac2ee18cd81cee80916010bb469e) docs: Update README (GitHub Actions Bot)
-   [`392305b`](https://github.com/eslint/eslint/commit/392305bf4797e3ebc696dfca48bd874741fca845) docs: Update `no-irregular-whitespace` and fix examples ([#&#8203;17626](https://github.com/eslint/eslint/issues/17626)) (Francesco Trotta)
-   [`6b8acfb`](https://github.com/eslint/eslint/commit/6b8acfb770589f3941df41c3910d3b8ffc3e1e45) docs: Add real whitespace to `no-trailing-spaces` examples ([#&#8203;17630](https://github.com/eslint/eslint/issues/17630)) (Francesco Trotta)
-   [`1000187`](https://github.com/eslint/eslint/commit/1000187e00949332babcee4d37d46c96a6a554a8) docs: Fix examples in `unicode-bom` ([#&#8203;17631](https://github.com/eslint/eslint/issues/17631)) (Francesco Trotta)
-   [`000290c`](https://github.com/eslint/eslint/commit/000290c4c923cc1473e21b4bdbdc0c42765ef7dd) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`6d1f0c2`](https://github.com/eslint/eslint/commit/6d1f0c2da0309c06c21149b8d71a8f439a70d7e8) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).52.0 ([#&#8203;17671](https://github.com/eslint/eslint/issues/17671)) (Milos Djermanovic)
-   [`d63d4fe`](https://github.com/eslint/eslint/commit/d63d4fe0942e6747ab60e758aa36076f43041a30) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`f30cefe`](https://github.com/eslint/eslint/commit/f30cefee6bda2789ede18e1664b84c2638ea1bb5) test: fix FlatESLint tests for caching ([#&#8203;17658](https://github.com/eslint/eslint/issues/17658)) (Milos Djermanovic)
-   [`ef650cb`](https://github.com/eslint/eslint/commit/ef650cb612510bcfa1379c1f0af56dd563b3a705) test: update tests for no-promise-executor-return ([#&#8203;17661](https://github.com/eslint/eslint/issues/17661)) (Milos Djermanovic)

### [`v8.51.0`](https://github.com/eslint/eslint/releases/tag/v8.51.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.50.0...v8.51.0)

#### Features

-   [`0a9c433`](https://github.com/eslint/eslint/commit/0a9c43339a4adef24ef83034d0b078dd279cc977) feat: Add `--no-warn-ignored` CLI option for flat config ([#&#8203;17569](https://github.com/eslint/eslint/issues/17569)) (Domantas Petrauskas)
-   [`977e67e`](https://github.com/eslint/eslint/commit/977e67ec274a05cb7391665b5e3453e7f72f72b2) feat: logical-assignment-operators to report expressions with 3 operands ([#&#8203;17600](https://github.com/eslint/eslint/issues/17600)) (Yosuke Ota)

#### Bug Fixes

-   [`f976b2f`](https://github.com/eslint/eslint/commit/f976b2f7bfe7cc78bb649f8b37e90fd519ff3bcc) fix: make rule severity case-sensitive in flat config ([#&#8203;17619](https://github.com/eslint/eslint/issues/17619)) (Milos Djermanovic)
-   [`0edfe36`](https://github.com/eslint/eslint/commit/0edfe369aa5bd80a98053022bb4c6b1ea0155f44) fix: Ensure crash error messages are not duplicated ([#&#8203;17584](https://github.com/eslint/eslint/issues/17584)) (Nicholas C. Zakas)
-   [`dd79abc`](https://github.com/eslint/eslint/commit/dd79abc0c1857b1d765acc312c0d6518e40d31c9) fix: `eslint-disable` to be able to parse quoted rule names ([#&#8203;17612](https://github.com/eslint/eslint/issues/17612)) (Yosuke Ota)
-   [`d2f6801`](https://github.com/eslint/eslint/commit/d2f68019b8882278877801c5ef2f74d55e2a10c1) fix: Ensure correct code path for && followed by ?? ([#&#8203;17618](https://github.com/eslint/eslint/issues/17618)) (Nicholas C. Zakas)

#### Documentation

-   [`ee5be81`](https://github.com/eslint/eslint/commit/ee5be81fa3c4fe801c2f653854f098ed6a84dcef) docs: default to `sourceType: "module"` in rule examples ([#&#8203;17615](https://github.com/eslint/eslint/issues/17615)) (Francesco Trotta)
-   [`1aa26df`](https://github.com/eslint/eslint/commit/1aa26df9fbcfdf5b895743c6d2d3a216479544b1) docs: Add more examples for multiline-ternary ([#&#8203;17610](https://github.com/eslint/eslint/issues/17610)) (George Ashiotis)
-   [`47d0b44`](https://github.com/eslint/eslint/commit/47d0b446964f44d70b9457ecc368e721e1dc7c11) docs: Update README (GitHub Actions Bot)
-   [`dbf831e`](https://github.com/eslint/eslint/commit/dbf831e31f8eea0bc94df96cd33255579324b66e) docs: use generated og image ([#&#8203;17601](https://github.com/eslint/eslint/issues/17601)) (Percy Ma)
-   [`1866da5`](https://github.com/eslint/eslint/commit/1866da5e1d931787256ecb825a803cac5835b71c) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`1ef39ea`](https://github.com/eslint/eslint/commit/1ef39ea5b884453be717ebc929155d7eb584dcbf) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).51.0 ([#&#8203;17624](https://github.com/eslint/eslint/issues/17624)) (Milos Djermanovic)
-   [`f8c7403`](https://github.com/eslint/eslint/commit/f8c7403255c11e99c402860aef3c0179f2b16628) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`2665552`](https://github.com/eslint/eslint/commit/2665552ba0057e8603f9fbece0fd236f189f5cf3) test: fix flat config linter tests to use Linter in flat config mode ([#&#8203;17616](https://github.com/eslint/eslint/issues/17616)) (Milos Djermanovic)
-   [`7b77bcc`](https://github.com/eslint/eslint/commit/7b77bccbb51bd36b2d20fea61bc782545c4029b3) chore: Refactor CodePathState ([#&#8203;17510](https://github.com/eslint/eslint/issues/17510)) (Nicholas C. Zakas)
-   [`bc77c9a`](https://github.com/eslint/eslint/commit/bc77c9af12539f350ef19e30611a153a5b869c6b) chore: Document and refactor ForkContext ([#&#8203;17566](https://github.com/eslint/eslint/issues/17566)) (Nicholas C. Zakas)
-   [`24e1f14`](https://github.com/eslint/eslint/commit/24e1f140ec68659e55c1ace0d7500addb135a2b4) chore: Refactor and document CodePath ([#&#8203;17558](https://github.com/eslint/eslint/issues/17558)) (Nicholas C. Zakas)

### [`v8.50.0`](https://github.com/eslint/eslint/releases/tag/v8.50.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.49.0...v8.50.0)

#### Features

-   [`27d5a9e`](https://github.com/eslint/eslint/commit/27d5a9e57ad347982a68fcd0e75eafee42d344f0) feat: add suggestions to array-callback-return ([#&#8203;17590](https://github.com/eslint/eslint/issues/17590)) (Tanuj Kanti)
-   [`f9082ff`](https://github.com/eslint/eslint/commit/f9082ff3f3956a0a5a7d7659de63640a21c4de0f) feat: flat-rule-tester make sure default config always matches ([#&#8203;17585](https://github.com/eslint/eslint/issues/17585)) (fnx)
-   [`83914ad`](https://github.com/eslint/eslint/commit/83914adbfd5fce7d11b33d095ba6d6a39be0dbbc) feat: Implement SourceCode#applyInlineConfig() ([#&#8203;17351](https://github.com/eslint/eslint/issues/17351)) (Nicholas C. Zakas)
-   [`22a5582`](https://github.com/eslint/eslint/commit/22a558228ff98f478fa308c9ecde361acc4caf20) feat: add rule `no-object-constructor`, deprecate `no-new-object` ([#&#8203;17576](https://github.com/eslint/eslint/issues/17576)) (Francesco Trotta)
-   [`85a3d9e`](https://github.com/eslint/eslint/commit/85a3d9e967b19cb4a0189746499d81ef2f93e14e) feat: allowVoid option in array-callback-return ([#&#8203;17564](https://github.com/eslint/eslint/issues/17564)) (Tanuj Kanti)

#### Bug Fixes

-   [`cc4d26b`](https://github.com/eslint/eslint/commit/cc4d26b5a59d510f2c878e973fd245e8eff27c2a) fix: Ensure deprecated context.parserServices warns ([#&#8203;17593](https://github.com/eslint/eslint/issues/17593)) (Nicholas C. Zakas)
-   [`1ea4cfb`](https://github.com/eslint/eslint/commit/1ea4cfb585dcb52ac3cb1522a32f25cfe507121b) fix: Ensure all RuleTester tests all deprecated context methods ([#&#8203;17587](https://github.com/eslint/eslint/issues/17587)) (Nicholas C. Zakas)
-   [`aa1b657`](https://github.com/eslint/eslint/commit/aa1b657a9febcd03e9298c03ae2888762795e322) fix: wrong suggestion and message in `no-misleading-character-class` ([#&#8203;17571](https://github.com/eslint/eslint/issues/17571)) (Yosuke Ota)

#### Documentation

-   [`1800537`](https://github.com/eslint/eslint/commit/180053759c6cf05a326c710353b4717fbf289ee0) docs: Fix and standardize JSX code examples ([#&#8203;17591](https://github.com/eslint/eslint/issues/17591)) (Francesco Trotta)
-   [`48a44a7`](https://github.com/eslint/eslint/commit/48a44a73ac456739bdee348bbaf1840d2b1e4830) docs: Add correct/incorrect tags to `prefer-arrow-callback` ([#&#8203;17589](https://github.com/eslint/eslint/issues/17589)) (Francesco Trotta)
-   [`20893d4`](https://github.com/eslint/eslint/commit/20893d48b9012f2b61bbbfeac8bee70d68d90e5e) docs: fix incorrect tag's place ([#&#8203;17575](https://github.com/eslint/eslint/issues/17575)) (Tanuj Kanti)
-   [`bd7a71f`](https://github.com/eslint/eslint/commit/bd7a71fd6b7efb0445393304e2d48c5c06d46a45) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`f8a8a2d`](https://github.com/eslint/eslint/commit/f8a8a2d6b45c82f94a574623759b6e3d2af193f3) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).50.0 ([#&#8203;17599](https://github.com/eslint/eslint/issues/17599)) (Milos Djermanovic)
-   [`38ada6d`](https://github.com/eslint/eslint/commit/38ada6df8f4a0313b7d0739b28f0af6b4897b8ce) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)

### [`v8.49.0`](https://github.com/eslint/eslint/releases/tag/v8.49.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.48.0...v8.49.0)

#### Features

-   [`da09f4e`](https://github.com/eslint/eslint/commit/da09f4e641141f585ef611c6e9d63d4331054706) feat: Implement onUnreachableCodePathStart/End ([#&#8203;17511](https://github.com/eslint/eslint/issues/17511)) (Nicholas C. Zakas)
-   [`32b2327`](https://github.com/eslint/eslint/commit/32b2327aafdd3b911fabab69ed75c9ff97658c60) feat: Emit deprecation warnings in RuleTester ([#&#8203;17527](https://github.com/eslint/eslint/issues/17527)) (Nicholas C. Zakas)
-   [`acb7df3`](https://github.com/eslint/eslint/commit/acb7df35b9a7485f26bc6b3e1f9083d1c585dce9) feat: add new `enforce` option to `lines-between-class-members` ([#&#8203;17462](https://github.com/eslint/eslint/issues/17462)) (Nitin Kumar)

#### Documentation

-   [`ecfb54f`](https://github.com/eslint/eslint/commit/ecfb54ff4cdd18f28b4f9b78f0a78fb4cf80f1b8) docs: Update README (GitHub Actions Bot)
-   [`de86b3b`](https://github.com/eslint/eslint/commit/de86b3b2e58edd5826200c23255d8325abe375e1) docs: update `no-promise-executor-return` examples ([#&#8203;17529](https://github.com/eslint/eslint/issues/17529)) (Nitin Kumar)
-   [`032c4b1`](https://github.com/eslint/eslint/commit/032c4b1476a7b8cfd917a66772d2221950ea87eb) docs: add typescript template ([#&#8203;17500](https://github.com/eslint/eslint/issues/17500)) (James)
-   [`cd7da5c`](https://github.com/eslint/eslint/commit/cd7da5cc3154f86f7ca45fb58929d27a7af359ed) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`b7621c3`](https://github.com/eslint/eslint/commit/b7621c3b16cf7d5539f05336a827e1b32d95e6ac) chore: remove browser test from `npm test` ([#&#8203;17550](https://github.com/eslint/eslint/issues/17550)) (Milos Djermanovic)
-   [`cac45d0`](https://github.com/eslint/eslint/commit/cac45d04b890b0700dd8908927300608adad05fe) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).49.0 ([#&#8203;17549](https://github.com/eslint/eslint/issues/17549)) (Milos Djermanovic)
-   [`cd39508`](https://github.com/eslint/eslint/commit/cd395082bffcb4b68efa09226d7c682cef56179e) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`203a971`](https://github.com/eslint/eslint/commit/203a971c0abc3a95ae02ff74104a01e569707060) ci: bump actions/checkout from 3 to 4 ([#&#8203;17530](https://github.com/eslint/eslint/issues/17530)) (dependabot\[bot])
-   [`a40fa50`](https://github.com/eslint/eslint/commit/a40fa509922b36bb986eb1be9394591f84f62d9e) chore: use eslint-plugin-jsdoc's flat config ([#&#8203;17516](https://github.com/eslint/eslint/issues/17516)) (Milos Djermanovic)
-   [`926a286`](https://github.com/eslint/eslint/commit/926a28684282aeec37680bbc52a66973b8055f54) test: replace Karma with Webdriver.IO ([#&#8203;17126](https://github.com/eslint/eslint/issues/17126)) (Christian Bromann)
-   [`f591d2c`](https://github.com/eslint/eslint/commit/f591d2c88bf15af72e3a207b34fa872b4b90464b) chore: Upgrade config-array ([#&#8203;17512](https://github.com/eslint/eslint/issues/17512)) (Nicholas C. Zakas)

### [`v8.48.0`](https://github.com/eslint/eslint/releases/tag/v8.48.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.47.0...v8.48.0)

#### Features

-   [`1fbb3b0`](https://github.com/eslint/eslint/commit/1fbb3b0b477c814c0d179564fe495f4c50a451e9) feat: correct update direction in `for-direction` ([#&#8203;17483](https://github.com/eslint/eslint/issues/17483)) (Francesco Trotta)
-   [`d73fbf2`](https://github.com/eslint/eslint/commit/d73fbf2228631d6c468cd24710e2579fe6cb70fd) feat: rule tester do not create empty valid or invalid test suites ([#&#8203;17475](https://github.com/eslint/eslint/issues/17475)) (fnx)
-   [`ee2f718`](https://github.com/eslint/eslint/commit/ee2f718188d32e9888b1932fe6b9bd2a62c529a4) feat: Allow `void` in rule `no-promise-executor-return` ([#&#8203;17282](https://github.com/eslint/eslint/issues/17282)) (nopeless)

#### Bug Fixes

-   [`7234f6a`](https://github.com/eslint/eslint/commit/7234f6a706a209aa2d79259110328752e9ae3928) fix: update RuleTester JSDoc and deprecations ([#&#8203;17496](https://github.com/eslint/eslint/issues/17496)) (Jonas Berlin)

#### Documentation

-   [`7a51d77`](https://github.com/eslint/eslint/commit/7a51d77c0a066e461ff288568fdfee0e9539a2b5) docs: no-param-reassign mention strict mode ([#&#8203;17494](https://github.com/eslint/eslint/issues/17494)) (Stephen Hardy)
-   [`9cd7ac2`](https://github.com/eslint/eslint/commit/9cd7ac2fdb6b1d71a9fb1b8297a478cafacbdafd) docs: add `fetch` script to package.json conventions ([#&#8203;17459](https://github.com/eslint/eslint/issues/17459)) (Nitin Kumar)
-   [`cab21e6`](https://github.com/eslint/eslint/commit/cab21e64a8f79779c641178f825945958667c6e4) docs: advice for inline disabling of rules ([#&#8203;17458](https://github.com/eslint/eslint/issues/17458)) (Ashish Yadav)
-   [`056499d`](https://github.com/eslint/eslint/commit/056499de31a139dbc965d18652b0b520e11b408d) docs: fix example of flat config from plugin ([#&#8203;17482](https://github.com/eslint/eslint/issues/17482)) (Francesco Trotta)
-   [`9e9edf9`](https://github.com/eslint/eslint/commit/9e9edf93ecfa0658e8b79e71bc98530ade150081) docs: update documentation URL in error message ([#&#8203;17465](https://github.com/eslint/eslint/issues/17465)) (Nitin Kumar)

#### Chores

-   [`8dd3cec`](https://github.com/eslint/eslint/commit/8dd3cec90c97ed97d243a83b87ad4ea9e6b4781a) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).48.0 ([#&#8203;17501](https://github.com/eslint/eslint/issues/17501)) (Milos Djermanovic)
-   [`6d0496e`](https://github.com/eslint/eslint/commit/6d0496e9476fb2210fba0a3d541df8c052ecf73a) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`9d4216d`](https://github.com/eslint/eslint/commit/9d4216d638d39844decffac33ee3d5a47413c80a) chore: Refactor and document CodePathSegment ([#&#8203;17474](https://github.com/eslint/eslint/issues/17474)) (Nicholas C. Zakas)

### [`v8.47.0`](https://github.com/eslint/eslint/releases/tag/v8.47.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.46.0...v8.47.0)

#### Features

-   [`53d7508`](https://github.com/eslint/eslint/commit/53d750800b1c0c1f8c29393c488bb3167bb1d2a5) feat: update regex for methods with `thisArg` ([#&#8203;17439](https://github.com/eslint/eslint/issues/17439)) (Francesco Trotta)

#### Bug Fixes

-   [`631648e`](https://github.com/eslint/eslint/commit/631648ee0b51a8951ce576ccd4430e09c9c8bcae) fix: do not report on shadowed constructors in `no-new-wrappers` ([#&#8203;17447](https://github.com/eslint/eslint/issues/17447)) (Francesco Trotta)

#### Documentation

-   [`a766a48`](https://github.com/eslint/eslint/commit/a766a48030d4359db76523d5b413d6332130e485) docs: document lack of config file names ([#&#8203;17442](https://github.com/eslint/eslint/issues/17442)) (James)
-   [`a1635d6`](https://github.com/eslint/eslint/commit/a1635d6198a8baf6571b3351e098e5ac960be887) docs: Update README (GitHub Actions Bot)
-   [`47a0859`](https://github.com/eslint/eslint/commit/47a08597966651975126dd6726939cd34f13b80e) docs: update `require-unicode-regexp.md` as following up [#&#8203;17402](https://github.com/eslint/eslint/issues/17402) ([#&#8203;17441](https://github.com/eslint/eslint/issues/17441)) (SUZUKI Sosuke)
-   [`fcdc85d`](https://github.com/eslint/eslint/commit/fcdc85d3a6bc14970c3349cc8d6f3a47eca172a3) docs: Update README (GitHub Actions Bot)
-   [`2a92b6c`](https://github.com/eslint/eslint/commit/2a92b6cc9520a27255520369206556e9841a3af8) docs: update with "Specifying Parser Options" ([#&#8203;17435](https://github.com/eslint/eslint/issues/17435)) (Cheol-Won)
-   [`d743ed3`](https://github.com/eslint/eslint/commit/d743ed3c06c62a639da0389ad27907b324ea1715) docs: add metadata for parser/processor ([#&#8203;17438](https://github.com/eslint/eslint/issues/17438)) (Huáng Jùnliàng)
-   [`224376c`](https://github.com/eslint/eslint/commit/224376cd99a08394291a9584ad9c1ea1283673c6) docs: Update README (GitHub Actions Bot)
-   [`a41a8e4`](https://github.com/eslint/eslint/commit/a41a8e4a7da14726d6fce71a023f12101fd52fdb) docs: update script names in README ([#&#8203;17432](https://github.com/eslint/eslint/issues/17432)) (Nitin Kumar)

#### Chores

-   [`bf69aa6`](https://github.com/eslint/eslint/commit/bf69aa6408f5403a88d8c9b71b0e58232b1ea833) chore: Update dependencies ([#&#8203;17456](https://github.com/eslint/eslint/issues/17456)) (Nicholas C. Zakas)
-   [`0e45760`](https://github.com/eslint/eslint/commit/0e4576012ab938b880e6f27641bff55fb4313d20) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`757bfe1`](https://github.com/eslint/eslint/commit/757bfe1c35b5ddab7042d388f8d21e834875fff5) chore: Remove add-to-triage ([#&#8203;17450](https://github.com/eslint/eslint/issues/17450)) (Nicholas C. Zakas)
-   [`b066640`](https://github.com/eslint/eslint/commit/b066640b7040ec30f740dcc803511244fe19473b) chore: standardize npm script names ([#&#8203;17431](https://github.com/eslint/eslint/issues/17431)) (Nitin Kumar)
-   [`6b2410f`](https://github.com/eslint/eslint/commit/6b2410f911dd2e3d915c879041c6e257d41a2f4e) chore: Update add-to-triage.yml ([#&#8203;17444](https://github.com/eslint/eslint/issues/17444)) (Nicholas C. Zakas)

### [`v8.46.0`](https://github.com/eslint/eslint/releases/tag/v8.46.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.45.0...v8.46.0)

#### Features

-   [`8a93438`](https://github.com/eslint/eslint/commit/8a9343871f7dade19d910ca8e2a4177bfca28b64) feat: `require-unicode-regexp` support `v` flag ([#&#8203;17402](https://github.com/eslint/eslint/issues/17402)) (SUZUKI Sosuke)
-   [`1a2f966`](https://github.com/eslint/eslint/commit/1a2f966fabe35103141d2f936180d2f1a72154db) feat: `no-useless-escape` support `v` flag ([#&#8203;17420](https://github.com/eslint/eslint/issues/17420)) (Yosuke Ota)
-   [`ee68d1d`](https://github.com/eslint/eslint/commit/ee68d1d9630892d99ae0d8dabe2f9f8d3b1338be) feat: `no-empty-character-class` support `v` flag ([#&#8203;17419](https://github.com/eslint/eslint/issues/17419)) (Milos Djermanovic)
-   [`853d32b`](https://github.com/eslint/eslint/commit/853d32baa8934c08b59a738470b72522e1505f6f) feat: deprecate no-return-await ([#&#8203;17417](https://github.com/eslint/eslint/issues/17417)) (Carlos Lopez)
-   [`d4f02e4`](https://github.com/eslint/eslint/commit/d4f02e4bf1b9ae4e1fc8f2bc4e4851ae3c36a127) feat: `no-control-regex` support `v` flag ([#&#8203;17405](https://github.com/eslint/eslint/issues/17405)) (Yosuke Ota)
-   [`2a35f3e`](https://github.com/eslint/eslint/commit/2a35f3e6ed27deafbebba48b6aec570d3abf9974) feat: `prefer-named-capture-group` support `v` flag ([#&#8203;17409](https://github.com/eslint/eslint/issues/17409)) (Yosuke Ota)
-   [`8ca8b50`](https://github.com/eslint/eslint/commit/8ca8b50b0425b3bad34a9505bc3095168e2f59d8) feat: Better error message for flat config plugins ([#&#8203;17399](https://github.com/eslint/eslint/issues/17399)) (Nicholas C. Zakas)
-   [`509f753`](https://github.com/eslint/eslint/commit/509f75395035822280245772e2a95732a0dde0e1) feat: `no-misleading-character-class` support `v` flag ([#&#8203;17406](https://github.com/eslint/eslint/issues/17406)) (Yosuke Ota)
-   [`3caf514`](https://github.com/eslint/eslint/commit/3caf51487decdf93a4b17765a2af2a51c337e974) feat: `no-regex-spaces` support `v` flag ([#&#8203;17407](https://github.com/eslint/eslint/issues/17407)) (Yosuke Ota)
-   [`b7fad2b`](https://github.com/eslint/eslint/commit/b7fad2b52f23667628cf209663795a721c88d0ba) feat: `prefer-regex-literals` support `v` flag ([#&#8203;17410](https://github.com/eslint/eslint/issues/17410)) (Yosuke Ota)
-   [`a6a3ad4`](https://github.com/eslint/eslint/commit/a6a3ad4ae438ea7fc3a1d97cd2555f6534b565f1) feat: `no-useless-backreference` support `v` flag ([#&#8203;17408](https://github.com/eslint/eslint/issues/17408)) (Yosuke Ota)
-   [`94954a7`](https://github.com/eslint/eslint/commit/94954a715448d5794f2892bf212fe986b43228ed) feat: `no-invalid-regexp` support `v` flag ([#&#8203;17404](https://github.com/eslint/eslint/issues/17404)) (Yosuke Ota)
-   [`1af6eac`](https://github.com/eslint/eslint/commit/1af6eac5727080c809e37c07dc729b44ef24483c) feat: adds option for allowing empty object patterns as parameter ([#&#8203;17365](https://github.com/eslint/eslint/issues/17365)) (Tanuj Kanti)
-   [`cf03104`](https://github.com/eslint/eslint/commit/cf03104b278fea59ef46e09f667110f5eaaf95e3) feat: Improve config error messages ([#&#8203;17385](https://github.com/eslint/eslint/issues/17385)) (Nicholas C. Zakas)

#### Bug Fixes

-   [`9803c7c`](https://github.com/eslint/eslint/commit/9803c7c04078f0672d8a480fd39cf3bbef8017e6) fix: FlatESLint#getRulesMetaForResults shouldn't throw on unknown rules ([#&#8203;17393](https://github.com/eslint/eslint/issues/17393)) (Milos Djermanovic)
-   [`42faa17`](https://github.com/eslint/eslint/commit/42faa17b1c93f801b14bea2840d1d528e25c7211) fix: Update no-loop-func to not overlap with no-undef ([#&#8203;17358](https://github.com/eslint/eslint/issues/17358)) (Matt Wilkinson)

#### Documentation

-   [`4d474e3`](https://github.com/eslint/eslint/commit/4d474e351ba6ce0242f18e55c27cb3ae17b84f63) docs: update with TypeScript info ([#&#8203;17423](https://github.com/eslint/eslint/issues/17423)) (James)
-   [`091f44e`](https://github.com/eslint/eslint/commit/091f44e4c72007edb2ac6d4db4eafa5501e41e94) docs: File extension named processor deprecation ([#&#8203;17362](https://github.com/eslint/eslint/issues/17362)) (Matt Wilkinson)
-   [`9254a6c`](https://github.com/eslint/eslint/commit/9254a6cea845dfaf2f3f52f718cb9b071853aa09) docs: Update README (GitHub Actions Bot)
-   [`6d6dc51`](https://github.com/eslint/eslint/commit/6d6dc5141f535728029eef8735854a421bc08eba) docs: fix overlapping of `open in playground` button ([#&#8203;17403](https://github.com/eslint/eslint/issues/17403)) (Tanuj Kanti)
-   [`7fc3a2c`](https://github.com/eslint/eslint/commit/7fc3a2ce68979a2c2a6fc779e647b3004ab6f4ac) docs: Add private class features info to no-underscore-dangle ([#&#8203;17386](https://github.com/eslint/eslint/issues/17386)) (Matt Wilkinson)
-   [`da73e58`](https://github.com/eslint/eslint/commit/da73e583e1703a420551d8fa8f7c70b56dc88dd5) docs: Migrating `eslint-env` configuration comments ([#&#8203;17390](https://github.com/eslint/eslint/issues/17390)) (Francesco Trotta)
-   [`80dffed`](https://github.com/eslint/eslint/commit/80dffed4c81dcc71fb72bc187aff2f87d141a6ed) docs: fix Ignoring Files section in config migration guide ([#&#8203;17392](https://github.com/eslint/eslint/issues/17392)) (Milos Djermanovic)
-   [`8a9abb7`](https://github.com/eslint/eslint/commit/8a9abb7cf424bd49d45c09345dc45ae95f29cc9d) docs: Update README (GitHub Actions Bot)
-   [`7e9be4b`](https://github.com/eslint/eslint/commit/7e9be4bd7331d0e8e8e0af0b075a2f6d28d1bea3) docs: Update README (GitHub Actions Bot)
-   [`0b0bbe0`](https://github.com/eslint/eslint/commit/0b0bbe07d4fb0870f3916e975b8ec6978f838077) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`d1eb7e4`](https://github.com/eslint/eslint/commit/d1eb7e46e954c64af8d7d13d087b3a18f43e6d72) chore: Update ecosystem dependencies ([#&#8203;17427](https://github.com/eslint/eslint/issues/17427)) (Nicholas C. Zakas)
-   [`fab9e97`](https://github.com/eslint/eslint/commit/fab9e97ef9dff40e98a5b3b97bdd3b0ff5439d46) chore: package.json update for eslint-config-eslint release (ESLint Jenkins)
-   [`6246711`](https://github.com/eslint/eslint/commit/6246711e0650d03afe044c36acde048ed2d39ee3) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`0aa0bc3`](https://github.com/eslint/eslint/commit/0aa0bc365a5425440c8e86c96104d0053a51b602) chore: Add PRs to triage project ([#&#8203;17421](https://github.com/eslint/eslint/issues/17421)) (Nicholas C. Zakas)

### [`v8.45.0`](https://github.com/eslint/eslint/releases/tag/v8.45.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.44.0...v8.45.0)

#### Features

-   [`cdd063c`](https://github.com/eslint/eslint/commit/cdd063c388bbfe1781d7a864a832f03a2c1cc277) feat: Expose LegacyESLint in unsupported API ([#&#8203;17341](https://github.com/eslint/eslint/issues/17341)) (Nicholas C. Zakas)
-   [`d34abe5`](https://github.com/eslint/eslint/commit/d34abe59eb23932dcbc79757d7932d08ee8b20e5) feat: fix indent rule for else-if ([#&#8203;17318](https://github.com/eslint/eslint/issues/17318)) (Milos Djermanovic)

#### Bug Fixes

-   [`b79b6fb`](https://github.com/eslint/eslint/commit/b79b6fb64473969b426d086b484d2e29594a5e9a) fix: Fix suggestion message in `no-useless-escape` ([#&#8203;17339](https://github.com/eslint/eslint/issues/17339)) (Francesco Trotta)
-   [`c667055`](https://github.com/eslint/eslint/commit/c667055fb9da8ebac3a99f6e5a8b5565cc86af8e) fix: provide unique `fix` and `fix.range` objects in lint messages ([#&#8203;17332](https://github.com/eslint/eslint/issues/17332)) (Milos Djermanovic)

#### Documentation

-   [`89f3225`](https://github.com/eslint/eslint/commit/89f3225108c66425e4132f76db6c1ab13aac98d7) docs: add playground links to correct and incorrect code blocks ([#&#8203;17306](https://github.com/eslint/eslint/issues/17306)) (Josh Goldberg ✨)
-   [`f8892b5`](https://github.com/eslint/eslint/commit/f8892b52920b8967f9e7bec23c75b74e03977d6b) docs: Expand rule option schema docs ([#&#8203;17198](https://github.com/eslint/eslint/issues/17198)) (Matt Wilkinson)
-   [`8bcbf11`](https://github.com/eslint/eslint/commit/8bcbf11b6050418262ffa8e0ca37f365ae92e7ce) docs: Config Migration Guide ([#&#8203;17230](https://github.com/eslint/eslint/issues/17230)) (Ben Perlmutter)
-   [`bb30908`](https://github.com/eslint/eslint/commit/bb3090897166dbfd2931a43a70e2a5c1f3fa0a07) docs: Update README (GitHub Actions Bot)
-   [`84d243b`](https://github.com/eslint/eslint/commit/84d243b245b01b667f0752b592e8bda02a9aa2b1) docs: Update README (GitHub Actions Bot)
-   [`b762632`](https://github.com/eslint/eslint/commit/b762632298f20c4f81e7d01ab850c3f5e3874637) docs: Update README (GitHub Actions Bot)
-   [`138c096`](https://github.com/eslint/eslint/commit/138c096bc9468b553dbafc0e573c6522a17a7922) docs: add more prefer-destructuring examples with array destructuring ([#&#8203;17330](https://github.com/eslint/eslint/issues/17330)) (Milos Djermanovic)
-   [`1fc50a8`](https://github.com/eslint/eslint/commit/1fc50a89753346f4f4c786ffd20ac4cf185bb036) docs: `max-len` rule `code` and `tabWidth` as positional arguments ([#&#8203;17331](https://github.com/eslint/eslint/issues/17331)) (Jesús Leganés-Combarro)

#### Chores

-   [`68f63d7`](https://github.com/eslint/eslint/commit/68f63d76ce785fab4f42b76f1599026eea379bf7) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`5ca9b4d`](https://github.com/eslint/eslint/commit/5ca9b4d29f747e9cf5c9055e85c93b3b605d57fc) chore: update eslint-config-eslint exports ([#&#8203;17336](https://github.com/eslint/eslint/issues/17336)) (Milos Djermanovic)
-   [`7bf2e86`](https://github.com/eslint/eslint/commit/7bf2e86022c9e95db4ca1472fddfa2ea4edd1870) chore: remove unused dependencies ([#&#8203;17352](https://github.com/eslint/eslint/issues/17352)) (Percy Ma)
-   [`c6f8cd0`](https://github.com/eslint/eslint/commit/c6f8cd0d62e4a3c314c6860ff367490bbd05325a) chore: Remove `defaultIgnores` from FlatESLint private members ([#&#8203;17349](https://github.com/eslint/eslint/issues/17349)) (Francesco Trotta)
-   [`0052374`](https://github.com/eslint/eslint/commit/0052374035672efe9129343fc00ee51a4c288ff3) chore: move jsdoc settings to eslint-config-eslint ([#&#8203;17338](https://github.com/eslint/eslint/issues/17338)) (唯然)

### [`v8.44.0`](https://github.com/eslint/eslint/releases/tag/v8.44.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.43.0...v8.44.0)

#### Features

-   [`1766771`](https://github.com/eslint/eslint/commit/176677180a4a1209fc192771521c9192e1f67578) feat: add `es2023` and `es2024` environments ([#&#8203;17328](https://github.com/eslint/eslint/issues/17328)) (Milos Djermanovic)
-   [`4c50400`](https://github.com/eslint/eslint/commit/4c5040022639ae804c15b366afc6e64982bd8ae3) feat: add `ecmaVersion: 2024`, regexp `v` flag parsing ([#&#8203;17324](https://github.com/eslint/eslint/issues/17324)) (Milos Djermanovic)
-   [`4d411e4`](https://github.com/eslint/eslint/commit/4d411e4c7063274d6d346f1b7ee46f7575d0bbd2) feat: add ternaryOperandBinaryExpressions option to no-extra-parens rule ([#&#8203;17270](https://github.com/eslint/eslint/issues/17270)) (Percy Ma)
-   [`c8b1f4d`](https://github.com/eslint/eslint/commit/c8b1f4d61a256727755d561bf53f889b6cd712e0) feat: Move `parserServices` to `SourceCode` ([#&#8203;17311](https://github.com/eslint/eslint/issues/17311)) (Milos Djermanovic)
-   [`ef6e24e`](https://github.com/eslint/eslint/commit/ef6e24e42670f321d996948623846d9caaedac99) feat: treat unknown nodes as having the lowest precedence ([#&#8203;17302](https://github.com/eslint/eslint/issues/17302)) (Brad Zacher)
-   [`1866e1d`](https://github.com/eslint/eslint/commit/1866e1df6175e4ba0ae4a0d88dc3c956bb310035) feat: allow flat config files to export a Promise ([#&#8203;17301](https://github.com/eslint/eslint/issues/17301)) (Milos Djermanovic)

#### Bug Fixes

-   [`a36bcb6`](https://github.com/eslint/eslint/commit/a36bcb67f26be42c794797d0cc9948b9cfd4ff71) fix: no-unused-vars false positive with logical assignment operators ([#&#8203;17320](https://github.com/eslint/eslint/issues/17320)) (Gweesin Chan)
-   [`7620b89`](https://github.com/eslint/eslint/commit/7620b891e81c234f30f9dbcceb64a05fd0dde65e) fix: Remove `no-unused-labels` autofix before potential directives ([#&#8203;17314](https://github.com/eslint/eslint/issues/17314)) (Francesco Trotta)
-   [`391ed38`](https://github.com/eslint/eslint/commit/391ed38b09bd1a3abe85db65b8fcda980ab3d6f4) fix: Remove `no-extra-semi` autofix before potential directives ([#&#8203;17297](https://github.com/eslint/eslint/issues/17297)) (Francesco Trotta)

#### Documentation

-   [`526e911`](https://github.com/eslint/eslint/commit/526e91106e6fe101578e9478a9d7f4844d4f72ac) docs: resubmit pr 17115 doc changes ([#&#8203;17291](https://github.com/eslint/eslint/issues/17291)) (唯然)
-   [`e1314bf`](https://github.com/eslint/eslint/commit/e1314bf85a52bb0d05b1c9ca3b4c1732bae22172) docs: Integration section and tutorial ([#&#8203;17132](https://github.com/eslint/eslint/issues/17132)) (Ben Perlmutter)
-   [`19a8c5d`](https://github.com/eslint/eslint/commit/19a8c5d84596a9f7f2aa428c1696ba86daf854e6) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`49e46ed`](https://github.com/eslint/eslint/commit/49e46edf3c8dc71d691a97fc33b63ed80ae0db0c) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).44.0 ([#&#8203;17329](https://github.com/eslint/eslint/issues/17329)) (Milos Djermanovic)
-   [`a1cb642`](https://github.com/eslint/eslint/commit/a1cb6421f9d185901cd99e5f696e912226ef6632) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`840a264`](https://github.com/eslint/eslint/commit/840a26462bbf6c27c52c01b85ee2018062157951) test: More test cases for no-case-declarations ([#&#8203;17315](https://github.com/eslint/eslint/issues/17315)) (Elian Cordoba)
-   [`e6e74f9`](https://github.com/eslint/eslint/commit/e6e74f9eef0448129dd4775628aba554a2d8c8c9) chore: package.json update for eslint-config-eslint release (ESLint Jenkins)
-   [`eb3d794`](https://github.com/eslint/eslint/commit/eb3d7946e1e9f70254008744dba2397aaa730114) chore: upgrade semver@7.5.3 ([#&#8203;17323](https://github.com/eslint/eslint/issues/17323)) (Ziyad El Abid)
-   [`cf88439`](https://github.com/eslint/eslint/commit/cf884390ad8071d88eae05df9321100f1770363d) chore: upgrade optionator@0.9.3 ([#&#8203;17319](https://github.com/eslint/eslint/issues/17319)) (Milos Djermanovic)
-   [`9718a97`](https://github.com/eslint/eslint/commit/9718a9781d69d2c40b68c631aed97700b32c0082) refactor: remove unnecessary code in `flat-eslint.js` ([#&#8203;17308](https://github.com/eslint/eslint/issues/17308)) (Milos Djermanovic)
-   [`f82e56e`](https://github.com/eslint/eslint/commit/f82e56e9acfb9562ece76441472d5657d7d5e296) perf: various performance improvements ([#&#8203;17135](https://github.com/eslint/eslint/issues/17135)) (moonlightaria)
-   [`da81e66`](https://github.com/eslint/eslint/commit/da81e66e22b4f3d3fe292cf70c388753304deaad) chore: update eslint-plugin-jsdoc to 46.2.5 ([#&#8203;17245](https://github.com/eslint/eslint/issues/17245)) (唯然)
-   [`b991640`](https://github.com/eslint/eslint/commit/b991640176d5dce4750f7cc71c56cd6f284c882f) chore: switch eslint-config-eslint to the flat format ([#&#8203;17247](https://github.com/eslint/eslint/issues/17247)) (唯然)

### [`v8.43.0`](https://github.com/eslint/eslint/releases/tag/v8.43.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.42.0...v8.43.0)

#### Features

-   [`14581ff`](https://github.com/eslint/eslint/commit/14581ff15aaee5a55c46bbf4983818ddc8dd7cb1) feat: directive prologue detection and autofix condition in `quotes` ([#&#8203;17284](https://github.com/eslint/eslint/issues/17284)) (Francesco Trotta)
-   [`e50fac3`](https://github.com/eslint/eslint/commit/e50fac3f8f998f729e3080e256066db3a7827c67) feat: add declaration loc to message in block-scoped-var ([#&#8203;17252](https://github.com/eslint/eslint/issues/17252)) (Milos Djermanovic)
-   [`1b7faf0`](https://github.com/eslint/eslint/commit/1b7faf0702b1af86b6a0ddafc37cf45d60f5d4d8) feat: add `skipJSXText` option to `no-irregular-whitespace` rule ([#&#8203;17182](https://github.com/eslint/eslint/issues/17182)) (Azat S)

#### Bug Fixes

-   [`5338b56`](https://github.com/eslint/eslint/commit/5338b56fda7f47d16bdb23514f1e95b24de7b92f) fix: normalize `cwd` passed to `ESLint`/`FlatESLint` constructor ([#&#8203;17277](https://github.com/eslint/eslint/issues/17277)) (Milos Djermanovic)
-   [`54383e6`](https://github.com/eslint/eslint/commit/54383e69b092ef537d59a1f7799a85b1412f4e59) fix: Remove `no-extra-parens` autofix for potential directives ([#&#8203;17022](https://github.com/eslint/eslint/issues/17022)) (Francesco Trotta)

#### Documentation

-   [`8b855ea`](https://github.com/eslint/eslint/commit/8b855ea058992d5446d1d6dc6394ee683c3200a0) docs: resubmit pr17061 doc changes ([#&#8203;17292](https://github.com/eslint/eslint/issues/17292)) (唯然)
-   [`372722e`](https://github.com/eslint/eslint/commit/372722eac32ca9e3f31cf0d0bc10317c6f153369) docs: resubmit pr17012 doc changes ([#&#8203;17293](https://github.com/eslint/eslint/issues/17293)) (唯然)
-   [`67e7af3`](https://github.com/eslint/eslint/commit/67e7af3fdbdb4648b747dfd669be4decfe24086a) docs: resubmit custom-rules doc changes ([#&#8203;17294](https://github.com/eslint/eslint/issues/17294)) (唯然)
-   [`9e3d77c`](https://github.com/eslint/eslint/commit/9e3d77cba65d0e38e07996e57961fb04f30d9303) docs: Resubmit Fix formatting in Custom Rules docs ([#&#8203;17281](https://github.com/eslint/eslint/issues/17281)) (Milos Djermanovic)
-   [`503647a`](https://github.com/eslint/eslint/commit/503647a0b94ca8c776d7e7e8c54c8b1d32904467) docs: Resubmit markVariableAsUsed docs ([#&#8203;17280](https://github.com/eslint/eslint/issues/17280)) (Nicholas C. Zakas)
-   [`e0cf0d8`](https://github.com/eslint/eslint/commit/e0cf0d86d985ed2b2f901dd9aab5ccd2fff062ad) docs: Custom rule & plugin tutorial ([#&#8203;17024](https://github.com/eslint/eslint/issues/17024)) (Ben Perlmutter)
-   [`8e51ea9`](https://github.com/eslint/eslint/commit/8e51ea943c2fcd05bd8917cfa89e36b91209c7cd) docs: resubmit `no-new` rule documentation ([#&#8203;17264](https://github.com/eslint/eslint/issues/17264)) (Nitin Kumar)
-   [`1b217f8`](https://github.com/eslint/eslint/commit/1b217f8de15961fd3c80389621080132f517a0fb) docs: resubmit `Custom Processors` documentation ([#&#8203;17265](https://github.com/eslint/eslint/issues/17265)) (Nitin Kumar)
-   [`428fc76`](https://github.com/eslint/eslint/commit/428fc76806dea1ac82484d628261a5385f928e6a) docs: resubmit `Create Plugins` documentation ([#&#8203;17268](https://github.com/eslint/eslint/issues/17268)) (Nitin Kumar)
-   [`bdca88c`](https://github.com/eslint/eslint/commit/bdca88cf4f8b7888cb72197bfe9c1d90b490a0dd) docs: resubmit `Configuration Files` documentation ([#&#8203;17267](https://github.com/eslint/eslint/issues/17267)) (Nitin Kumar)
-   [`f5c01f2`](https://github.com/eslint/eslint/commit/f5c01f281ad288b1a0ebddbf579230ae11587c6c) docs: resubmit `Manage Issues` documentation ([#&#8203;17266](https://github.com/eslint/eslint/issues/17266)) (Nitin Kumar)
-   [`b199295`](https://github.com/eslint/eslint/commit/b1992954591a3f4d8417013f52739b5fef4e0cd7) docs: Resubmit custom rules update docs ([#&#8203;17273](https://github.com/eslint/eslint/issues/17273)) (Ben Perlmutter)
-   [`0e9980c`](https://github.com/eslint/eslint/commit/0e9980c3a8a1e554fdb377305c0ebe9e94a354c9) docs: add new `omitLastInOneLineClassBody` option to the `semi` rule ([#&#8203;17263](https://github.com/eslint/eslint/issues/17263)) (Nitin Kumar)
-   [`cb2560f`](https://github.com/eslint/eslint/commit/cb2560f7a393e74b761faa9adad938fb1deb947d) docs: Resubmit getScope/getDeclaredVariables docs ([#&#8203;17262](https://github.com/eslint/eslint/issues/17262)) (Nicholas C. Zakas)
-   [`85d2b30`](https://github.com/eslint/eslint/commit/85d2b30bc318c1355e52ebb21c56cca32f0ab198) docs: explain how to include predefined globals ([#&#8203;17261](https://github.com/eslint/eslint/issues/17261)) (Marcus Wyatt)
-   [`de4d3c1`](https://github.com/eslint/eslint/commit/de4d3c14c30a88795b9075d59827d3fe63a42c5e) docs: update flat config default ignore patterns ([#&#8203;17258](https://github.com/eslint/eslint/issues/17258)) (Milos Djermanovic)
-   [`3912f3a`](https://github.com/eslint/eslint/commit/3912f3a225c12bfb5ce9b7ba26c2b5301e6275bd) docs: Improve `ignores` documentation ([#&#8203;17239](https://github.com/eslint/eslint/issues/17239)) (Francesco Trotta)
-   [`35e11d3`](https://github.com/eslint/eslint/commit/35e11d3248e00b711fd652836edc900f22af0ebd) docs: fix typos and missing info ([#&#8203;17257](https://github.com/eslint/eslint/issues/17257)) (Ed Lucas)
-   [`0bc257c`](https://github.com/eslint/eslint/commit/0bc257c290b12fcda85cb61b40d55fc2be0f938c) docs: Clarify `no-div-regex` rule docs ([#&#8203;17051](https://github.com/eslint/eslint/issues/17051)) ([#&#8203;17255](https://github.com/eslint/eslint/issues/17255)) (Francesco Trotta)
-   [`788d836`](https://github.com/eslint/eslint/commit/788d83629a3790a7db6f52dcf0b4bddf51c6d063) docs: add references to MIT License ([#&#8203;17248](https://github.com/eslint/eslint/issues/17248)) (Milos Djermanovic)
-   [`58aab6b`](https://github.com/eslint/eslint/commit/58aab6b6c09996875418aefeeb0fd76c50caef7a) docs: Update README (GitHub Actions Bot)
-   [`3ef5814`](https://github.com/eslint/eslint/commit/3ef58140550cf8ff34af35fc4d9a1f9a124fe0e6) docs: Revert all changes after the license change ([#&#8203;17227](https://github.com/eslint/eslint/issues/17227)) (Milos Djermanovic)
-   [`03fc4aa`](https://github.com/eslint/eslint/commit/03fc4aa847bd0445e7b3ea81bcc9523b1847facc) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`78350f6`](https://github.com/eslint/eslint/commit/78350f63045c82b7990bb7bfe5080c5ad5e1c3f5) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).43.0 ([#&#8203;17295](https://github.com/eslint/eslint/issues/17295)) (Milos Djermanovic)
-   [`62bf759`](https://github.com/eslint/eslint/commit/62bf759124811b013ad7906c2536deb8b39c31a8) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`e0a2448`](https://github.com/eslint/eslint/commit/e0a2448e0c0ef354e69998858846630a3fce8ebe) chore: docs package.license ISC => MIT ([#&#8203;17254](https://github.com/eslint/eslint/issues/17254)) (唯然)
-   [`6a0196c`](https://github.com/eslint/eslint/commit/6a0196c51310630a0ff96a1e8d7f257c2c7adda9) chore: use eslint-plugin-eslint-plugin flat configs ([#&#8203;17204](https://github.com/eslint/eslint/issues/17204)) (Milos Djermanovic)

### [`v8.42.0`](https://github.com/eslint/eslint/releases/tag/v8.42.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.41.0...v8.42.0)

#### Features

-   [`b8448ff`](https://github.com/eslint/eslint/commit/b8448ff1ae1adf26a81dea07f340caa5b5c2f257) feat: correct no-useless-return behaviour in try statements ([#&#8203;16996](https://github.com/eslint/eslint/issues/16996)) (Nitin Kumar)

#### Bug Fixes

-   [`a589636`](https://github.com/eslint/eslint/commit/a5896360c3faa1e7d1fe81a9907a434b8b8f6b60) fix: Config with `ignores` and without `files` should not always apply ([#&#8203;17181](https://github.com/eslint/eslint/issues/17181)) (Milos Djermanovic)
-   [`c4fad17`](https://github.com/eslint/eslint/commit/c4fad173c7149dbcd25695c19c68663102b9ec6b) fix: Correct ignore message for "node_modules" subfolders ([#&#8203;17217](https://github.com/eslint/eslint/issues/17217)) (Francesco Trotta)

#### Documentation

-   [`01d7142`](https://github.com/eslint/eslint/commit/01d7142642c87241135699571e8010f5e8fcda4f) docs: Update README (GitHub Actions Bot)
-   [`e5182b7`](https://github.com/eslint/eslint/commit/e5182b723ff82bb3b55c50c06d64626055414b31) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`6ca5b7c`](https://github.com/eslint/eslint/commit/6ca5b7ca3bac9e10c6cfee4cdc78446e94eb7607) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).42.0 ([#&#8203;17236](https://github.com/eslint/eslint/issues/17236)) (Milos Djermanovic)
-   [`67fc5e7`](https://github.com/eslint/eslint/commit/67fc5e730e4dfc372dea11e15d3f5165bc812491) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`0892412`](https://github.com/eslint/eslint/commit/0892412556b2ba6c3d1b85152dafe47a3f4cba72) refactor: remove `Identifier` listener in no-irregular-whitespace ([#&#8203;17235](https://github.com/eslint/eslint/issues/17235)) (Milos Djermanovic)
-   [`f67d298`](https://github.com/eslint/eslint/commit/f67d2984c3c3f26497842a04d5166707587c1fca) test: Add `FlatESLint` tests with missing config files ([#&#8203;17164](https://github.com/eslint/eslint/issues/17164)) (Milos Djermanovic)
-   [`5b68d51`](https://github.com/eslint/eslint/commit/5b68d51e3e6bd003d6cf74d3434f7165691b4f4d) chore: Fix `fixedsize` attribute in code path analysis DOT debug output ([#&#8203;17202](https://github.com/eslint/eslint/issues/17202)) (Milos Djermanovic)
-   [`37432f2`](https://github.com/eslint/eslint/commit/37432f27dc15817d66cf42377792197dc2aeb8b2) chore: update descriptions in key-spacing tests ([#&#8203;17195](https://github.com/eslint/eslint/issues/17195)) (Milos Djermanovic)

### [`v8.41.0`](https://github.com/eslint/eslint/releases/tag/v8.41.0)

[Compare Source](https://github.com/eslint/eslint/compare/v8.40.0...v8.41.0)

#### Features

-   [`880a431`](https://github.com/eslint/eslint/commit/880a4317b949e575a4a6c5e8baaba1eea7674cc6) feat: change default ignore pattern to `**/node_modules/` in flat config ([#&#8203;17184](https://github.com/eslint/eslint/issues/17184)) (Milos Djermanovic)
-   [`8bf5505`](https://github.com/eslint/eslint/commit/8bf550594fca6d29fab1a3453e701c1a457767e1) feat: expose `shouldUseFlatConfig` ([#&#8203;17169](https://github.com/eslint/eslint/issues/17169)) (Connor Prussin)

#### Bug Fixes

-   [`4f5440d`](https://github.com/eslint/eslint/commit/4f5440db631707b17140c4e5cc7beb223afbd2b9) fix: incorrect warning message for ignored dotfiles ([#&#8203;17196](https://github.com/eslint/eslint/issues/17196)) (Milos Djermanovic)
-   [`94da96c`](https://github.com/eslint/eslint/commit/94da96cbf0fb2bb6694fa2e757eb1b3e74c40db7) fix: unify `LintMessage` type ([#&#8203;17076](https://github.com/eslint/eslint/issues/17076)) (Brandon Mills)
-   [`0c415cd`](https://github.com/eslint/eslint/commit/0c415cda5d76dbe5120ab9f3c4c81320538e35f0) fix: validate `ignorePatterns` constructor option in `FlatESLint` class ([#&#8203;17139](https://github.com/eslint/eslint/issues/17139)) (Milos Djermanovi…
@eslint-github-bot eslint-github-bot bot locked and limited conversation to collaborators Feb 27, 2024
@eslint-github-bot eslint-github-bot bot added the archived due to age This issue has been archived; please open a new issue for any further discussion label Feb 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion archived due to age This issue has been archived; please open a new issue for any further discussion chore This change is not user-facing contributor pool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Change Request: Switch from Karma to WebdriverIO
8 participants