[PR #6584] [MERGED] Remove ESLint and complete migration to oxlint #20981

Closed
opened 2026-04-14 21:51:01 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/6584
Author: @MatissJanis
Created: 1/6/2026
Status: Merged
Merged: 1/6/2026
Merged by: @MatissJanis

Base: masterHead: matiss/remove-eslint


📝 Commits (2)

📊 Changes

20 files changed (+113 additions, -227 deletions)

View changed files

📝 .github/actions/ai-generated-release-notes/check-first-comment.js (+2 -1)
📝 .github/actions/ai-generated-release-notes/check-release-notes-exists.js (+2 -1)
📝 .github/actions/ai-generated-release-notes/determine-category.js (+1 -1)
📝 .github/actions/ai-generated-release-notes/generate-summary.js (+1 -1)
📝 .github/actions/ai-generated-release-notes/pr-details.js (+2 -1)
📝 .github/actions/check-migrations.js (+1 -1)
📝 .oxlintrc.json (+48 -1)
eslint.config.mjs (+0 -96)
📝 package.json (+3 -5)
📝 packages/desktop-client/src/browser-preload.browser.js (+1 -1)
📝 packages/eslint-plugin-actual/package.json (+0 -6)
📝 packages/loot-core/src/platform/server/connection/index.electron.ts (+1 -2)
📝 packages/loot-core/src/platform/server/connection/index.ts (+1 -2)
📝 packages/loot-core/src/platform/server/fs/index.electron.ts (+2 -2)
📝 packages/loot-core/src/platform/server/fs/index.web.ts (+1 -2)
📝 packages/loot-core/src/platform/server/sqlite/index.electron.ts (+1 -2)
📝 packages/loot-core/src/platform/server/sqlite/index.web.ts (+1 -0)
📝 packages/loot-core/src/shared/transactions.ts (+1 -1)
upcoming-release-notes/6584.md (+6 -0)
📝 yarn.lock (+38 -101)

📄 Description

Goodbye eslint (almost!)

$ time yarn lint
Checking formatting...

All matched files use the correct format.
Finished in 537ms on 1665 files using 10 threads.
WARNING: JS plugins are experimental and not subject to semver.
Breaking changes are possible while JS plugins support is under development.
Found 0 warnings and 0 errors.
Finished in 3.9s on 1573 files using 10 threads.
yarn lint  13.03s user 1.34s system 258% cpu 5.565 total

cc @connorshea
If we remove the "eslint" dependency (which is now unused btw) - we get the following error:

$ yarn lint
Checking formatting...

All matched files use the correct format.
Finished in 683ms on 1665 files using 10 threads.
WARNING: JS plugins are experimental and not subject to semver.
Breaking changes are possible while JS plugins support is under development.
Failed to parse oxlint configuration file.

  × Failed to load JS plugin: eslint-plugin-perfectionist
  │   Error: Cannot find module 'eslint/use-at-your-own-risk'
  │ Require stack:
  │ - /Users/matiss/actual/actual/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js
  │ - /Users/matiss/actual/actual/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js
  │ - /Users/matiss/actual/actual/node_modules/@typescript-eslint/utils/dist/ts-eslint/index.js
  │ - /Users/matiss/actual/actual/node_modules/@typescript-eslint/utils/dist/index.js
  │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/utils/get-node-range.js
  │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/utils/make-newlines-between-fixes.js
  │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/utils/make-fixes.js
  │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/utils/report-errors.js
  │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/rules/sort-variable-declarations.js
  │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/index.js
  │     at Function._resolveFilename (node:internal/modules/cjs/loader:1383:15)
  │     at defaultResolveImpl (node:internal/modules/cjs/loader:1025:19)
  │     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1030:22)
  │     at Function._load (node:internal/modules/cjs/loader:1192:37)
  │     at TracingChannel.traceSync (node:diagnostics_channel:322:14)
  │     at wrapModuleLoad (node:internal/modules/cjs/loader:237:24)
  │     at Module.require (node:internal/modules/cjs/loader:1463:12)
  │     at require (node:internal/modules/helpers:147:16)
  │     at Object.<anonymous> (/Users/matiss/actual/actual/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js:5:32)
  │     at Module._compile (node:internal/modules/cjs/loader:1706:14)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/6584 **Author:** [@MatissJanis](https://github.com/MatissJanis) **Created:** 1/6/2026 **Status:** ✅ Merged **Merged:** 1/6/2026 **Merged by:** [@MatissJanis](https://github.com/MatissJanis) **Base:** `master` ← **Head:** `matiss/remove-eslint` --- ### 📝 Commits (2) - [`36ee0e1`](https://github.com/actualbudget/actual/commit/36ee0e1603bd38e2249c7f809526e33efb65a0d3) Remove ESLint and migrate fully to oxlint - [`cce29dd`](https://github.com/actualbudget/actual/commit/cce29ddb57ff9ee7962f2b4f6bcdbf8de64620ec) Add release notes for PR #6584 ### 📊 Changes **20 files changed** (+113 additions, -227 deletions) <details> <summary>View changed files</summary> 📝 `.github/actions/ai-generated-release-notes/check-first-comment.js` (+2 -1) 📝 `.github/actions/ai-generated-release-notes/check-release-notes-exists.js` (+2 -1) 📝 `.github/actions/ai-generated-release-notes/determine-category.js` (+1 -1) 📝 `.github/actions/ai-generated-release-notes/generate-summary.js` (+1 -1) 📝 `.github/actions/ai-generated-release-notes/pr-details.js` (+2 -1) 📝 `.github/actions/check-migrations.js` (+1 -1) 📝 `.oxlintrc.json` (+48 -1) ➖ `eslint.config.mjs` (+0 -96) 📝 `package.json` (+3 -5) 📝 `packages/desktop-client/src/browser-preload.browser.js` (+1 -1) 📝 `packages/eslint-plugin-actual/package.json` (+0 -6) 📝 `packages/loot-core/src/platform/server/connection/index.electron.ts` (+1 -2) 📝 `packages/loot-core/src/platform/server/connection/index.ts` (+1 -2) 📝 `packages/loot-core/src/platform/server/fs/index.electron.ts` (+2 -2) 📝 `packages/loot-core/src/platform/server/fs/index.web.ts` (+1 -2) 📝 `packages/loot-core/src/platform/server/sqlite/index.electron.ts` (+1 -2) 📝 `packages/loot-core/src/platform/server/sqlite/index.web.ts` (+1 -0) 📝 `packages/loot-core/src/shared/transactions.ts` (+1 -1) ➕ `upcoming-release-notes/6584.md` (+6 -0) 📝 `yarn.lock` (+38 -101) </details> ### 📄 Description Goodbye eslint (almost!) ``` $ time yarn lint Checking formatting... All matched files use the correct format. Finished in 537ms on 1665 files using 10 threads. WARNING: JS plugins are experimental and not subject to semver. Breaking changes are possible while JS plugins support is under development. Found 0 warnings and 0 errors. Finished in 3.9s on 1573 files using 10 threads. yarn lint 13.03s user 1.34s system 258% cpu 5.565 total ``` --- cc @connorshea If we remove the "eslint" dependency (which is now unused btw) - we get the following error: ``` $ yarn lint Checking formatting... All matched files use the correct format. Finished in 683ms on 1665 files using 10 threads. WARNING: JS plugins are experimental and not subject to semver. Breaking changes are possible while JS plugins support is under development. Failed to parse oxlint configuration file. × Failed to load JS plugin: eslint-plugin-perfectionist │ Error: Cannot find module 'eslint/use-at-your-own-risk' │ Require stack: │ - /Users/matiss/actual/actual/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js │ - /Users/matiss/actual/actual/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js │ - /Users/matiss/actual/actual/node_modules/@typescript-eslint/utils/dist/ts-eslint/index.js │ - /Users/matiss/actual/actual/node_modules/@typescript-eslint/utils/dist/index.js │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/utils/get-node-range.js │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/utils/make-newlines-between-fixes.js │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/utils/make-fixes.js │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/utils/report-errors.js │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/rules/sort-variable-declarations.js │ - /Users/matiss/actual/actual/node_modules/eslint-plugin-perfectionist/dist/index.js │ at Function._resolveFilename (node:internal/modules/cjs/loader:1383:15) │ at defaultResolveImpl (node:internal/modules/cjs/loader:1025:19) │ at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1030:22) │ at Function._load (node:internal/modules/cjs/loader:1192:37) │ at TracingChannel.traceSync (node:diagnostics_channel:322:14) │ at wrapModuleLoad (node:internal/modules/cjs/loader:237:24) │ at Module.require (node:internal/modules/cjs/loader:1463:12) │ at require (node:internal/modules/helpers:147:16) │ at Object.<anonymous> (/Users/matiss/actual/actual/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js:5:32) │ at Module._compile (node:internal/modules/cjs/loader:1706:14) ``` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-14 21:51:01 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#20981