Skip to content

feat(eslint-config): use @eslintplugin/* packages#1649

Open
gameroman wants to merge 1 commit into
cedarjs:mainfrom
gameroman:eslintplugin
Open

feat(eslint-config): use @eslintplugin/* packages#1649
gameroman wants to merge 1 commit into
cedarjs:mainfrom
gameroman:eslintplugin

Conversation

@gameroman
Copy link
Copy Markdown
Contributor

@gameroman gameroman commented Apr 20, 2026

Switching to more modern, smaller, alternative eslint plugins.
Also see https://github.com/eslint-plugin/eslint-plugins/blob/main/README.md

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 20, 2026

👷 Deploy request for cedarjs pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit bddc991

@nx-cloud
Copy link
Copy Markdown

nx-cloud Bot commented Apr 20, 2026

🤖 Nx Cloud AI Fix

Ensure the fix-ci command is configured to always run in your CI pipeline to get automatic fixes in future runs. For more information, please see https://nx.dev/ci/features/self-healing-ci


View your CI Pipeline Execution ↗ for commit bddc991

Command Status Duration Result
nx run-many -t build:pack --exclude create-ceda... ✅ Succeeded 1s View ↗
nx run-many -t build ✅ Succeeded 4m 53s View ↗
nx run-many -t test --minWorkers=1 --maxWorkers=4 ✅ Succeeded 4m 14s View ↗
nx run-many -t test:types ✅ Succeeded 10s View ↗

☁️ Nx Cloud last updated this comment at 2026-05-06 20:00:57 UTC

@gameroman gameroman changed the title feat: use @eslintplugin/* packages feat(eslint-plugin): use @eslintplugin/* packages Apr 20, 2026
@github-actions github-actions Bot added this to the next-release milestone Apr 20, 2026
@gameroman gameroman changed the title feat(eslint-plugin): use @eslintplugin/* packages feat(eslint-config): use @eslintplugin/* packages Apr 20, 2026
@gameroman gameroman marked this pull request as ready for review April 22, 2026 13:25
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 22, 2026

Greptile Summary

This PR swaps eslint-plugin-react@7.37.5 and eslint-plugin-jsx-a11y@6.10.2 for pre-alpha @eslintplugin-scoped replacements (0.0.1 and 0.0.3), shedding a large number of polyfill transitive dependencies in the process. The docs file at docs/implementation-docs/2026-03-26-cedarjs-project-overview.md remains factually correct after this change.

  • The existing config files (shared.js, index.js) extend plugin:react/recommended and plugin:jsx-a11y/recommended and reference the rule jsx-a11y/aria-role by name; if either replacement package does not export these config presets or rules, every downstream Cedar project's ESLint run will hard-fail.
  • @eslintplugin/resolve@0.0.0 replaces resolve@^2.0.0-next.5 as a transitive dependency; this 0.0.0 package is also unverified in terms of correctness.

Confidence Score: 3/5

Merging risks breaking the ESLint setup for all downstream Cedar projects if the replacement packages do not implement the recommended configs and rule names that the existing config files depend on.

The existing ESLint config actively calls plugin:react/recommended, plugin:jsx-a11y/recommended, and the rule jsx-a11y/aria-role. Neither replacement package has published test evidence or community adoption confirming these APIs exist, and at 0.0.x versions they are explicitly pre-alpha. A failure here would break linting for every project consuming @cedarjs/eslint-config.

packages/eslint-config/package.json and the corresponding shared.js/index.js config consumers need verification that plugin:react/recommended, plugin:jsx-a11y/recommended, and the jsx-a11y/aria-role rule all resolve correctly with the replacement packages installed.

Important Files Changed

Filename Overview
package.json Replaces root-level eslint-plugin-react with the @eslintplugin scoped alias at a pre-alpha 0.0.1 version
packages/eslint-config/package.json Swaps both eslint-plugin-react and eslint-plugin-jsx-a11y for @eslintplugin-scoped pre-alpha replacements; API compatibility with existing plugin:react/recommended and plugin:jsx-a11y/recommended config extends is unverified
yarn.lock Lock file updated to reflect new @eslintplugin packages and removed transitive polyfill deps; mechanically consistent with the package.json changes

Reviews (4): Last reviewed commit: "feat: use `@eslintplugin/*` packages" | Re-trigger Greptile

Comment thread packages/eslint-config/package.json
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 6, 2026

Want your agent to iterate on Greptile's feedback? Try greploops.

Comment on lines +62 to +64
"eslint-plugin-jsx-a11y": "npm:@eslintplugin/eslint-plugin-jsx-a11y@0.0.3",
"eslint-plugin-prettier": "5.5.5",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react": "npm:@eslintplugin/eslint-plugin-react@0.0.1",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Plugin API compatibility not verified

The existing ESLint config files make specific API calls that must be present in the replacement packages:

  • shared.js extends plugin:react/recommended — this requires @eslintplugin/eslint-plugin-react@0.0.1 to export a recommended config object under its configs property.
  • index.js extends plugin:jsx-a11y/recommended (when config.web.a11y is enabled) and directly references the rule name jsx-a11y/aria-role.

If either 0.0.x package does not export these config presets or rule names, every downstream Cedar project that runs ESLint will get a hard failure (Definition for rule 'jsx-a11y/aria-role' was not found or Cannot read properties of undefined (reading 'recommended')). The PR doesn't include any test output or CI evidence confirming that eslint --print-config resolves cleanly with these replacements in place.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant