eslint-react icon indicating copy to clipboard operation
eslint-react copied to clipboard

[Roadmap] Milestone 2.0

Open Rel1cx opened this issue 1 year ago • 4 comments

Milestone 2.0

System Requirements

Minimum supported versions:

  • [x] Node.js: 20.19.0
  • [x] ESLint: 9.24.0
  • [x] TypeScript: 4.9.5

Package Distribution

  • [x] Publish ESM-Only packages

Plugins (with ecological niche explanation)

  • [x] eslint-plugin-react-x - Core rules (renderer-agnostic, compatible with x-platform)
  • [x] eslint-plugin-react-dom - DOM Specific rules for React DOM
  • [x] eslint-plugin-react-web-api - Rules for interacting with Web APIs
  • [x] eslint-plugin-react-hooks-extra - Extra rules for eslint-plugin-react-hooks
  • [x] eslint-plugin-react-naming-convention - Naming convention rules designed for React projects
  • ... (Free to combine with other plugins from the community)

Add codemod feature to rules that can be transformed (using auto-fix) safely

  • [x] no-component-did-update
  • [x] no-component-will-receive-props
  • [x] no-component-will-update
  • [x] no-context-provider
  • [x] no-forward-ref
  • [x] #1044

Add auto-fix feature to rules that can be auto-fixed safely

  • [ ] #900
  • [x] #899
  • [x] #898
  • [x] prefer-react-namespace-import
  • [x] prefer-shorthand-boolean

Add suggestion-fix feature to rules that can be fixed interactively

  • [ ] no-prop-types
  • [ ] no-redundant-should-component-update
  • [ ] no-unused-class-component-members
  • [ ] no-unused-state
  • [ ] dom/no-missing-button-type
  • [ ] dom/no-missing-iframe-sandbox
  • [ ] dom/no-unsafe-iframe-sandbox
  • [ ] dom/no-unsafe-target-blank

New Rules

  • [x] jsx-no-comment-textnodes - Disallow text nodes with comments in JSX (Replaces no-comment-textnodes)
  • [x] jsx-shorthand-boolean - Enforces shorthand boolean attributes in JSX (Replaces prefer-shorthand-boolean)
  • [x] jsx-shorthand-fragment - Enforces shorthand fragment syntax in JSX (Replaces prefer-shorthand-fragment)
  • [x] no-context-provider - Replaces usages of <Context.Provider> with <Context> (React 19)
  • [x] no-forward-ref - Replaces usages of forwardRef with passing ref as a prop (React 19)
  • [x] no-use-context - Replaces usages of useContext with use (React 19)
  • [x] #972
  • [x] #973
  • [ ] #974
  • [x] #976
  • [ ] #977
  • [x] react-dom/prefer-namespace-import - Enforces the use of namespace imports for ReactDOM
  • [x] naming-convention/context-name - Enforces context name to be a valid component name with the suffix Context (React 19)
  • [ ] #901
  • [ ] hooks-extra/no-circular-effect - Detect circular set (and dispatch) functions and deps patterns in useEffect like Hooks (Rel1cx/eslint-react#755)

Removed Rules

  • [x] no-comment-textnodes - Replaced by jsx-no-comment-textnodes
  • [x] prefer-react-namespace-import - Replaced by prefer-namespace-import
  • [x] prefer-shorthand-boolean - Replaced by jsx-shorthand-boolean
  • [x] prefer-shorthand-fragment - Replaced by jsx-shorthand-fragment

Versioning Policy

Rel1cx avatar Jan 29 '24 07:01 Rel1cx

  • eslint-plugin-react-dom-a11y

Exciting! Maybe this could be considered a replacement for eslint-plugin-jsx-a11y? Would be great to be able to move off of this plugin too.

If this fits the goals of the ESLint React project, maybe it would also be good to consider additional rules from the eslint-plugin-jsx-a11y rules

karlhorky avatar Sep 10 '24 17:09 karlhorky

  • eslint-plugin-react-dom-a11y

Exciting! Maybe this could be considered a replacement for eslint-plugin-jsx-a11y? Would be great to be able to move off of this plugin too.

If this fits the goals of the ESLint React project, maybe it would also be good to consider additional rules from the eslint-plugin-jsx-a11y rules

The e18e community has launched a new plugin eslint-plugin-jsx-a11y-x, which seems to meet the need for a replacement for eslint-plugin-jsx-a11y. As for eslint-react, if needed, we may consider continuing to migrate Svelte's Accessibility warnings as an alternative, but the priority will be lower.

Rel1cx avatar Oct 25 '24 14:10 Rel1cx

Hi! Recently, I've been migrating from eslint-plugin-react to @eslint-react/eslint-plugin and find its rules very useful. However, I've noticed that that they don't seem to support fixable. Are there any plans to add fixable support in future updates?

rikisamurai avatar Oct 29 '24 13:10 rikisamurai

Hi! Recently, I've been migrating from eslint-plugin-react to @eslint-react/eslint-plugin and find its rules very useful. However, I've noticed that that they don't seem to support fixable. Are there any plans to add fixable support in future updates?

Thank you for trying out this new ESLint plugin. In fact, we are in the process of adding fixable support, so please follow the updates in the recent versions.

Rel1cx avatar Nov 01 '24 05:11 Rel1cx