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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🚩 No other package.json or config changes accompany this major version bump

This PR only changes the eslint version specifier in the root package.json. A major version bump from v8 to v10 (skipping v9) typically requires accompanying changes: migrating .eslintrc to eslint.config.*, updating incompatible shared configs/plugins, and potentially adjusting lint scripts that use deprecated CLI flags (e.g. eslint -f unix in packages/livekit-rtc/package.json). The absence of these changes suggests this may have been an automated dependency update (e.g. Renovate — renovate.json exists in the repo) that wasn't reviewed for breaking changes.

Open in Devin Review

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

Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
"@typescript-eslint/eslint-plugin": "^8.60.1",
"@typescript-eslint/parser": "^8.60.1",
"eslint": "^8.57.1",
"eslint": "^10.0.0",

Copy link
Copy Markdown
Contributor

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.

@devin-ai-integration devin-ai-integration Bot Jun 10, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 Info: Node engine requirement of eslint 10 vs CI matrix

ESLint 10 raises the minimum Node version (^20.19 || ^22.13 || >=24). The CI test matrix in .github/workflows uses node-version: [20, 22, 24, latest], which resolves to the newest release of each major, so the requirement should be met — but if a pinned/older 20.x or 22.x runner image is ever used, pnpm install would fail on the engine constraint.

Open in Devin Review

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

"eslint-config-next": "^15.5.19",
"eslint-config-prettier": "^10.1.8",
"eslint-config-standard": "^17.1.0",
Comment on lines +28 to 31

@devin-ai-integration devin-ai-integration Bot Jun 10, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔍 Peer dependency ranges of shared configs vs eslint 10

The lockfile now resolves every shared config/plugin against eslint@10.8.0 (e.g. eslint-config-standard@17.1.0, eslint-config-next@15.5.19, eslint-plugin-import@2.32.0). Several of these (notably eslint-config-standard@17, which declares an eslint ^8 peer range) have not been validated against ESLint 10; pnpm only warns on peer mismatches here since .npmrc does not enable strict-peer-dependencies, so the install will succeed while the configs may be incompatible at runtime. Worth verifying each shared config supports v10 as part of the flat-config migration.

Open in Devin Review

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

Expand Down
Loading
Loading