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.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 verify-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 term-based-rule-patterns.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/term-based-rule-patterns.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 verify: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 anonymous rules (later migrated to node:crypto randomBytes).
Custom Rule Examples
  • Added Error Boundaries custom rule example.
  • Added boolean prop naming custom rule and documentation.
🐞 Fixes
Rule Fixes
  • react-x/error-boundaries: Fixed false positives on non-React code and resolved catch block over-reporting.
  • react-x/set-state-in-effect: Improved validation accuracy.
  • react-x/use-memo: Added reassignment check, aligned message IDs, and added support for for-of/for-in loops.
Config Fixes
  • Added missing rules to presets, cleaned up experimental disables, and updated documentation.
  • Extracted naming-convention preset and fixed config gaps.
Type Expression Fixes
  • Added missing Extract.unwrap for type expressions and chain expressions.
  • Unwrapped type expressions before inspecting AST node types.
🪄 Improvements
API & Refactoring
  • ast: Normalized API naming conventions and rewrote Check helpers.
  • ast: Renamed isJSXLikeisJSXElementOrFragment and isMethodOrPropertyisPropertyOrMethod.
  • Extracted ESLint types and utilities into the @eslint-react/eslint package.
  • Extracted @eslint-react/jsx from @eslint-react/core into a standalone utility package for static analysis of JSX patterns.
  • Migrated to @ and # path aliases and replaced tsx with vite-node.
  • Moved pattern utilities to rule directories and extracted rule helpers into co-located lib.ts modules across multiple plugins.
  • Reorganized imports across the codebase.
  • Replaced RuleConfig with Linter.RulesRecord from ESLint.
  • Restructured monorepo packages directory layout.
  • Unified import style across packages and plugins.
Core & AST Improvements
  • ast: Updated FunctionInitPath types to support method definitions and property arrow functions in class expressions.
  • ast/isNodeEqual: Fixed JSXNamespacedName comparison logic.
Rule Improvements
  • react-x/static-components: Registered in all, x, and disable-experimental configs.
  • react-rsc/function-definition: Added directive position and quote checks.
  • Extracted HOC detection helpers to dedicated lib.ts files.
Website & Documentation Improvements
  • Added LLM routes (/llms.txt, /llms-full.txt, /llms.mdx).
  • Added inline TOCs and improved navigation.
  • Enabled twoslash type-checking for code examples.
  • Improved accessibility and unified layout configuration.
Testing
  • Expanded compiler fixture coverage across 9 rules.
  • Added comprehensive unit tests for component/hook detection utilities.
Dependencies
  • Bumped TypeScript to 6.0.3.
  • Bumped Vite to ^8.0.7 in examples.
  • Bumped @typescript-eslint packages to 8.59.1.
  • Bumped tsl-dx, tsdown, fumadocs, postcss, lucide-react, eslint-plugin-package-json, and other dependencies.
📝 Documentation
  • Added custom rule recipes for React Children API, Context API, props, state, boolean prop naming, and error boundaries.
  • Added migration examples (no-set-state, no-string-refs).
  • Added IMPL–SPEC diff documents for 5 React Compiler aligned rules.
  • Added spec documentation for validation rules.
  • Added rule feature docs.
  • Added table of contents to multiple documentation files.
  • Updated migrating-from-eslint-plugin-react guide.
  • Updated local packages docs.
  • Updated roadmap and contributing architecture diagram.
🏗️ Internal
  • Added build:plugins script and updated build path patterns.
  • Added publishConfig.access to packages and marked @local/eff as private.
  • Added documentation comments to rule scripts.
  • Added typedoc docs and engines field.
  • Extracted shared tsdown config.
  • Fixed high-priority build, lockfile, script and doc inconsistencies.
  • Removed "Naming Pattern Quick Reference" from AST abbreviations doc.
  • Removed major-release-checklist.md.
  • Removed scripts/prepare-release.ts and the accompanying prepare:release npm script.
  • Removed barrel exports for utils.
  • Removed unused dependencies and added missing devDependencies.

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

v4.2.3

Compare Source

✨ New
  • jsx: add jsx-no-leaked-dollar rule, add suggest fix to jsx-no-leaked-semicolon rule (#​1688) (b86bdd6da)
  • jsx: add jsx-no-leaked-semicolon rule, closes #​1685 (#​1686) (fbb495000)
📝 Documentation
  • update recipe section structure (Code→Rule, Usage→Config) (8cade3008)
  • update custom rule examples code style (#​1684) (dc9d05c33)
  • update recipe titles to Title Case (6a2d941b6)
  • improve recipes overview (8278f45c9)

Full Changelog: Rel1cx/eslint-react@v4.2.2...v4.2.3

v4.2.1

Compare Source

This release consolidates all changes since v3.0.0.

💥 Breaking Changes

New eslint-plugin-react-jsx package

A new dedicated plugin for React Flavored JSX rules has been introduced. Several rules have been migrated from eslint-plugin-react-x and eslint-plugin-react-dom to this new package:

Old Rule (react-x/) New Rule (react-jsx/) Change
jsx-key-before-spread no-key-after-spread relocated, renamed
jsx-no-comment-textnodes no-comment-textnodes relocated, renamed
no-children-prop no-children-prop relocated
no-useless-fragment no-useless-fragment relocated
Old Rule (react-dom/) New Rule (react-jsx/) Change
no-namespace no-namespace relocated

Rule prefix changes in @eslint-react/eslint-plugin

Rules from individual plugins now use a flattened naming convention when accessed through the unified @eslint-react/eslint-plugin package:

  • @eslint-react/<rule> -> @eslint-react/<rule> (no changes)
  • @eslint-react-jsx-<rule> -> @eslint-react-jsx-<rule> (no changes)
  • @eslint-react/rsc/<rule> -> @eslint-react/rsc-<rule>
  • @eslint-react/dom/<rule> -> @eslint-react/dom-<rule>
  • @eslint-react/web-api/<rule> -> @eslint-react/web-api-<rule>
  • @eslint-react/naming-convention/<rule> -> @eslint-react/naming-convention-<rule>
  • @eslint-react/debug/<rule> -> @eslint-react/debug-<rule>

Removed Rules from eslint-plugin-react-x

The following rules have been removed from eslint-plugin-react-x:

Rule Replaced by
react-x/jsx-dollar @eslint-react/kit (custom rule)
react-x/jsx-shorthand-boolean @eslint-react/kit (custom rule)
react-x/jsx-shorthand-fragment [@eslint-react/kit](https:

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 becomes conflicted, 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 from 1b1c0ff to 478cdd8 Compare June 20, 2026 09:00
@NexPB NexPB force-pushed the renovate/eslint-react-eslint-plugin-5.x branch from 478cdd8 to ceb9074 Compare June 22, 2026 00:19
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