-
Notifications
You must be signed in to change notification settings - Fork 29
CRAFT-2074-eslint v9 migration [new pkgs] #3931
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
🦋 Changeset detectedLatest commit: f06f485 The changes in this PR will be included in the next version bump. This PR includes changesets to release 38 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Orca Security Scan Summary
| Status | Check | Issues by priority | |
|---|---|---|---|
| Infrastructure as Code | View in Orca | ||
| SAST | View in Orca | ||
| Secrets | View in Orca | ||
| Vulnerabilities | View in Orca |
☢️ The following Vulnerabilities (CVEs) have been detected
| PACKAGE | FILE | CVE ID | INSTALLED VERSION | FIXED VERSION | ||
|---|---|---|---|---|---|---|
| diff | ./pnpm-lock.yaml | CVE-2026-24001 | 5.2.0 | 8.0.3, 5.2.2, 4.0.4 | View in code | |
| glob | ./pnpm-lock.yaml | CVE-2025-64756 | 10.4.5 | 11.1.0, 10.5.0 | View in code | |
| node-forge | ./pnpm-lock.yaml | CVE-2025-12816 | 1.3.1 | 1.3.2 | View in code | |
| node-forge | ./pnpm-lock.yaml | CVE-2025-66031 | 1.3.1 | 1.3.2 | View in code | |
| tar | ./pnpm-lock.yaml | CVE-2026-23745 | 6.2.1 | 7.5.3 | View in code | |
| tar | ./pnpm-lock.yaml | CVE-2026-23950 | 6.2.1 | 7.5.4 | View in code | |
| tar | ./pnpm-lock.yaml | CVE-2026-24842 | 6.2.1 | 7.5.7 | View in code |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3931 +/- ##
=======================================
Coverage 71.98% 71.98%
=======================================
Files 263 263
Lines 6793 6793
Branches 2074 2102 +28
=======================================
Hits 4890 4890
Misses 1882 1882
Partials 21 21
Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
…s, fix rule names in config
… function for schema typess
…n 9.x and 8.x respectively, update related dependencies
77fd37e to
4074a31
Compare
updated experimental branch, original here
Currently under test with commercetools/ui-kit#3216
ESLint 9's flat config format is fundamentally incompatible with ESLint 8's .eslintrc format as they use different structures (array of config objects vs. single object with extends/overrides). While backwards compatibility is technically possible, it would require maintaining two parallel config structures indefinitely.
By creating separate packages, we freeze the legacy package in maintenance mode (security fixes only) while all active development happens in the new
-flatpackages. This approach trades a one-time consumer migration cost for ongoing maintainer simplicity, eliminates version detection risks & provides a clean path to eventually sunset ESLint 8 support by removing the deprecated packages entirely.This PR contains the following:
1.) New packages
@commercetools-frontend/eslint-config-mc-app-flat@commercetools-backend/eslint-config-node-flat2.) Workspace migration to the flat config format, consolidating the linting logic into a single
eslint.config.js:@commercetools-frontend/eslint-config-mc-app-flatdist/,build/), localization files (_translations/), and internal caches (.cache/)3.) To ensure compatibility with the flat config system and ESLint 9, the following modifications were implemented:
TS-ESLintv8 - Required for ESLint 9 supporteslint-plugin-jestv28 - Updated for compatibilityglobalsv15.15.0 - Necessary for explicit global definitions in the flat formatReact/JSXplugins and ruleseslint-plugin-testing-libraryto v6Cypressplugin and browser globalseslint-plugin-nfor Node.js specific linting4.) Legacy package deprecation
@commercetools-frontend/eslint-config-mc-app&@commercetools-backend/eslint-config-nodepackage.jsonpointing users toward the new-flatalternativesindex.js5.) Misc (appkit):
Consumer impact
-flatpackages required when upgrading to ESLint 9