Skip to content

chore(quantic): migrate to ESLint 9 flat config KIT-282 - #8770

Closed
alexprudhomme wants to merge 1 commit into
mainfrom
KIT-282-renovate-8459-quantic-eslint9
Closed

alexprudhomme wants to merge 1 commit into
mainfrom
KIT-282-renovate-8459-quantic-eslint9

Conversation

@alexprudhomme

Copy link
Copy Markdown
Contributor

Jira

https://coveord.atlassian.net/browse/KIT-282

Motivation

Renovate PR #8459 (Quantic-only majors) fails because Quantic still uses .eslintrc.json, which ESLint 9+ no longer reads. ESLint 10 can't be used yet: the LWC lint stack (@salesforce/eslint-config-lwc 4.1.2, @lwc/eslint-plugin-lwc, @salesforce/eslint-plugin-lightning, @babel/eslint-parser) only supports ESLint 9. Also, @salesforce/sfdx-lwc-jest 7.6.0 and later pull in @lwc/state, which has a non-OSS license, so Dependency Review fails.

Changes

  • Replace the four Quantic .eslintrc.json files with one packages/quantic/eslint.config.js flat config. It keeps the same per-folder globals, overrides, ignores, Prettier config and TypeScript parser for e2e/*.ts.
  • Bump eslint 8.57 → 9.39 and @salesforce/eslint-config-lwc 3.7.2 → 4.1.2.
  • Keep the ESLint 8 behavior where ESLint 9 or the v4 config changed defaults: no-unused-vars with caughtErrors: 'none', require as a global in __tests__, and reportUnusedDisableDirectives: 'off'.
  • quanticResultsPerPage.js: add an inline no-constant-binary-expression exception with a TODO. The new rule found a real latent bug: Number(this.initialChoice) ?? this.choices[0] never falls back, because Number() never returns null or undefined. Runtime behavior is unchanged here; the fix belongs in a follow-up PR, which should also remove the exception.
  • renovate.json5: keep eslint below 10 in packages/quantic until @salesforce/eslint-config-lwc supports it, and keep @salesforce/sfdx-lwc-jest below 7.6.0.
  • Update the Quantic turbo.json lint inputs and AGENTS.md.
  • No changeset: dev tooling only.

The other bumps in #8459 (Babel 8, jest-junit 17, dotenv 18) are left to Renovate.

Validation

  • pnpm install --frozen-lockfile passes.

  • pnpm exec turbo run //#lint:check:all @coveo/quantic#lint:check:all --force passes (ESLint, Prettier, cspell, oxlint, oxfmt).

  • ESLint lints the same files as before: 264 .js files and 108 e2e/*.ts files (checked against find). A temporary file with an unused variable and an undefined call reports both errors.

  • pnpm --filter @coveo/quantic test:unit: 88 suites and 1229 tests pass.

  • renovate-config-validator --strict renovate.json5 passes.

  • All existing tests pass without modification

  • No new features or bug fixes are included in this PR

  • Public API surface is unchanged

Checklist

🤖 Generated with Claude Code

Replace the Quantic .eslintrc.json files with an ESLint 9 flat config, bump @salesforce/eslint-config-lwc to 4.1.2, and hold eslint <10 and @salesforce/sfdx-lwc-jest <7.6.0 in Renovate.
@changeset-bot

changeset-bot Bot commented Oct 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: fe3da99

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@svcsnykcoveo

svcsnykcoveo commented Oct 27, 2026 •

Copy link
Copy Markdown

✅ Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
✅ Open Source Security 0 0 0 0 0 issues
✅ Licenses 0 0 0 0 0 issues
✅ Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@chromatic-com

chromatic-com Bot commented Oct 27, 2026

Copy link
Copy Markdown

Tip

All tests passed and all changes approved!

🟢 UI Tests: 440 tests unchanged
🟢 UI Review: No changes
Storybook icon Storybook Publish: 472 stories published

@chromatic-com

chromatic-com Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Tip

All tests passed and all changes approved!

🟢 UI Tests: 440 tests unchanged
🟢 UI Review: 472 stories published -- no changes
Storybook icon Storybook Publish: 472 stories published

@pkg-pr-new

pkg-pr-new Bot commented Oct 27, 2026

Copy link
Copy Markdown
@coveo/atomic

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/atomic@8770

@coveo/atomic-hosted-page

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/atomic-hosted-page@8770

@coveo/atomic-legacy

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/atomic-legacy@8770

@coveo/atomic-react

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/atomic-react@8770

@coveo/bueno

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/bueno@8770

coveo.analytics

npm i https://pkg.pr.new/coveo/ui-kit/coveo.analytics@8770

@coveo/create-atomic-rollup-plugin

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/create-atomic-rollup-plugin@8770

@coveo/headless

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/headless@8770

@coveo/headless-react

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/headless-react@8770

@coveo/quantic

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/quantic@8770

@coveo/relay

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/relay@8770

@coveo/shopify

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/shopify@8770

@coveo/atomic-angular

npm i https://pkg.pr.new/coveo/ui-kit/@coveo/atomic-angular@8770

commit: fe3da99

@github-actions

Copy link
Copy Markdown
Contributor

🔗 Scratch Orgs ready to test this PR:

@alexprudhomme

Copy link
Copy Markdown
Contributor Author

Superseded: the fix is now pushed on top of #8459 instead of a separate PR.

This branch was successfully deployed

1 active and 1 inactive deployments
PR Artifacts — fe3da99e Deployed Oct 27, 2026 by alexprudhomme via Merge Quantic Playwright reports #20518
pr-workflows — fe3da99e Deployed Oct 27, 2026 by alexprudhomme via label #10106
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants