Skip to content

chore: upgrade to ESLint 10 (supersedes #8, #13) - #22

Merged
DaveHomeAssist merged 1 commit into
mainfrom
chore/eslint-10
Jul 12, 2026
Merged

chore: upgrade to ESLint 10 (supersedes #8, #13)#22
DaveHomeAssist merged 1 commit into
mainfrom
chore/eslint-10

Conversation

@DaveHomeAssist

Copy link
Copy Markdown
Owner

Combined major upgrade replacing Dependabot PRs #8 and #13.

Changes

  • eslint ^9.39.4 -> ^10.3.0 (lockfile resolves 10.7.0)
  • @eslint/js ^9.39.4 -> ^10.0.1
  • npm overrides entry forcing eslint-plugin-react's eslint peer to the project eslint: the plugin (7.37.5, latest) has no ESLint 10-compatible release yet. The only two rules we use from it (react/jsx-uses-react, react/jsx-uses-vars) run cleanly under ESLint 10. eslint-plugin-react-hooks 7.1.1 already declares ^10.0.0 peer support.
  • Fixed 7 new no-useless-assignment errors — the rule joined js.configs.recommended in @eslint/js 10. All were dead initializers immediately overwritten by exhaustive if/else chains (colorOps.js hslToRgb/hsvToRgb, PixelForge.jsx moveSelectedShapeOrder). Semantics unchanged.

Verification (local, Node 22)

  • npm run lint clean
  • npm run test 279 passed, 1 skipped (39 files)
  • npm run build + npm run budget pass (546.6 kB <= 1200 kB)

Per audit cleanup RUN-20260711-2048.

- eslint ^10.3.0 (resolves 10.7.0), @eslint/js ^10.0.1
- npm override forcing eslint-plugin-react's eslint peer to the
  project eslint (plugin has no ESLint 10 release yet; the two rules
  we use, jsx-uses-react/jsx-uses-vars, verified working under v10)
- fix new no-useless-assignment errors (rule joined
  js.configs.recommended in @eslint/js 10): remove dead initializers
  in colorOps.js hslToRgb/hsvToRgb and PixelForge.jsx
  moveSelectedShapeOrder
@DaveHomeAssist
DaveHomeAssist merged commit be2ac42 into main Jul 12, 2026
1 check passed
@DaveHomeAssist
DaveHomeAssist deleted the chore/eslint-10 branch July 12, 2026 01:10

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 046b30e8c7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread package-lock.json
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
"node": "^20.19.0 || ^22.13.0 || >=24"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Raise the Node floor for ESLint 10

ESLint 10 is now locked to a package whose own engine only supports Node ^20.19.0 || ^22.13.0 || >=24, but I checked scripts/verify-runtime.mjs and .nvmrc/.node-version and the project still accepts/pins any Node 22 (>=22 <25, major-only check). In a supported local environment on Node 22.0–22.12, npm run lint passes the PixelForge runtime check and then runs an unsupported ESLint version, or fails under engine-strict installs, so the runtime gate/pins should be raised to 22.13+ with this bump.

Useful? React with 👍 / 👎.

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