-
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Test eslint plugin against eslint 9 #16663
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 eslint plugin against eslint 9 #16663
Conversation
a07862a to
cac5593
Compare
|
Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/57483 |
| ignore: false, | ||
| overrideConfigFile: fileURLToPath( | ||
| new URL( | ||
| "../fixtures/mjs-config-file/eslint.config.js", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The fixture fixtures/mjs-config-file is identical to fixtures/mjs-config-file-babel-7, here we reuse the fixture and merge these two tests as ESLint tests will be run against Node >= 12 only.
| if (languageOptions) { | ||
| const { parser, parserOptions, globals: globalsOption } = languageOptions; | ||
| if (parser) { | ||
| newConfig.parser = babelESLintParserPath; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use the resolved parser path instead of parser.meta.name as the rule tester in ESLint 7/8 expects parser to be an absolute path. We also pass absolute path to linter.defineParser so that the transformed config works for both linter.verify() and the RuleTester.
| } | ||
| `, | ||
| { "newline-before-return": 1 }, | ||
| { "newline-before-return": 1, "no-console": 1 }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ESLint 9 throws a good warning here: Previously we injected inline comment /* eslint-disable no-console */ without actually enabling the no-console rule first.
nicolo-ribaudo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In Babel 8 we should drop support for ESLint 7 -- do you think we should also drop ESLint 8 already?
6a6499c to
8a673bd
Compare
Good question. Since we have gradually accumulated a few breaking changes for Babel 8, I tend to keep ESLint 8 support and drop it in later major versions. So that babel/eslint-parser users don't have to upgrade both babel and eslint if they are using ESLint 8, which is the only supported major version by impactful community plugins such as I think we can follow when other plugins start to drop ESLint 8, otherwise let's keep ESLint 8 support then. |
The ESLint tests will be run against Node >= 12 only, so nodeGte12NoESM implies itNoESM, which can be merged with itESM into it.
8466297 to
71eb608
Compare
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@babel/traverse](https://babel.dev/docs/en/next/babel-traverse) ([source](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse)) | resolutions | minor | [`7.24.8` -> `7.25.6`](https://renovatebot.com/diffs/npm/@babel%2ftraverse/7.24.8/7.25.6) | --- ### Release Notes <details> <summary>babel/babel (@​babel/traverse)</summary> ### [`v7.25.6`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7256-2024-08-29) [Compare Source](babel/babel@v7.25.4...v7.25.6) ##### 🐛 Bug Fix - `babel-generator` - [#​16783](babel/babel#16783) Properly print inner comments in TS array types ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - [#​16775](babel/babel#16775) fix: jsx whitespace is not properly preserved when retainLines ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) - `babel-traverse` - [#​16727](babel/babel#16727) fix: `path.getAssignmentIdentifiers` may be `undefined` ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) - `babel-parser` - [#​16761](babel/babel#16761) fix: improve static canFollowModifier checks ([@​JLHwung](https://github.com/JLHwung)) - `babel-helpers`, `babel-plugin-transform-optional-chaining`, `babel-runtime-corejs3` - [#​16769](babel/babel#16769) Only wrap functions in `superPropertyGet` helper ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ##### 💅 Polish - `babel-generator`, `babel-plugin-transform-async-to-generator`, `babel-plugin-transform-block-scoping`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-classes`, `babel-plugin-transform-duplicate-named-capturing-groups-regex`, `babel-plugin-transform-named-capturing-groups-regex`, `babel-plugin-transform-react-jsx-development`, `babel-plugin-transform-react-jsx`, `babel-plugin-transform-react-pure-annotations`, `babel-plugin-transform-regenerator`, `babel-plugin-transform-runtime`, `babel-preset-env` - [#​16780](babel/babel#16780) Do not enforce printing space between `(` and comments ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-plugin-syntax-import-assertions`, `babel-plugin-syntax-import-attributes` - [#​16781](babel/babel#16781) Don't throw when enabling both syntax-import-{assertions,attributes} ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-generator` - [#​16782](babel/babel#16782) TS union/intersection nested in union does not need parens ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ##### 🏠 Internal - `babel-generator` - [#​16777](babel/babel#16777) Remove unused `parent` params in the generator ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ### [`v7.25.4`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7254-2024-08-22) [Compare Source](babel/babel@v7.25.3...v7.25.4) ##### 🐛 Bug Fix - `babel-traverse` - [#​16756](babel/babel#16756) fix: Skip computed key when renaming ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) - `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-decorators` - [#​16755](babel/babel#16755) fix: Decorator 2018-09 may throw an exception ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) - `babel-types` - [#​16710](babel/babel#16710) Visit AST fields nodes according to their syntactical order ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-generator` - [#​16709](babel/babel#16709) Print semicolon after TS `export namespace as A` ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ##### 💅 Polish - `babel-generator`, `babel-plugin-proposal-decorators`, `babel-plugin-proposal-destructuring-private`, `babel-plugin-proposal-pipeline-operator`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-destructuring`, `babel-plugin-transform-optional-chaining`, `babel-plugin-transform-private-methods`, `babel-plugin-transform-private-property-in-object`, `babel-plugin-transform-typescript`, `babel-runtime-corejs2`, `babel-runtime`, `babel-traverse` - [#​16722](babel/babel#16722) Avoid unnecessary parens around sequence expressions ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-generator`, `babel-plugin-transform-class-properties` - [#​16714](babel/babel#16714) Avoid unnecessary parens around exported arrow functions ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-generator`, `babel-plugin-proposal-decorators`, `babel-plugin-proposal-destructuring-private`, `babel-plugin-transform-object-rest-spread` - [#​16712](babel/babel#16712) Avoid printing unnecessary parens around object destructuring ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ##### 🔬 Output optimization - `babel-generator` - [#​16740](babel/babel#16740) Avoid extra spaces between comments/regexps in compact mode ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ### [`v7.25.3`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7253-2024-07-31) [Compare Source](babel/babel@v7.25.2...v7.25.3) ##### 🐛 Bug Fix - `babel-plugin-bugfix-firefox-class-in-computed-class-key`, `babel-traverse` - [#​16699](babel/babel#16699) Avoid validating visitors produced by `traverse.visitors.merge` ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ##### 🏠 Internal - `babel-parser` - [#​16688](babel/babel#16688) Add `@babel/types` as a dependency of `@babel/parser` ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ### [`v7.25.2`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7252-2024-07-30) [Compare Source](babel/babel@v7.25.1...v7.25.2) ##### 🐛 Bug Fix - `babel-core`, `babel-traverse` - [#​16695](babel/babel#16695) Ensure that `requeueComputedKeyAndDecorators` is available ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ### [`v7.25.1`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7251-2024-07-28) [Compare Source](babel/babel@v7.25.0...v7.25.1) ##### 🐛 Bug Fix - `babel-plugin-transform-function-name` - [#​16683](babel/babel#16683) fix: `ensureFunctionName` may be undefined ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) - `babel-plugin-transform-react-constant-elements` - [#​16582](babel/babel#16582) fix plugin-transform-react-constant-elements transform JSXFrament but not add JSXExpressionContainer ([@​keiseiTi](https://github.com/keiseiTi)) - `babel-traverse` - [#​16587](babel/babel#16587) fix: fixed issue16583 + test ([@​nerodesu017](https://github.com/nerodesu017)) ##### 🏠 Internal - [#​16663](babel/babel#16663) Test eslint plugin against eslint 9 ([@​JLHwung](https://github.com/JLHwung)) ### [`v7.25.0`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7250-2024-07-26) [Compare Source](babel/babel@v7.24.8...v7.25.0) ##### 👓 Spec Compliance - `babel-helpers`, `babel-plugin-proposal-explicit-resource-management`, `babel-runtime-corejs3` - [#​16537](babel/babel#16537) `await using` normative updates ([@​JLHwung](https://github.com/JLHwung)) - `babel-plugin-transform-typescript` - [#​16602](babel/babel#16602) Ensure enum members syntactically determinable to be strings do not get reverse mappings ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) ##### 🚀 New Feature - `babel-helper-create-class-features-plugin`, `babel-helper-function-name`, `babel-helper-plugin-utils`, `babel-helper-wrap-function`, `babel-plugin-bugfix-safari-class-field-initializer-scope`, `babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression`, `babel-plugin-transform-classes`, `babel-plugin-transform-function-name`, `babel-preset-env`, `babel-traverse`, `babel-types` - [#​16658](babel/babel#16658) Move `ensureFunctionName` to `NodePath.prototype` ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-helper-hoist-variables`, `babel-helper-plugin-utils`, `babel-plugin-proposal-async-do-expressions`, `babel-plugin-transform-modules-systemjs`, `babel-traverse` - [#​16644](babel/babel#16644) Move `hoistVariables` to `Scope.prototype` ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-helper-create-class-features-plugin`, `babel-helper-module-transforms`, `babel-helper-plugin-utils`, `babel-helper-split-export-declaration`, `babel-plugin-transform-classes`, `babel-traverse`, `babel-types` - [#​16645](babel/babel#16645) Move `splitExportDeclaration` to `NodePath.prototype` ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-helper-create-class-features-plugin`, `babel-helper-environment-visitor`, `babel-helper-module-transforms`, `babel-helper-plugin-utils`, `babel-helper-remap-async-to-generator`, `babel-helper-replace-supers`, `babel-plugin-bugfix-firefox-class-in-computed-class-key`, `babel-plugin-bugfix-v8-static-class-fields-redefine-readonly`, `babel-plugin-transform-async-generator-functions`, `babel-plugin-transform-classes`, `babel-traverse` - [#​16649](babel/babel#16649) Move `environment-visitor` helper into `@babel/traverse` ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-core`, `babel-parser` - [#​16480](babel/babel#16480) Expose wether a module has TLA or not as `.extra.async` ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-compat-data`, `babel-plugin-bugfix-safari-class-field-initializer-scope`, `babel-preset-env` - [#​16569](babel/babel#16569) Introduce `bugfix-safari-class-field-initializer-scope` ([@​davidtaylorhq](https://github.com/davidtaylorhq)) - `babel-plugin-transform-block-scoping`, `babel-traverse`, `babel-types` - [#​16551](babel/babel#16551) Add `NodePath#getAssignmentIdentifiers` ([@​JLHwung](https://github.com/JLHwung)) - `babel-helper-import-to-platform-api`, `babel-plugin-proposal-json-modules` - [#​16579](babel/babel#16579) Add `uncheckedRequire` option for JSON imports to CJS ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-helper-transform-fixture-test-runner`, `babel-node` - [#​16642](babel/babel#16642) Allow using custom config in `babel-node --eval` ([@​slatereax](https://github.com/slatereax)) - `babel-compat-data`, `babel-helper-create-regexp-features-plugin`, `babel-plugin-proposal-duplicate-named-capturing-groups-regex`, `babel-plugin-transform-duplicate-named-capturing-groups-regex`, `babel-preset-env`, `babel-standalone` - [#​16445](babel/babel#16445) Add `duplicate-named-capturing-groups-regex` to `preset-env` ([@​JLHwung](https://github.com/JLHwung)) ##### 🐛 Bug Fix - `babel-generator` - [#​16678](babel/babel#16678) Print parens around as expressions on the LHS ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-template`, `babel-types` - [#​15286](babel/babel#15286) fix: Props are lost when the template replaces the node ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) ##### 🏠 Internal - Other - [#​16674](babel/babel#16674) bump gulp to 5 ([@​JLHwung](https://github.com/JLHwung)) - `babel-generator` - [#​16651](babel/babel#16651) Simplify the printing logic for `(` before ambiguous tokens ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - `babel-helper-function-name`, `babel-plugin-transform-arrow-functions`, `babel-plugin-transform-function-name`, `babel-preset-env`, `babel-traverse` - [#​16652](babel/babel#16652) Simplify `helper-function-name` logic ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ##### 🏃♀️ Performance - `babel-parser`, `babel-plugin-proposal-pipeline-operator` - [#​16461](babel/babel#16461) Some minor parser performance improvements for ts ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) ##### 🔬 Output optimization - `babel-plugin-transform-classes` - [#​16670](babel/babel#16670) Reduce redundant `assertThisInitialized` ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) - `babel-helper-create-class-features-plugin`, `babel-helper-replace-supers`, `babel-helpers`, `babel-plugin-proposal-decorators`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-classes`, `babel-plugin-transform-exponentiation-operator`, `babel-plugin-transform-object-super`, `babel-plugin-transform-private-methods`, `babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime` - [#​16374](babel/babel#16374) Improve `super.x` output ([@​liuxingbaoyu](https://github.com/liuxingbaoyu)) - `babel-plugin-transform-class-properties`, `babel-plugin-transform-classes` - [#​16656](babel/babel#16656) Simplify output for anonymous classes with no methods ([@​nicolo-ribaudo](https://github.com/nicolo-ribaudo)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzEuNCIsInVwZGF0ZWRJblZlciI6IjM3LjQzMS40IiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==--> Reviewed-on: https://git.vylpes.xyz/RabbitLabs/random-bunny/pulls/212 Reviewed-by: Vylpes <[email protected]> Co-authored-by: Renovate Bot <[email protected]> Co-committed-by: Renovate Bot <[email protected]>
In this PR we test
babel-eslint-*against ESLint 9. In the test file we migrate all eslint test configs to the ESLint 9 compliant form, then we provide aeslintConfigCompatutility to convert ESLint 9 config for ESLint 7/8. This utility only works for our test cases usage. It basically explodes thelanguageOptionsbag intoparser,parserOptionsandenv. When we drop ESLint 7/8 support on Babel 8, we can remove theeslintConfigCompatutility without too much changes on test files.