Skip to content

chore(deps): update dependency @eslint-react/eslint-plugin to v5#23

Open
NexPB wants to merge 1 commit into
mainfrom
renovate/eslint-react-eslint-plugin-5.x
Open

chore(deps): update dependency @eslint-react/eslint-plugin to v5#23
NexPB wants to merge 1 commit into
mainfrom
renovate/eslint-react-eslint-plugin-5.x

Conversation

@NexPB

@NexPB NexPB commented May 3, 2026

Copy link
Copy Markdown
Owner

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@eslint-react/eslint-plugin (source) ^2.13.0^5.0.0 age confidence

Release Notes

Rel1cx/eslint-react (@​eslint-react/eslint-plugin)

v5.10.3

Compare Source

🏗️ Internal
  • Bumped typescript-eslint packages to ^8.62.1.
  • Bumped @effect/language-service to ^0.86.3.
  • Bumped undici and undici-types to ^8.6.0.
  • Updated the @eslint-react/eslint-plugin package description.

Full Changelog: Rel1cx/eslint-react@v5.10.2...v5.10.3

v5.10.2

Compare Source

🐞 Fixes
  • Fixed an issue where several rules treated computed identifier keys in spread props (e.g. <div {...{ [key]: value }} />) as static prop names. The actual property name is the runtime value of the variable; computed string literal keys are still recognized. Affected rules:
    • react-x/no-missing-key
    • react-jsx/no-children-prop-with-children
    • react-jsx/no-children-prop
    • react-jsx/no-useless-fragment
    • react-dom/no-dangerously-set-innerhtml-with-children
    • react-dom/no-dangerously-set-innerhtml
    • react-dom/no-missing-button-type
    • react-dom/no-missing-iframe-sandbox
    • react-dom/no-string-style-prop
    • react-dom/no-unsafe-iframe-sandbox
    • react-dom/no-unsafe-target-blank
    • react-dom/no-void-elements-with-children
    • react-web-api/no-leaked-event-listener
    • react-web-api/no-leaked-fetch
  • Fixed react-x/unsupported-syntax to no longer report IIFEs in JSX. This makes the rule consistent with the upstream react-hooks/unsupported-syntax and removes the iife message.
✨ New
  • react-x/unsupported-syntax now detects eval calls via globalThis.eval, globalThis["eval"], and type assertions like (globalThis as any).eval.
🏗️ Internal
  • Added an optional resolve parameter to Extract.getPropertyName so callers can control how identifier and private identifier property names are resolved.
  • Added unit tests for Extract.getPropertyName.

Full Changelog: Rel1cx/eslint-react@v5.10.1...v5.10.2

v5.10.1

Compare Source

🐞 Fixes
  • Added the missing static-components rule to disable-conflict-eslint-plugin-react-hooks, closes #​1884.
📝 Documentation
  • Rewrote the noCircularEffect recipe sample to use @eslint-react/kit collectors and simpleTraverse, and updated the recipe overview accordingly.
  • Removed the under construction brand assets page from the website.
🏗️ Internal
  • Bumped typescript-eslint, @types/node, vite, and tailwindcss.
  • Bumped fumadocs, lucide-react, and postcss in the website.

Full Changelog: Rel1cx/eslint-react@v5.10.0...v5.10.1

v5.10.0

Compare Source

