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 @@ -56,7 +56,7 @@
"@vitest/ui": "4.0.18",
"babel-plugin-react-compiler": "1.0.0",
"concurrently": "9.2.1",
"eslint": "9.39.2",
"eslint": "10.0.0",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Breaking Change: ESLint 10 Incompatibility

This upgrade to ESLint 10.0.0 introduces a critical compatibility issue:

Problem: eslint-plugin-react@7.37.5 (transitive dependency from eslint-config-next@16.1.6) is not compatible with ESLint 10.0.0.

Error:

TypeError: Error while loading rule 'react/display-name': contextOrFilename.getFilename is not a function

Why it happens: ESLint 10 changed the context API, and eslint-plugin-react@7.37.5 was only tested up to ESLint 9.7.

Recommendation: Do not merge this PR. Instead:

  1. Wait for eslint-config-next to release a version compatible with ESLint 10, OR
  2. Pin ESLint to ^9.39.2 and block ESLint 10 upgrades in Renovate config until ecosystem support catches up

See full review for detailed analysis and options β†’

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Breaking Change: ESLint 10 Incompatibility

This upgrade introduces a critical compatibility issue:

Problem: eslint-plugin-react@7.37.5 (transitive dependency from eslint-config-next@16.1.6) does not support ESLint 10.

Error:

TypeError: Error while loading rule 'react/display-name': contextOrFilename.getFilename is not a function

Why: ESLint 10 changed the context API. eslint-plugin-react@7.37.5 only supports eslint ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7.

Recommendation: Keep ESLint at ^9.39.2 until Next.js releases an ESLint 10-compatible version of eslint-config-next.

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Breaking Change: ESLint 10 Incompatibility

This upgrade introduces a critical compatibility issue:

Problem: eslint-plugin-react@7.37.5 (transitive dependency from eslint-config-next@16.1.6) does not support ESLint 10.

Error:

TypeError: Error while loading rule 'react/display-name': contextOrFilename.getFilename is not a function

Why: ESLint 10 changed the context API. eslint-plugin-react@7.37.5 only supports eslint ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7.

Recommendation: Keep ESLint at ^9.39.2 until Next.js releases an ESLint 10-compatible version of eslint-config-next.

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Critical Breaking Change: ESLint 10 Incompatibility

This upgrade to ESLint 10.0.0 introduces a critical compatibility issue:

Problem: eslint-plugin-react@7.37.5 (transitive dependency from eslint-config-next@16.1.6) does not support ESLint 10.

Error from CI:

TypeError: Error while loading rule 'react/display-name': contextOrFilename.getFilename is not a function

Why: ESLint 10 changed the context API. eslint-plugin-react@7.37.5 only supports:

eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7

Impact:

  • ❌ Linting completely broken
  • ❌ CI/CD pipeline fails
  • ❌ Pre-commit hooks fail
  • ❌ Cannot enforce code quality standards

Recommendation:

Keep ESLint at ^9.39.2 and configure Renovate to block ESLint 10 upgrades until the ecosystem catches up:

{
  "packageRules": [
    {
      "matchPackageNames": ["eslint"],
      "allowedVersions": "< 10"
    }
  ]
}

Monitor for updates to either:

  • eslint-plugin-react v8.x (with ESLint 10 support)
  • eslint-config-next v16.2+ (with updated dependencies)

Expected timeline: Late February 2026

Copy link
Contributor

Choose a reason for hiding this comment

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

🚨 Critical Breaking Change: ESLint 10 Incompatibility

This upgrade to ESLint 10.0.0 introduces a critical compatibility issue:

Problem: eslint-plugin-react@7.37.5 (transitive dependency from eslint-config-next@16.1.6) does not support ESLint 10.

Error from CI:

TypeError: Error while loading rule 'react/display-name': contextOrFilename.getFilename is not a function

Why: ESLint 10 changed the context API. eslint-plugin-react@7.37.5 only supports:

eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7

Impact:

  • ❌ Linting completely broken
  • ❌ CI/CD pipeline fails
  • ❌ Pre-commit hooks fail
  • ❌ Cannot enforce code quality standards

Recommendation:

Keep ESLint at ^9.39.2 and configure Renovate to block ESLint 10 upgrades until the ecosystem catches up:

{
  "packageRules": [
    {
      "matchPackageNames": ["eslint"],
      "allowedVersions": "< 10"
    }
  ]
}

Monitor for updates to either:

  • eslint-plugin-react v8.x (with ESLint 10 support)
  • eslint-config-next v16.2+ (with updated dependencies)

Expected timeline: Late February 2026

Copy link
Contributor

Choose a reason for hiding this comment

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

🚨 Critical Breaking Change: ESLint 10 Incompatibility

This upgrade to ESLint 10.0.0 introduces a critical compatibility issue:

Problem: eslint-plugin-react@7.37.5 (transitive dependency from eslint-config-next@16.1.6) does not support ESLint 10.

Error from CI:

TypeError: Error while loading rule 'react/display-name': contextOrFilename.getFilename is not a function

Why: ESLint 10 changed the context API. eslint-plugin-react@7.37.5 only supports:

eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7

Impact:

  • ❌ Linting completely broken
  • ❌ CI/CD pipeline fails
  • ❌ Pre-commit hooks fail
  • ❌ Cannot enforce code quality standards

Recommendation:

Keep ESLint at ^9.39.2 and configure Renovate to block ESLint 10 upgrades until the ecosystem catches up:

{
  packageRules: [
    {
      matchPackageNames: ["eslint"],
      allowedVersions: "<10",
      description: "eslint-plugin-react doesn't support ESLint 10 yet"
    }
  ]
}

Monitor for updates to either:

  • eslint-plugin-react v8.x (with ESLint 10 support)
  • eslint-config-next v16.2+ (with updated dependencies)

Expected timeline: Late February 2026

Copy link
Contributor

Choose a reason for hiding this comment

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

🚨 BREAKING: ESLint 10 Incompatibility

Critical Issue: This version upgrade breaks linting completely.

Error:

TypeError: Error while loading rule 'react/display-name': 
contextOrFilename.getFilename is not a function

Root Cause: eslint-plugin-react@7.37.5 (from eslint-config-next@16.1.6) only supports ESLint ≀9.7.

Required Action: Keep ESLint at ^9.39.2 until:

  • eslint-plugin-react@8.x releases with ESLint 10 support, OR
  • eslint-config-next@16.2+ updates to compatible plugins

Block in Renovate:

{
  "packageRules": [{
    "matchPackageNames": ["eslint"],
    "allowedVersions": "<10"
  }]
}

Expected Timeline: March-April 2026

Copy link
Contributor

Choose a reason for hiding this comment

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

🚨 CRITICAL: ESLint 10 Breaking Change

This upgrade breaks linting completely. The CI failure confirms the incompatibility issue.

Error from CI

TypeError: Error while loading rule 'react/display-name': 
contextOrFilename.getFilename is not a function

Root Cause

  • Package: eslint-plugin-react@7.37.5 (transitive dependency from eslint-config-next@16.1.6)
  • Peer dependency constraint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 (see pnpm-lock.yaml:1699)
  • Problem: ESLint 10 changed the context API, and eslint-plugin-react@7.37.5 was never tested with ESLint 10

Impact Assessment

  • ❌ Linting: Completely broken - cannot run ESLint at all
  • ❌ CI/CD: Build pipeline fails at lint step
  • ❌ Pre-commit hooks: Will fail, blocking local commits
  • ❌ Code quality: Cannot enforce any linting rules

Recommendation: DO NOT MERGE

This PR should remain blocked until the Next.js ecosystem adds ESLint 10 support.

Action items:

  1. Block this upgrade in Renovate by adding to renovate.json:

    {
      "packageRules": [
        {
          "matchPackageNames": ["eslint"],
          "allowedVersions": "<10",
          "description": "Block ESLint 10 until eslint-plugin-react@8.x is released"
        }
      ]
    }
  2. Monitor for these releases:

    • eslint-plugin-react@8.x with ESLint 10 support (tracking issue)
    • eslint-config-next@16.2+ with updated dependencies
  3. Expected timeline: March-April 2026 based on typical Next.js ecosystem update cycles

Why Not Workaround?

  • Cannot override transitive dependencies from eslint-config-next without breaking Next.js's own linting rules
  • Removing eslint-config-next would lose valuable Next.js-specific lint rules
  • This is a systemic ecosystem issue that requires upstream fixes

Copy link
Contributor

Choose a reason for hiding this comment

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

🚨 BLOCKING: ESLint 10 Breaking Change

This version upgrade breaks linting completely due to an incompatible transitive dependency.

Error:

TypeError: Error while loading rule 'react/display-name': 
contextOrFilename.getFilename is not a function

Root Cause:

  • eslint-plugin-react@7.37.5 (from eslint-config-next@16.1.6) only supports eslint ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
  • ESLint 10 changed the context API, breaking compatibility

Impact:

  • ❌ Linting completely broken
  • ❌ CI/CD pipeline fails
  • ❌ Pre-commit hooks fail
  • ⚠️ Security rules not enforceable

Recommendation:

Keep ESLint at ^9.39.2 until the Next.js ecosystem adds ESLint 10 support.

Block in Renovate:

{
  "packageRules": [{
    "matchPackageNames": ["eslint"],
    "allowedVersions": "<10",
    "description": "Block ESLint 10 until eslint-plugin-react@8.x is released"
  }]
}

Expected Timeline: March-April 2026

Tracking:

Copy link
Contributor

Choose a reason for hiding this comment

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

🚨 BLOCKING: ESLint 10 Breaking Change

