Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"@trivago/prettier-plugin-sort-imports": "^5.0.0",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"eslint": "^8.56.0",
"eslint": "^10.0.0",

Choose a reason for hiding this comment

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

🔴 ESLint 10 drops legacy .eslintrc config format used by this project

Upgrading ESLint from v8 to v10 will break all linting in this project. The repository uses .eslintrc (legacy JSON configuration) at the root and in examples/webhooks-nextjs/.eslintrc, but ESLint 10 completely removed support for the legacy eslintrc configuration system.

Root Cause and Impact

ESLint 9 deprecated the legacy config system (.eslintrc.* files), and ESLint 10 removed it entirely. This project relies on multiple legacy-only features:

  • .eslintrc JSON config files (.eslintrc:1-30 and examples/webhooks-nextjs/.eslintrc:1-14)
  • The env key ("env": { "browser": true, "node": true }) at .eslintrc:8-11
  • The extends key with string-based config names at .eslintrc:3-7
  • The plugins key as a string array at .eslintrc:2
  • eslint-config-standard (package.json:31) which is designed for the legacy config system and has no flat config equivalent

After this upgrade, running eslint (e.g., via pnpm lint in any package) will fail because ESLint 10 won't recognize or load .eslintrc files at all. The project needs to be migrated to the flat config format (eslint.config.js) before upgrading to ESLint 10.

Impact: All linting commands (turbo lint, package-level eslint invocations) will fail.

Prompt for agents
The ESLint upgrade from v8 to v10 cannot be done as a simple version bump. ESLint 10 removed support for the legacy .eslintrc configuration format that this project uses. Before upgrading, you need to:

1. Convert .eslintrc (root) and examples/webhooks-nextjs/.eslintrc to flat config format (eslint.config.js or eslint.config.mjs)
2. Replace the `env` key with `languageOptions.globals` using the `globals` npm package
3. Replace `extends` with direct imports of config objects
4. Replace `plugins` string array with imported plugin objects
5. Replace `eslint-config-standard` (package.json line 31) with a flat-config-compatible alternative (e.g., `neostandard` or manually replicate the rules)
6. Verify all other eslint plugins/configs in devDependencies (eslint-config-turbo, eslint-plugin-import, etc.) have flat config support

Alternatively, revert this change and keep eslint at ^8.56.0 until the config migration is done.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

"eslint-config-next": "^15.0.0",
"eslint-config-prettier": "^10.0.0",
"eslint-config-standard": "^17.1.0",
Expand Down
Loading
Loading