Bump eslint from 8.57.1 to 9.39.4#70
Conversation
Bumps [eslint](https://github.com/eslint/eslint) from 8.57.1 to 9.39.4. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v8.57.1...v9.39.4) --- updated-dependencies: - dependency-name: eslint dependency-version: 9.39.4 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
rtibblesbot
left a comment
There was a problem hiding this comment.
Straightforward major eslint bump, but requires a config migration before merging.
CI passing (no lint workflow runs in CI, so npm run lint compatibility is not verified by CI).
Blocking:
.eslintrc.jsincompatible with ESLint 9's default flat config system — see inline comment onpackage.json
Praise:
- ESLint 9.39.4 bundles security patches for
ajv(security vulnerabilities addressed) andminimatch— good dependency hygiene in the upstream release.
Dependency Update Review
Package: eslint 8.57.0 → 9.39.4
Semver risk: Major
Dependency type: devDependency
CI status: Passing
Changelog Analysis
Sources consulted:
- PR body release notes (9.39.1–9.39.4)
- ESLint v9.0.0 migration guide
Breaking changes:
- Flat config (
eslint.config.js) is now the default. Legacy config files (.eslintrc.js,.eslintrc.json, etc.) are no longer recognized unlessESLINT_USE_FLAT_CONFIG=falseis set. Runningeslint .without a flat config is effectively a no-op — no rules will be enforced.
Security fixes (9.39.x):
ajvupdated to 6.14.0 to address security vulnerabilitiesminimatchupdated to ^3.1.5 (security patch)
Other notable changes (9.39.x):
- TypeScript 4.0 compatibility restored in types (9.39.3)
- Warning added when
eslint-envconfiguration comments are found (9.39.2)
Compatibility Assessment
- Project uses
.eslintrc.js(legacy config): yes — ignored by ESLint 9 by default eslint.config.jspresent: noeslint-config-prettierv10.1.8: supports ESLint 9 flat config ✓- Code changes required: yes — migrate
.eslintrc.jstoeslint.config.js - Prior failed attempts: none found
Recommendation
REQUEST_CHANGES — requires flat config migration before merging.
@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly
How was this generated?
Reviewed the pull request diff checking for:
- Correctness: bugs, edge cases, undocumented behavior, resource leaks, hardcoded values
- Design: unnecessary complexity, naming, readability, comment accuracy, redundant state
- Architecture: duplicated concerns, minimal interfaces, composition over inheritance
- Testing: behavior-based assertions, mocks only at hard boundaries, accurate coverage
- Completeness: missing dependencies, unupdated usages, i18n, accessibility, security
- Principles: DRY (same reason to change), SRP, Rule of Three (no premature abstraction)
- Checked CI status and linked issue acceptance criteria
- For UI changes: inspected screenshots for layout, visual completeness, and consistency
| }, | ||
| "devDependencies": { | ||
| "eslint": "^8.57.0", | ||
| "eslint": "^9.39.4", |
There was a problem hiding this comment.
blocking: ESLint 9 replaces the legacy config system (.eslintrc.*) with flat config (eslint.config.js). The project's .eslintrc.js will be silently ignored after this upgrade, leaving npm run lint a no-op — no rules enforced.
To fix, add an eslint.config.js at the repo root and remove .eslintrc.js. See the migration guide. A starting point for this project:
import js from "@eslint/js";
import globals from "globals";
import eslintConfigPrettier from "eslint-config-prettier";
export default [
js.configs.recommended,
eslintConfigPrettier,
{
languageOptions: {
ecmaVersion: 2020,
sourceType: "module",
globals: { ...globals.browser, ...globals.node },
},
rules: {
"comma-style": "error",
"no-console": "error",
"max-len": ["error", 100, {
ignoreStrings: true,
ignoreTemplateLiterals: true,
ignoreUrls: true,
ignoreTrailingComments: true,
}],
},
},
];Add globals as a dev dependency: yarn add -D globals.
Bumps eslint from 8.57.1 to 9.39.4.
Release notes
Sourced from eslint's releases.
... (truncated)
Commits
f5770b09.39.4c30147aBuild: changelog update for 9.39.4b8b4eb1chore: update dependencies for ESLint v9.39.4 (#20596)71b2f6bchore: package.json update for@eslint/jsrelease4675152docs: add deprecation notice partial (#20520)f18f6c8fix: update dependency minimatch to ^3.1.5 (#20564)1d16c2fci: pin Node.js 25.6.1 (#20563)a3c868ffix: update dependency@eslint/eslintrcto ^3.3.4 (#20554)234d005fix: minimatch security vulnerability patch for v9.x (#20549)b1b37eefix: updateajvto6.14.0to address security vulnerabilities (#20538)Most Recent Ignore Conditions Applied to This Pull Request
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)