This version upgrade breaks linting completely due to an incompatible transitive dependency.

Error:

TypeError: Error while loading rule 'react/display-name': 
contextOrFilename.getFilename is not a function

Root Cause:

  • eslint-plugin-react@7.37.5 (from eslint-config-next@16.1.6) only supports eslint ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 (see pnpm-lock.yaml:1699)
  • ESLint 10 changed the context API, breaking compatibility

Impact:

  • ❌ Linting completely broken
  • ❌ CI/CD pipeline fails
  • ❌ Pre-commit hooks fail
  • ⚠️ Security rules not enforceable

Recommendation:

Keep ESLint at ^9.39.2 until the Next.js ecosystem adds ESLint 10 support.

Block in Renovate:

{
  "packageRules": [{
    "matchPackageNames": ["eslint"],
    "allowedVersions": "<10",
    "description": "Block ESLint 10 until eslint-plugin-react@8.x is released"
  }]
}

Expected Timeline: March-April 2026

Tracking:

Copy link
Contributor

Choose a reason for hiding this comment

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

🚨 BLOCKING: Incompatible Transitive Dependency

This ESLint upgrade breaks linting completely due to eslint-plugin-react@7.37.5 (from eslint-config-next@16.1.6).

Error:

TypeError: Error while loading rule 'react/display-name': 
contextOrFilename.getFilename is not a function

Root Cause:

  • eslint-plugin-react@7.37.5 peer dependency: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
  • ESLint 10 changed context API (getFilename() β†’ filename property)

Recommendation:
Block ESLint 10 in Renovate config until eslint-plugin-react@8.x or eslint-config-next@16.2+ releases with ESLint 10 support.

Copy link
Contributor

Choose a reason for hiding this comment

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

🚨 BLOCKING: Incompatible Transitive Dependency

This ESLint upgrade breaks linting completely due to eslint-plugin-react@7.37.5 (from eslint-config-next@16.1.6).

Error:

TypeError: Error while loading rule 'react/display-name': 
contextOrFilename.getFilename is not a function

Root Cause:

  • eslint-plugin-react@7.37.5 peer dependency: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 (see pnpm-lock.yaml:1699)
  • ESLint 10 changed context API (getFilename() β†’ filename property)

Recommendation:
Block ESLint 10 in Renovate config until eslint-plugin-react@8.x or eslint-config-next@16.2+ releases with ESLint 10 support.

Copy link
Contributor

Choose a reason for hiding this comment

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

🚨 BLOCKING: ESLint 10 Incompatibility

This version upgrade breaks linting completely due to an incompatible transitive dependency.

Error:

TypeError: Error while loading rule 'react/display-name': 
contextOrFilename.getFilename is not a function

Root Cause:

  • eslint-plugin-react@7.37.5 (from eslint-config-next@16.1.6) only supports eslint ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 (see pnpm-lock.yaml:1699)
  • ESLint 10 changed the context API (getFilename() method β†’ filename property)

Impact:

  • ❌ Linting completely broken (CI fails at lint step)
  • ❌ Pre-commit hooks fail
  • ❌ Code quality standards not enforceable
  • ⚠️ Security rules disabled

Recommendation:

Keep ESLint at ^9.39.2 and block ESLint 10 upgrades in Renovate config:

{
  packageRules: [{
    matchPackageNames: ["eslint"],
    allowedVersions: "<10",
    description: "Block ESLint 10 until eslint-plugin-react@8.x is released"
  }]
}

Timeline: March-April 2026 (waiting for eslint-plugin-react@8.x or eslint-config-next@16.2+)

Tracking: jsx-eslint/eslint-plugin-react#3699

Copy link
Contributor

Choose a reason for hiding this comment

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

🚨 BLOCKING: ESLint 10 Breaking Change

This version upgrade breaks linting completely due to an incompatible transitive dependency.

Error:

TypeError: Error while loading rule 'react/display-name': 
contextOrFilename.getFilename is not a function

Root Cause:

  • eslint-plugin-react@7.37.5 (from eslint-config-next@16.1.6) only supports eslint ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 (see pnpm-lock.yaml:1703)
  • ESLint 10 changed the context API (getFilename() β†’ filename property)

Impact:

  • ❌ Linting completely broken
  • ❌ CI/CD pipeline fails
  • ❌ Pre-commit hooks fail
  • ⚠️ Security rules not enforceable

Recommendation:

Keep ESLint at ^9.39.2 and block ESLint 10 upgrades in Renovate config:

{
  "packageRules": [{
    "matchPackageNames": ["eslint"],
    "allowedVersions": "<10",
    "description": "Block ESLint 10 until eslint-plugin-react@8.x is released"
  }]
}

Expected Timeline: March-April 2026

Tracking:

"eslint-config-next": "16.1.6",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-simple-import-sort": "12.1.1",
Expand Down
Loading
Loading