chore(deps): refresh bundled plugins on the eslint 9 line - #44
Merged
Conversation
Bumps every dependency that still supports ESLint 9. No config authored here changes; behavior moves only through the `recommended` presets this config spreads. Diffed the resolved rule set before and after with ESLint's own `calculateConfigForFile` across the full composed bundle. Twelve rules land at error severity that were not enabled before: eleven added to `eslint-plugin-sonarjs`'s `recommended` in 4.2.0, which `guardrails` spreads wholesale, plus `playwright/no-unnecessary-assertions` added to `flat/recommended` in 2.11.0. The SonarJS additions read as test rules by name but ship in the base `recommended` set, so they resolve for every linted file rather than only specs. That is what makes this a minor rather than a patch, matching the precedent set by 1.10.0 and 1.11.0. `eslint-config-airbnb-extended` 3.2.0 only relaxes, adding `drizzle.config.*` to the `import-x/no-extraneous-dependencies` devDependencies allowlist. Measured the real cost by running the twelve new rules against GAIA's tree: three findings, all `sonarjs/parameterized-tests`. None of the twelve is auto-fixable. Held back deliberately. `eslint` 10, `@eslint/js` 10, and `eslint-plugin-unicorn` 73 all require widening the `eslint: ^9.0.0` peer range, so they belong to a major. TypeScript 7 is blocked independently by `typescript-eslint` 8.x, which peers `typescript <6.1.0`. The `@changesets` majors are left for their own change rather than swapping the release tool mid-release. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps every bundled dependency that still supports the ESLint 9 line, and ships a
minorchangeset.Why minor and not patch
I diffed the resolved rule set before and after, using ESLint's own
calculateConfigForFileacross the full composed bundle (base, react, reactRouter, styleHygiene, guardrails, testing, storybook, playwright, betterTailwind, prettier) over seven representative file paths.Twelve rules land at error severity that were not enabled before.
Eleven were added to
eslint-plugin-sonarjs'srecommendedin 4.2.0, whichguardrailsspreads wholesale:assertions-in-test-cases,explicit-test-skip,memoize-cache-key,no-debug-commands-in-ui-tests,no-default-utility-imports,no-fixed-wait-in-tests,no-interpolation-in-inline-snapshots,no-mixed-completion-style,parameterized-tests,prefer-native-lodash-alternative,synchronous-suite-callbackThe twelfth is
playwright/no-unnecessary-assertions, added toflat/recommendedineslint-plugin-playwright2.11.0 and live under.playwright/.Worth noting: the SonarJS additions read as test rules by name, but they ship in the base
recommendedset rather than a test-scoped one, so they resolve for every linted file, not only specs.New errors reaching consumers is exactly what 1.10.0 and 1.11.0 shipped as minors. Major has been reserved for changes that require a config edit, and nothing here does.
Real-world cost
Ran the twelve new rules against GAIA's tree. Three findings, all
sonarjs/parameterized-tests:app/pages/Public/IndexPage/tests/index.test.tsx:67test/primary-contrast.test.ts:100test/primary-contrast.test.ts:105None of the twelve is auto-fixable, so each needs a real edit or a deliberate suppression.
Relaxations
eslint-config-airbnb-extended3.1.0 to 3.2.0 only relaxes:drizzle.config.*joins theimport-x/no-extraneous-dependenciesdevDependencies allowlist.Peer note
eslint-plugin-storybook10.4.6 to 10.5.7 tightens its own peer onstorybookto^10.5.7. A project on an earlier 10.5.x sees an unmet-peer warning until it bumps. Not fatal unlessstrictPeerDependenciesis on. GAIA is currently on storybook 10.5.4 and will clear this on its next dependency run.Held back deliberately
eslint10,@eslint/js10, andeslint-plugin-unicorn73 (peerseslint >=10.4) all require widening theeslint: ^9.0.0peer range. They move together as one major.typescript-eslint8.x peerstypescript >=4.8.4 <6.1.0.@changesets/cli2 to 3 and@changesets/changelog-github0.7 to 1.0 are dev-only, but swapping the release tool during a release adds risk for no gain. Separate change.Verification
pnpm typecheckcleanpnpm lint(--max-warnings=0) cleanvitest run: 38/38 passingpnpm buildsucceeds🤖 Generated with Claude Code