Repository navigation
Conversation
retyui
marked this pull request as draft
October 6, 2026 21:51
retyui
commented
Oct 7, 2026
retyui
force-pushed
the
feat/v16-eslint-10-flat-only
branch
from
October 7, 2026 08:49
f89a06c to
7ee69e3
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Several bundled plugins reject ESLint 10 in their peer ranges, causing strict npm installations to fail.
Review effort: Balanced
Findings: 1
Open (2)
What changed in this PR
Prepares v16 with ESLint 10 support and flat configuration as the sole format.
Changes:
- Consolidates Node, React, and React Native flat configs.
- Upgrades ESLint plugins, parsers, and runtime requirements.
- Replaces legacy test workspaces and updates migration documentation.
| File | Description |
|---|---|
.github/workflows/test.yml |
Tests on Node.js 22. |
README.md |
Documents flat config and migration. |
package.json |
Defines v16 exports and dependencies. |
node.js |
Implements the flat Node.js config. |
node.flat.js |
Removes obsolete flat wrapper. |
node.factory.js |
Removes legacy config factory. |
react.js |
Implements the flat React config. |
react.flat.js |
Removes obsolete flat wrapper. |
react.factory.js |
Removes legacy config factory. |
react-native.js |
Implements the flat React Native config. |
react-native.flat.js |
Removes obsolete flat wrapper. |
react-native.factory.js |
Removes legacy config factory. |
test/package.json |
Targets ESLint 10 and TypeScript 5.9. |
test/index.js |
Migrates import rule names. |
test/index.tsx |
Migrates TypeScript import rule names. |
test/eslint-v8/.eslintrc.js |
Removes ESLint 8 configuration. |
test/eslint-v8/package.json |
Removes ESLint 8 workspace. |
test/eslint-v9/package.json |
Removes ESLint 9 workspace. |
test/eslint-v10/package.json |
Adds ESLint 10 workspace. |
test/eslint-v10/eslint.config.mjs |
Uses the root package export. |
test/rules/core.js |
Exercises core rules. |
test/rules/flow.js |
Exercises ft-flow rules. |
test/rules/imports.js |
Exercises import-x rules. |
test/rules/promise.js |
Exercises promise rules. |
test/rules/react.js |
Exercises JavaScript React rules. |
test/rules/react.tsx |
Exercises TypeScript React rules. |
test/rules/react-native.js |
Exercises React Native rules. |
test/rules/react-native.tsx |
Exercises typed React Native rules. |
test/rules/typescript.ts |
Exercises TypeScript rules. |
test/rules/__tests__/jest.test.js |
Exercises JavaScript Jest rules. |
test/rules/__tests__/jest.test.ts |
Exercises TypeScript Jest rules. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
retyui
force-pushed
the
feat/v16-eslint-10-flat-only
branch
from
October 20, 2026 09:56
7ee69e3 to
f202657
Compare
…out interpolations
retyui
force-pushed
the
feat/v16-eslint-10-flat-only
branch
from
October 20, 2026 14:34
349ea93 to
1aa45f6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
v16.0.0: ESLint 10 support, flat config only, dependencies updated. ESLint 8 and 9 are end-of-life (version support).
Breaking changes
@callstack/eslint-config,/react,/node. The v15*.flat.jspaths still work.^10.0.0only.^22.13.0or>=24.3.0.eslint-plugin-import→eslint-plugin-import-x(import/*→import-x/*), because the original doesn't support ESLint 10 (#3227)..js/.jsxfiles are parsed by espree.projectService: trueinstead ofproject.Other changes
eslint-plugin-reactandeslint-plugin-react-nativeare wrapped withfixupPluginRules, because they call context APIs that ESLint 10 removed.react-native/no-raw-textis patched so<View>{`hello`}</View>no longer crashes the lint run (#341).@eslint/jsis now a direct dependency.Known issues
npm prints peer-dependency warnings for
eslint-plugin-react,eslint-plugin-react-nativeandeslint-plugin-react-native-a11y, because none of them lists ESLint 10 yet. Installation still succeeds and the rules work.Test plan
yarn testpasses on ESLint 10.