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.

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.

🚩 Node.js engine requirement mismatch with ESLint 10.4.0

The lockfile shows eslint@10.4.0 requires engines: {node: ^20.19.0 || ^22.13.0 || >=24}, but the current environment runs Node.js v20.18.1 (as seen from the error output). Node 20.18.1 does not satisfy ^20.19.0. Depending on CI node version and whether strict engine checks are enabled in pnpm (engine-strict), this could cause installation failures in CI or developer environments. Worth verifying what Node version CI uses.

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

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 conflicts with eslint-config-standard and eslint-config-next

Beyond the .eslintrc format incompatibility reported as a bug, two ESLint config packages in package.json declare peer dependencies that explicitly exclude ESLint 10:

  • eslint-config-standard@17.1.0 requires eslint: ^8.0.1 (lockfile confirms this)
  • eslint-config-next@15.4.6 requires eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 (lockfile confirms this)

pnpm's autoInstallPeers: true setting allowed the lockfile to resolve without errors, but these packages may exhibit runtime issues or missing/broken rules when paired with ESLint 10. Even if the flat config migration is done, these specific package versions would need to be upgraded to versions that officially support ESLint 10.

Open in Devin Review

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

Expand Down
Loading
Loading