📝 Documentation
  • Added status emoji markers to recipe and rule documentation code examples (#​1882).
  • Fixed the v5.7.2 changelog entry for react-x/no-unused-state.
  • Updated the community projects list.
🏗️ Internal
  • Bumped eslint to ^10.6.0.
  • Bumped js-yaml workspace override to ^4.3.0.

Full Changelog: Rel1cx/eslint-react@v5.9.5...v5.10.0

v5.9.5

Compare Source

🐞 Fixes
  • Compare.isEqual now recognizes structurally identical CallExpression nodes. This fixes false positives in the following rules when the compared target (event target, controller, or observed element) is derived from a function call such as window.matchMedia('…') or getEl():
    • react-web-api/no-leaked-event-listener
    • react-web-api/no-leaked-fetch
    • react-web-api/no-leaked-resize-observer
    • react-web-api/no-leaked-intersection-observer

Full Changelog: Rel1cx/eslint-react@v5.9.4...v5.9.5

v5.9.4

Compare Source

🐞 Fixes
  • The following rules now detect member expression calls made with computed string property access (e.g. obj["foo"]()):
    • react-x/no-array-index-key
    • react-x/no-duplicate-key
    • react-x/no-unnecessary-use-prefix
    • react-x/set-state-in-effect
    • react-x/set-state-in-render
    • react-dom/no-find-dom-node
    • react-dom/no-flush-sync
    • react-dom/no-hydrate
    • react-dom/no-render
    • react-dom/no-render-return-value
    • react-dom/no-use-form-state
    • react-web-api/no-leaked-fetch
📝 Documentation
  • Updated the community page and project list.
🏗️ Internal
  • Unified member expression property name checks with Extract.getPropertyName (#​1881).
  • Updated dependencies and switched postinstall to prepare.

Full Changelog: Rel1cx/eslint-react@v5.9.3...v5.9.4

v5.9.3

Compare Source

🐞 Fixes
  • ast: Corrected the TSESTreeJSX union and handling of computed member expressions (#​1877).
  • jsx: Handled namespaced host elements and cleaned up the spread child API (#​1876).
📝 Documentation
  • Refined the rule feature system docs and renamed the term-based patterns document.
  • Renamed import-paths.md to path-aliases.md.
  • Updated JSX type aliases and unwrap documentation.
🏗️ Internal
  • Aligned RuleContext imports in the kit package.
  • Bumped typescript-eslint packages to ^8.62.0 and related dependencies.
  • Renamed scripts with numeric prefixes and renamed verify-* scripts to check-*.
  • Replaced pnpm run with node --run across scripts (#​1879).
  • Replaced the website brand component with an inline logo SVG.
  • Restructured the test directory and added integration tests (#​1880).
  • Updated nx to ^23.0.1 and pnpm to 11.9.0.

Full Changelog: Rel1cx/eslint-react@v5.9.2...v5.9.3

v5.9.2

Compare Source

📝 Documentation
  • Cleaned up the "Further Reading" links in the rule docs.
🏗️ Internal
  • Switched to pnpm/action-setup to install Node and pnpm in CI.
  • Updated dependencies and the lockfile.
  • Updated the baseline.json timestamp and quality signal.

Full Changelog: Rel1cx/eslint-react@v5.9.1...v5.9.2

v5.9.1

Compare Source

📝 Documentation
  • Updated rule patterns and feature system documentation (#​1875).
  • Refined naming convention rule docs for context-name, id-name, and ref-name (#​1873).
  • Updated the example comment in the react-x/unsupported-syntax docs.
  • Removed the ast.unwrap example from the kit package docs.
  • Fixed a typo in a warning callout description.
🏗️ Internal
  • Bumped actions/checkout to v7.0.0 (#​1874).
  • Moved getHumanReadableKind from the ast package into the specific rules that use it.
  • Moved the iterator callback position map for react-x/no-missing-key into lib.ts.
  • Updated dprint line width to 160 and reformatted the codebase.
  • Updated eslint to ^10.5.0 and bumped miscellaneous dependencies.
  • Updated the dprint JSON plugin to v0.22.0.
  • Updated the baseline and DocsPage styling, and pruned pnpm workspace excludes.

Full Changelog: Rel1cx/eslint-react@v5.9.0...v5.9.1

v5.9.0

Compare Source

✨ New
  • Added react-web-api/no-leaked-intersection-observer rule to prevent leaked IntersectionObserver instances in components and hooks, enabled as warn in the recommended preset (#​1841, #​1868).
🐞 Fixes
  • react-web-api/no-leaked-intersection-observer, react-web-api/no-leaked-resize-observer: Report when disconnect is only called inside the observer's own callback, since the callback may never run if the component unmounts before the element intersects or resizes (#​1872).
🏗️ Internal
  • Improved CI configuration and updated SECURITY.md documentation (#​1871).
  • Bumped fumadocs-core and fumadocs-ui to 16.10.1.
New Contributors

Full Changelog: Rel1cx/eslint-react@v5.8.19...v5.9.0

v5.8.19

Compare Source

🏗️ Internal
  • Simplified isJsxLike in core package and added behavior boundary tests (#​1869).
  • Aligned code style in jsx package with core package (#​1870).
  • Updated @types/node to ^25.9.3.

Full Changelog: Rel1cx/eslint-react@v5.8.18...v5.8.19

v5.8.18

Compare Source

🐞 Fixes
  • Improved key detection in react-x/no-array-index-key and react-x/no-missing-key rules (#​1867).
📝 Documentation
  • Removed 'See Also' sections from custom rule recipes.
  • Reordered AST section in kit package docs (#​1866).
  • Formatted examples as accordions in kit package docs.
🏗️ Internal
  • Removed postinstall script on the website.
  • Updated textlint rules for inclusive language.
  • Updated dependencies and relaxed eslint peer dependency.

Full Changelog: Rel1cx/eslint-react@v5.8.17...v5.8.18

v5.8.17

Compare Source

📝 Documentation
  • Simplified project description (#​1860).
  • Updated LICENSE copyright to include contributors (#​1858).
  • Updated brand assets guidelines and trademark policy on the website (#​1859).
🏗️ Internal
  • Bumped typescript-eslint packages to v8.61.0 (#​1863, #​1864).
  • Cleaned up config files (#​1856).
  • Dropped rename-rule script and npm script (#​1857).
  • Updated sponsors.svg (#​1855).
  • Updated undici and cleaned up dprint config (#​1854).
  • Updated brand component and removed boilerplate on the website (#​1861).
  • Updated scaffold script, docs and baseline (#​1862).

Full Changelog: Rel1cx/eslint-react@v5.8.16...v5.8.17

v5.8.16

Compare Source

🐞 Fixes
  • Aligned dependency versions across monorepo (#​1853).

Full Changelog: Rel1cx/eslint-react@v5.8.15...v5.8.16

v5.8.15

📝 Documentation
  • Added under-construction callouts and refined kit pages on the website (#​1850, #​1851).
  • Removed AGENTS.md and CONTRIBUTING.md documents and references (#​1848).
  • Updated home and third-party plugins pages on the website.
  • Updated issue template guidance and labels.
🏗️ Internal
  • Bumped @types/* dependencies (#​1852).
  • Relaxed checklist requirements in issue templates (#​1849).

Full Changelog: Rel1cx/eslint-react@v5.8.13...v5.8.15

v5.8.13

Compare Source

📝 Documentation
  • Added GoogleCloudPlatform/gke-mcp and removed archived antfu/shiki-stream from community projects on the website.
  • Improved RSC Directives wording in documentation.
  • Removed the no-multiple-children-in-title recipe from the website.
  • Removed the kit beta banner from the website (#​1846).
🏗️ Internal
  • Added RuleListener return type to all rule create functions (#​1845).
  • Added boundary and edge case tests for react-dom rules, JSX rules, and naming-convention rules (context-name, id-name, ref-name).
  • Added identifier resolution tests for react-x/no-leaked-conditional-rendering (#​1844).
  • Bumped pnpm and updated lockfile.
  • Bumped tsdown to 0.22.2 and updated dependencies.
  • Removed redundant single-argument merge() calls in rules (#​1843).
  • Switched GitHub workflows to ubuntu-latest.
  • Updated website brand assets and icons.

Full Changelog: Rel1cx/eslint-react@v5.8.12...v5.8.13

v5.8.12

Compare Source

🪄 Improvements
  • jsx: Aligned getChildren with Babel's buildChildren and cleanJSXElementLiteralChild patterns, improving whitespace handling accuracy in react-jsx/no-useless-fragment and react-jsx/no-children-prop rules. Migrated child text cleanup to @eslint-react/jsx utilities and removed local lib.ts helpers. (#​1836)
  • jsx: Removed isPaddingWhitespace API and added whitespace boundary tests for react-jsx/no-useless-fragment and react-dom/no-dangerously-set-innerhtml-with-children rules. (#​1837)
  • jsx: Renamed cleanJSXTextValue to collapseMultilineText in the public API and updated react-jsx/no-useless-fragment to use the new name. (#​1838)
📝 Documentation
  • Website: Expanded the Brand Assets page with an icons section and formatted file names as inline code. (#​1834)
🏗️ Internal
  • Added scripts/generate-website-icons.py for automated icon generation and refined logo geometry across all website assets. (#​1833)
  • Bumped import-integrity-lint and enhanced-resolve.
  • Bumped axios to ^1.17.0 and shiki to 4.2.0.
  • Updated pnpm lockfiles for dompurify and rolldown.
  • Updated rule-level changelogs for no-useless-fragment, no-children-prop, and no-dangerously-set-innerhtml-with-children. (#​1836, #​1837, #​1838)

Full Changelog: Rel1cx/eslint-react@v5.8.11...v5.8.12

v5.8.11

Compare Source

📝 Documentation
  • Added a new Brand Assets page and updated Meta legal name (#​1832).
🏗️ Internal
  • Updated default React fallback version to 19.2.7 (#​1827).
  • Recreated logo with an open-source workflow, removing reliance on SVG assets exported by Amadine (#​1831).
  • Removed @fontsource/iosevka-aile and switched to system font fallbacks.
  • Bumped TypeScript to 6.0.3 (#​1828).
  • Patch bumped @typescript-eslint/* to 8.60.1, react / react-dom to 19.2.7, next to 16.2.7, and @types/react to 19.2.16.

Full Changelog: Rel1cx/eslint-react@v5.8.10...v5.8.11

v5.8.10

Compare Source

🐞 Fixes
  • react-dom/no-unused-class-component-members: Aligned preset details in rule documentation (#​1825).
  • react-dom/no-unsafe-iframe-sandbox, react-x/context-name, react-x/id-name, react-x/ref-name, react-x/no-unnecessary-use-prefix, react-x/no-string-style-prop: Fixed missing or incorrect presets in rule documentation (#​1826).
📝 Documentation
  • naming-convention: Expanded examples and annotated Ok cases for context-name, id-name, and ref-name rules (#​1819).
  • Refactored MyComponent examples to Button component in custom rules of props and function component definition recipes (#​1823).
  • Added azat-io eslint-config to the community presets list.
🏗️ Internal
  • jsx: Consolidated whitespace child predicates and added isEmptyStringExpression to the public API (#​1820).
  • Added preset verification to check-docs.ts (#​1822).
  • Added AGENTS.md guide for AI coding agents (#​1824).
  • Normalized local package metadata in .pkgs/*.
  • Bumped vite to ^8.0.15 and ansis to ^4.3.1 across workspace packages.
New Contributors

Full Changelog: Rel1cx/eslint-react@v5.8.9...v5.8.10

v5.8.9

Compare Source

🐞 Fixes
  • react-x/no-direct-mutation-state: Detect nested state mutations and member expressions in assignment expressions (#​1818).
📝 Documentation
  • Updated contributing guide and monorepo structure documentation.
🏗️ Internal
  • Removed .vscode directories from all examples, added missing engines.node to Preact examples, cleaned up redundant .config/*.ts from tsconfig.node.json, and updated .gitignore.
  • Cleaned up configs and docs.
  • Patch bumped eslint, tinyglobby, and tsdown across workspace packages; added @fontsource/iosevka-aile to the website; reordered CSS imports in layout.tsx.
  • Updated .sentrux baseline timestamp.

Full Changelog: Rel1cx/eslint-react@v5.8.8...v5.8.9

v5.8.8

Compare Source

📝 Documentation
  • kit: Added is.APICall callout to the Kit documentation (#​1813).
  • jsx: Updated getChildren and hasChildren API documentation to reflect empty string children behavior.
  • Reworked status emoji indicators across docs and examples (#​1816).
  • Added ℞ prefix to recipe titles and cleaned up See Also sections.
  • Removed the custom-rules-of-children recipe and cross-linked the remaining recipes.
  • Added redirects for moved rule documentation.
  • Cleaned up the "Community Maintained Presets that use ESLint React" documentation page.
🏗️ Internal
  • react-x/no-misused-capture-owner-stack: Added edge-case tests for captureOwnerStack (#​1813).
  • Updated fonts and dropped the data-theme attribute.
  • Updated theme configuration (#​1815).
  • Aligned the tsdown version in @local/configs.
  • Enabled trustPolicy: "no-downgrade" and added minimumReleaseAge: 1440 (1 day).
  • Bumped eslint to 10.4.1 across workspace packages.
  • Bumped pnpm to 11.5.0 and refreshed the lockfile.
  • Bumped fumadocs packages and tinyexec.
  • Bumped eslint-plugin-package-json to 1.2.0.
  • Updated dprint plugins and reformatted font families in example projects.
  • Updated Sentrux baseline metrics.
  • Updated .gitignore.

Full Changelog: Rel1cx/eslint-react@v5.8.7...v5.8.8

v5.8.7

Compare Source

🐞 Fixes
  • react-x/no-create-ref: Fixed a false positive where createRef calls in non-React classes were reported. The rule now only reports createRef calls inside function components or Hooks (#​1812).
  • react-x/no-unused-state: Removed the "only used in effects" detection so the rule only reports state variables that are defined but never used, reducing false positives (#​1808, #​1749).
  • jsx: Aligned children filtering and hasChildren behavior with React source, updating no-children-prop and no-useless-fragment rules accordingly (#​1805).
  • Zod compatibility: Relaxed zod peer dependency to support both v3 and v4 (#​1810).
📝 Documentation
  • react-dom, react-web-api, react-x: Enriched rule MDX examples with TypeScript snippets from react.dev (#​1809).
  • react-dom: Added more rule examples to no-dangerously-set-innerhtml, no-find-dom-node, no-hydrate, no-render, and no-render-return-value documentation (#​1804).
  • react-dom: Added legitimate flushSync use cases to no-flush-sync rule documentation (#​1803).
  • Bumped the documented ESLint minimum version to 10.3.0.
  • Clarified that the off preset disables all rules.
  • Fixed inaccurate minimum ESLint version and off preset description in README.
🏗️ Internal
  • react-x/no-misused-capture-owner-stack: Refactored the process.env.NODE_ENV detection helpers to use the shared core.isAPI utility (#​1812).
  • react-x/no-unused-state: Removed incorrect invalid test cases.
  • jsx: Added targeted test cases for empty string children behavior in no-children-prop-with-children and no-useless-fragment rules (#​1806).
  • Removed eslint-plugin-function and bumped website dependencies (#​1811).
  • Flattened scripts/lib into the scripts root.
  • Updated .textlintrc.json.
  • Updated dprint plugins and tidied scripts.
  • Removed enriching-rule-examples-from-react-dev.md from main branch.
  • Updated Sentrux baseline metrics.
  • Updated per-rule CHANGELOGs for no-useless-fragment, no-children-prop, and no-children-prop-with-children (#​1805).
  • Bumped dependencies:
    • @takumi-rs/image-response to ^1.6.0
    • dompurify to 3.4.6
    • fumadocs-mdx and updated pnpm lockfile
    • tsdown to 0.22.1
    • dprint plugins (g-plane/markup_fmt and markdown)

Full Changelog: Rel1cx/eslint-react@v5.8.6...v5.8.7

v5.8.6

Compare Source

📝 Documentation
  • Improved react-x/context-name rule description accuracy.
  • Removed broken Further Reading links across rule documentation.
  • Reordered Further Reading links by relevance in react-x, react-dom, and react-web-api rule documentation.
  • Updated rule-implementation-patterns-term-based.md documentation.
🏗️ Internal
  • ast: Replaced isLiteral with isStringLiteral in Check utilities (#​1798).
  • Bumped dependencies across workspace packages:
    • @typescript-eslint to ^8.60.0
    • eslint-plugin-jsdoc to 63.0.0
    • fumadocs patch versions
    • nx to ^22.7.4
    • pnpm and lockfile updates

Full Changelog: Rel1cx/eslint-react@v5.8.5...v5.8.6

v5.8.5

Compare Source

📝 Documentation
  • Added rule implementation patterns guide (docs/rule-implementation-patterns.md) and term-based rule patterns guide (docs/rule-implementation-patterns-term-based.md).
  • Lowered minimum TypeScript version requirement from 5.1.0 to 5.0.0 across README and documentation.
  • Fixed textlint war-metaphor warnings and refined .textlintrc.json patterns.
🏗️ Internal
  • Adjusted formatting across configuration and script files (#​1795).
  • Fixed a typo in the CI test workflow step.
  • Added regression tests for oxc issues compatibility verification (#​1796).
  • Bumped dependencies across workspace packages:
    • @effect/language-service to ^0.86.2
    • @takumi-rs/image-response to ^1.3.0
    • @tsconfig/vite-react to ^8.0.6
    • @types/node to ^25.9.1
    • @types/react to ^19.2.15
    • eslint-plugin-package-json to ^1.1.0
    • fumadocs-core to ^16.9.0
    • fumadocs-mdx to ^15.0.7
    • fumadocs-ui to ^16.9.0
    • lru-cache to 11.5.0
    • nx to ^22.7.3
    • postcss to ^8.5.15
    • vite to ^8.0.14
    • vitest to ^4.1.7
    • pnpm to 11.2.1

Full Changelog: Rel1cx/eslint-react@v5.8.4...v5.8.5

v5.8.4

Compare Source

📝 Documentation
  • Restructured the FAQ page from an accordion layout to standard headings for better SEO, accessibility, and direct anchor linking.
  • Replaced the homepage Hint popover with a direct link to the FAQ anchor explaining the project's human/LLM collaboration policy.
  • Added a new "What does 90% human-written mean?" section to the FAQ.
  • Updated documentation for isClassComponent and JsxConfig.
  • Removed outdated documentation files.
🏗️ Internal
  • core: Simplified isClassComponent by removing the context parameter and replacing isClassComponentLoose with the simplified function.
  • eslint-plugin-react-x: Removed unnecessary optional chaining across multiple rules (immutability, no-unused-state, purity, refs, set-state-in-effect, static-components, use-memo, etc.) and expanded test coverage for edge cases (#​1792).
  • Added automated GitHub Release workflow and fixed actions/setup-node cache parameter error.
  • Added null-safety boundary tests for rules affected by PR #​1792 (#​1794).
  • Bumped dependencies across workspace packages: @takumi-rs/image-response to 1.2.1, fumadocs-mdx to 15.0.6, import-integrity-lint to 1.1.1, preact to 10.29.2, tsx to 4.22.1, @typescript-eslint to ^8.59.4, @types/node to ^25.9.0, dompurify to ^3.4.5, pnpm to 11.1.3, textlint to 15.7.1, and dprint TypeScript plugin to 0.96.1.
  • Cleaned up stray empty string in tsl.config.ts.
  • Cleaned up type and lint errors across the workspace (#​1793).
  • Downgraded TypeScript override in pnpm-workspace.yaml from ^6.0.3 to 5.9.3.
  • Fixed zizmor security audit findings in release workflow and moved ignore comments inline, removing .github/zizmor.yml.
  • Removed scripts/verify-lockfile.ts, scripts/verify-devtools.ts, and all references to them.
  • Reordered handler functions in react-jsx/no-children-prop (no logic change).
  • Updated baseline metrics and compacted tsconfig.

Full Changelog: Rel1cx/eslint-react@v5.8.3...v5.8.4

v5.8.3

Compare Source

🐞 Fixes
  • react-dom/no-unknown-property: Added React 19 precedence and blocking attributes to the known property allowlist with version-gated tag checks, preventing false positives on <style>, <link>, and <script> elements (#​1789, #​1790).

Full Changelog: Rel1cx/eslint-react@v5.8.2...v5.8.3

v5.8.2

Compare Source

📝 Documentation
  • Added React 19 use hook guidance to error-boundaries, rules-of-hooks, and no-use-context docs.
  • Added migration examples and corrected rule descriptions for class-component-related rules.
  • Improved eslint-plugin-react-x rule documentation with scenario-based examples, Troubleshooting sections, and Further Reading links across 48 rule docs (#​1786).
  • Removed inline ESLint error annotations (^^^) from documentation examples for better readability (#​1785).
  • Updated migration guide for eslint-plugin-react with additional details.
🏗️ Internal
  • Set up textlint and fixed inappropriate wording in documentation (#​1787).
  • Bumped dependencies across workspace packages (#​1788).
  • Updated pnpm-lock.yaml: bumped nx to 22.7.2 and brace-expansion to 5.0.5.

Full Changelog: Rel1cx/eslint-react@v5.8.1...v5.8.2

v5.8.1

Compare Source

🏗️ Internal
  • Simplified isJsxLike in core package and added behavior boundary tests (#​1869).
  • Aligned code style in jsx package with core package (#​1870).
  • Updated @types/node to ^25.9.3.

Full Changelog: Rel1cx/eslint-react@v5.8.18...v5.8.19

v5.8.0

Compare Source

🪄 Improvements
  • react-jsx/no-children-prop, react-jsx/no-children-prop-with-children: Added support for createElement calls in addition to JSX elements (#​1780).
📝 Documentation
  • Added eslint-plugin-perfectionist to the third-party plugins documentation page (#​1778).
🏗️ Internal
  • Bumped import-integrity-lint to 1.0.1.
  • Fixed multiple versions of typescript-eslint and import-integrity-lint in the workspace (#​1776).
  • Increased pnpm minimumReleaseAge to 3 days and updated lockfile (#​1779).
  • Removed .repos directory references from config files (#​1773).
  • Removed obsolete maintenance scripts (create-spec-alignment-issues.sh, migrate-labels.sh) (#​1777).
  • Replaced eslint-plugin-fast-import with import-integrity-lint (#​1774).
  • Simplified the publish CI workflow by skipping install scripts and removing the lint step (#​1775).

Full Changelog: Rel1cx/eslint-react@v5.7.10...v5.8.0

v5.7.10

🐞 Fixes
  • react-x/no-leaked-conditional-rendering, react-x/set-state-in-effect: Added cycle detection to prevent stack overflow in recursive function analysis (#​1769).
📝 Documentation
  • Added third-party-plugins.mdx documentation page.
  • Added spec diff and compiler test fixtures for react-x/globals rule.
  • Updated ESLint Stylistic link to rules anchor.
  • Updated community projects (added Obsidian Copilot).
  • Added redirects and simplified removed docs page.
🏗️ Internal
  • react-x/error-boundaries: Simplified getEnclosingTryBlock implementation.
  • Added minimumReleaseAge and minimumReleaseAgeExclude entries to pnpm-workspace.yaml.
  • Bumped fumadocs-core and fumadocs-ui to 16.8.11.
  • Pinned pnpm to v11 in CI and adjusted install hooks.
  • Fixed the git diff noise issue caused by a large number of external repository files introduced by "Vendored facebook/react as git subtree under .repos" in v5.7.9 (re-released as v5.7.10, closes #​1772).

Full Changelog: Rel1cx/eslint-react@v5.7.8...v5.7.10

v5.7.8

Compare Source

🐞 Fixes
  • react-x/no-missing-key: Fixed the rule not detecting ConditionalExpression/LogicalExpression returned from block-bodied .map/Array.from callbacks. The rule now reports both branches when both lack a key, instead of only the first (#​1767, #​1766).
📝 Documentation
  • Added [NEEDS VERIFICATION] markers to spec diffs for React Compiler aligned rules.
  • Added Issue Labels Design Doc and migration scripts.
  • Added a Hint component to the website and used it on the home page.
🏗️ Internal
  • Bumped @effect/language-service to 0.86.0.
  • Bumped dompurify to 3.4.3.
  • Bumped fumadocs-mdx to 15.0.4 and related dependencies.
  • Bumped pnpm from 11.1.0 to 11.1.1.
  • Enabled caching for Nx targets.
  • Removed experimental.useFlatConfig from Zed settings.
  • Removed two dprint plugins from dprint.json.
  • Updated Sentrux baseline metrics.

v5.7.7

Compare Source

🐞 Fixes
  • Fixed the rule documentation URLs returned by eslint-plugin-react-jsx and eslint-plugin-react-rsc to include the jsx- / rsc- prefixes so editor Open documentation links resolve correctly (#​1757) — by @​kasmacioma.
🏗️ Internal
  • Bumped @types/node from 25.6.2 to 25.7.0.
  • Bumped pnpm from 11.0.9 to 11.1.0.
  • Bumped mermaid from 11.14.0 to 11.15.0 and pinned it via pnpm-workspace.yaml overrides, dropping the transitive chevrotain@12.0.0 chain in favor of @chevrotain/types@11.1.2.
  • Enabled trustPolicy: "no-downgrade" in pnpm-workspace.yaml.

v5.7.6

Compare Source

📝 Documentation
  • Migrated the website to the fumadocs solar theme; removed the WIP Frutiger Aero variant and consolidated theme overrides.
  • Each rule documentation page now lists prior versions in a Versions accordion sourced from per-rule CHANGELOG.md.
  • Added the mikoto project to the community showcase.
  • Updated README badges to use @eslint-react/core.
🏗️ Internal
  • Bumped @typescript-eslint packages from 8.59.2 to 8.59.3.
  • Bumped fumadocs-core and fumadocs-ui from 16.8.7 to 16.8.10.
  • Bumped fumadocs-mdx from 14.3.2 to 15.0.3.
  • Bumped tailwindcss and @tailwindcss/postcss from 4.2.4 to 4.3.0.
  • Bumped tailwind-merge from 3.5.0 to 3.6.0.
  • Bumped vitest from 4.1.5 to 4.1.6.
  • Bumped ansis from 4.2.0 to 4.3.0.
  • Bumped semver from 7.7.4 to 7.8.0.
  • Bumped pnpm from 11.0.8 to 11.0.9.
  • Upgraded dprint biome plugin from 0.12.10 to 0.12.11.
  • Reverted nx from a 23.0.0 canary back to 22.7.1 stable.
  • Renamed the verify:rule-docs script to check:docs.
  • Removed unused assets/logo.html and assets/react-icon.html (#​1755, #​1756).
  • Updated Sentrux baseline metrics.

Full Changelog: Rel1cx/eslint-react@v5.7.5...v5.7.6

v5.7.5

Compare Source

🏗️ Internal
  • Bumped @eslint/compat from 2.0.5 to 2.1.0.
  • Bumped @types/node from 25.6.0 to 25.6.2.
  • Bumped next from 16.2.5 to 16.2.6.
  • Bumped publint from 0.3.19 to 0.3.20.
  • Bumped tsdown from 0.21.10 to 0.22.0.
  • Bumped pnpm from 10.33.4 to 11.0.8.
  • Adjusted website styles.

Full Changelog: Rel1cx/eslint-react@v5.7.4...v5.7.5

v5.7.4

Compare Source

🏗️ Internal
  • Bumped @typescript-eslint packages from 8.59.1 to 8.59.2.
  • Bumped react and react-dom from 19.2.5 to 19.2.6.
  • Bumped next from 16.2.4 to 16.2.5.
  • Bumped nx from 22.7.1 to 23.0.0-canary.20260506-b594537.
  • Bumped fumadocs-core and fumadocs-ui from 16.8.5 to 16.8.7.
  • Bumped postcss from 8.5.13 to 8.5.14.
  • Bumped publint from 0.3.18 to 0.3.19.
  • Bumped pnpm from 10.33.2 to 10.33.4.

Full Changelog: Rel1cx/eslint-react@v5.7.3...v5.7.4

v5.7.3

Compare Source

🐞 Fixes
  • react-x/immutability: Exempted ref mutations via a naming heuristic — any object whose identifier is ref or ends with Ref is treated as a mutable ref and skipped from immutability checks. This fixes false positives when mutating RefObject<T> values received as props (#​1752, #​1751).
  • react-x/immutability: Added noRefLikeStateName diagnostic to prevent state variables from being named ref or ending with Ref, which would otherwise bypass the ref exemption heuristic (#​1752).
📝 Documentation
  • Fixed the full rule name in react-jsx/no-key-after-spread documentation (jsx/no-key-after-spreadjsx-no-key-after-spread) (#​1750).

Full Changelog: Rel1cx/eslint-react@v5.7.2...v5.7.3

v5.7.2

Compare Source

🐞 Fixes
  • react-x/no-unused-state: Removed the rule from the recommended preset for now (#​1747, #​1748).
📝 Documentation
  • Added individual CHANGELOG.md files for all rules (#​1746).
  • Added rule changelog links to all rule documentation pages.
  • Updated AST Explorer links in docs.
  • Various documentation cleanups.
🏗️ Internal
  • Updated baseline metrics.
  • Updated roadmap milestone labels.
  • Upgraded dprint biome plugin from 0.12.9 to 0.12.10.
  • Cleaned up snapshot generation script and snapshot file.

Full Changelog: Rel1cx/eslint-react@v5.7.1...v5.7.2

v5.7.1

Compare Source

🐞 Fixes
  • react-x/no-leaked-conditional-rendering, react-x/set-state-in-effect: Added cycle detection to prevent stack overflow in recursive function analysis (#​1769).
📝 Documentation
  • Added third-party-plugins.mdx documentation page.
  • Added spec diff and compiler test fixtures for react-x/globals rule.
  • Updated ESLint Stylistic link to rules anchor.
  • Updated community projects (added Obsidian Copilot).
  • Added redirects and simplified removed docs page.
🏗️ Internal
  • react-x/error-boundaries: Simplified getEnclosingTryBlock implementation.
  • Added minimumReleaseAge and minimumReleaseAgeExclude entries to pnpm-workspace.yaml.
  • Bumped fumadocs-core and fumadocs-ui to 16.8.11.
  • Pinned pnpm to v11 in CI and adjusted install hooks.
  • Fixed the git diff noise issue caused by a large number of external repository files introduced by "Vendored facebook/react as git subtree under .repos" in v5.7.9 (re-released as v5.7.10, closes #​1772).

Full Changelog: Rel1cx/eslint-react@v5.7.8...v5.7.10

v5.7.0

Compare Source

✨ New
  • react-x/no-unused-state: The rule re-added as a no-op in v5.6.6 is now fully implemented. It detects state variables declared via useState (or similar state hooks) that are defined but never read, or only read inside an effect or effect dependency array (#​1741).
📝 Documentation
  • Updated minimum version requirements in README and docs (ESLint 10.2.1, TypeScript 6.0.3, pnpm 10.33.2).
  • Fixed no-unused-state migration docs and removed rule reasons.

LTS Maintenance Mode: Starting with v5.7.0, the project has entered a Long-Term Support (LTS) maintenance mode. New feature development is temporarily on hold while the project prioritizes bug fixes, rule improvements, and documentation updates. See #​1740 for details.

Full Changelog: Rel1cx/eslint-react@v5.6.6...v5.7.0

v5.6.6

Compare Source

✨ New
  • react-x/no-unused-state: Re-add the react-x/no-unused-state rule that was removed in 5.0.0 as a no-op rule for detecting unused state in function components in a future release.

Full Changelog: Rel1cx/eslint-react@v5.6.4...v5.6.6

v5.6.4

Compare Source

✨ New
  • react-x/no-unused-class-component-members: Now flags shouldComponentUpdate methods defined in classes extending PureComponent as unused, since PureComponent implements its own shouldComponentUpdate with shallow prop and state comparison (#​1738).
📝 Documentation
  • Added jsx preset documentation to multiple rule docs.
  • Removed empty Presets sections from rule documentation.
🏗️ Internal
  • ast: Added an optional stop predicate to findParent utility for more control over ancestor traversal (#​1736).
  • Replaced skott with sentrux for architecture linting.
  • Updated sentrux rules and baseline metrics.

Full Changelog: Rel1cx/eslint-react@v5.6.3-beta.0...v5.6.4

v5.6.2

Compare Source

🐞 Fixes
  • react-x/use-memo: Fixed false positives in useMemo dependency analysis by using reference/definition analysis (#​1735).
📝 Documentation
  • Added anchor links to rule names in recipe docs.
  • Added migration overview page with sidebar entry.
  • Added naming-convention preset configuration documentation.
  • Simplified conditional formatting in custom-rules-of-state recipe.
  • Updated migration guide and added noDirectAccessProps custom rule example.
🏗️ Internal
  • Removed unused diagram components and imports.
  • Reordered redirects with comments for clarity.
  • Bumped lucide-react from 1.12.0 to 1.14.0.
  • Updated baseline-browser-mapping to 2.10.24.

Full Changelog: Rel1cx/eslint-react@v5.6.0...v5.6.2

v5.6.0

Compare Source

This release consolidates all changes since v4.2.1.

💥 Breaking Changes
Core API Refactoring (@​eslint-react/core)
  • Performed a large-scale flattening refactor of the core package's internal structure, merging modules previously scattered across subdirectories like component/, function/, hook/, semantic/, and api/ into the root directory.
  • Renamed several core APIs:
    • isReactAPIisAPI
    • isReactAPICallisAPICall
    • isInitializedFromReactisAPIFromReact
    • isInitializedFromReactNativeisAPIFromReactNative
    • ComponentDetectionHintFunctionComponentDetectionHint
    • ComponentFlagFunctionComponentFlag
    • getComponentCollectorgetFunctionComponentCollector
    • getComponentCollectorLegacygetClassComponentCollector
  • Migrated type utilities (type-is, type-name, type-variant) from eslint-plugin-react-x to @eslint-react/core.
  • Updated the Toolkit interface in @eslint-react/kit to reflect the naming changes above.
Kit API Simplification (@​eslint-react/kit)
  • Simplified RuleToolkit.is API: Removed pre-built identifier predicates (memo, lazy, forwardRef, etc.) from RuleToolkit.is. Only *Call variants and API/APICall factories are now available.
  • Renamed initialization checkers:
    • initializedFromReactAPIFromReact
    • initializedFromReactNativeAPIFromReactNative
  • Code using is.memo(node), is.lazy(node), etc. must migrate to is.memoCall(node) or use is.API("memo")(node).
Type Alias Removal
  • Removed deprecated RuleDefinition type alias: The RuleDefinition type has been completely removed from @eslint-react/kit. Use RuleFunction instead.
Removed Rules

The following rules have been removed from eslint-plugin-react-x, eslint-plugin-react-dom, and eslint-plugin-react-debug:

Rule Package Notes
component-hook-factories react-x Removed from all configs
no-redundant-should-component-update react-x Removed from all configs
no-unnecessary-use-callback react-x Removed from all configs
no-unnecessary-use-memo react-x Removed from all configs
no-unused-state react-x Removed from all configs
prefer-destructuring-assignment react-x Removed from all configs
prefer-namespace-import react-x Removed from all configs
prefer-namespace-import react-dom Removed from all configs
debug/class-component react-debug Removed from all configs
Class Component Support Deprecation
  • All Class Component-related detection functions in the core package (such as isClassComponent, isPureComponent, and various lifecycle checkers) have been marked as @deprecated, retaining only minimal compatibility support for existing rules.
  • Rules in eslint-plugin-react-web-api, including no-leaked-event-listener, no-leaked-interval, and no-leaked-timeout, have removed detection for Class Component lifecycles (componentDidMount / componentWillUnmount) and now only report on Hook Effects (useEffect, etc.).
✨ New
New Rules
  • react-x/globals: New rule for restricting usage of global variables in React components.
  • react-x/static-components: New rule for enforcing static component definitions. Enhanced with variable reference tracking and a createdHere diagnostic to reduce false positives.
  • react-web-api/no-leaked-fetch: New rule that detects leaked fetch calls in effects, closing #​1714.
Kit Enhancements
  • Added ast.findParent utility to @eslint-react/kit for traversing AST ancestors.
  • Added support for Universally Unique Lexicographically Sortable Identifiers (ULID) for anony

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Asia/Tokyo)

  • Branch creation
    • "before 9am on Monday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@NexPB NexPB added the dependencies Pull requests that update a dependency file label May 3, 2026
@NexPB NexPB force-pushed the renovate/eslint-react-eslint-plugin-5.x branch 2 times, most recently from 478cdd8 to ceb9074 Compare June 22, 2026 00:19
@NexPB NexPB force-pushed the renovate/eslint-react-eslint-plugin-5.x branch from ceb9074 to 887ac7d Compare July 4, 2026 11:24
@NexPB NexPB force-pushed the renovate/eslint-react-eslint-plugin-5.x branch from 887ac7d to 073f6ed Compare July 4, 2026 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant