[PR #7508] [MERGED] ⬆️ eslint v10 & migrate eslint plugins to oxc performant API #56521

Closed
opened 2026-05-01 04:26:42 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7508
Author: @matt-fidd
Created: 4/15/2026
Status: Merged
Merged: 4/15/2026
Merged by: @matt-fidd

Base: masterHead: deps/lint


📝 Commits (3)

📊 Changes

24 files changed (+786 additions, -269 deletions)

View changed files

📝 package.json (+1 -1)
📝 packages/eslint-plugin-actual/lib/index.js (+4 -2)
📝 packages/eslint-plugin-actual/lib/rules/__tests__/no-anchor-tag.test.js (+2 -6)
📝 packages/eslint-plugin-actual/lib/rules/__tests__/no-extraneous-dependencies.test.js (+2 -1)
📝 packages/eslint-plugin-actual/lib/rules/__tests__/no-react-default-import.test.js (+2 -7)
📝 packages/eslint-plugin-actual/lib/rules/__tests__/object-shorthand-properties.test.js (+2 -13)
📝 packages/eslint-plugin-actual/lib/rules/__tests__/prefer-const.test.js (+2 -11)
📝 packages/eslint-plugin-actual/lib/rules/__tests__/prefer-if-statement.test.js (+5 -12)
📝 packages/eslint-plugin-actual/lib/rules/__tests__/prefer-logger-over-console.test.js (+2 -1)
📝 packages/eslint-plugin-actual/lib/rules/__tests__/typography.test.js (+12 -11)
📝 packages/eslint-plugin-actual/lib/rules/no-anchor-tag.js (+2 -2)
📝 packages/eslint-plugin-actual/lib/rules/no-extraneous-dependencies.js (+6 -6)
📝 packages/eslint-plugin-actual/lib/rules/no-react-default-import.js (+1 -1)
📝 packages/eslint-plugin-actual/lib/rules/no-untranslated-strings.js (+2 -2)
📝 packages/eslint-plugin-actual/lib/rules/object-shorthand-properties.js (+2 -4)
📝 packages/eslint-plugin-actual/lib/rules/prefer-const.js (+11 -7)
📝 packages/eslint-plugin-actual/lib/rules/prefer-if-statement.js (+5 -6)
📝 packages/eslint-plugin-actual/lib/rules/prefer-logger-over-console.js (+18 -18)
📝 packages/eslint-plugin-actual/lib/rules/prefer-subpath-imports.js (+12 -15)
📝 packages/eslint-plugin-actual/lib/rules/prefer-trans-over-t.js (+2 -2)

...and 4 more files

📄 Description

Description

This is split into two commits, the first is everything required to migrate to eslint v10, but while I was reading the oxc plugin docs I saw the alternative soon-to-be-if-not-already faster plugin API that is still compatible with eslint so did the migration while I was there.

https://oxc.rs/docs/guide/usage/linter/writing-js-plugins.html#alternative-api

Testing

Run yarn:lint, yarn:typecheck and yarn:test, all clean and pass.

Checklist

  • Release notes added (see link above)
  • No obvious regressions in affected areas
  • Self-review has been performed - I understand what each change in the code does and why it is needed

Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 34 12.83 MB → 12.92 MB (+83.95 kB) +0.64%
loot-core 1 4.85 MB 0%
api 1 3.88 MB 0%
cli 1 7.91 MB 0%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
34 12.83 MB → 12.92 MB (+83.95 kB) +0.64%
Changeset
File Δ Size
node_modules/@uiw/codemirror-extensions-basic-setup/esm/index.js 📈 +6 B (+0.25%) 2.37 kB → 2.37 kB
node_modules/@codemirror/theme-one-dark/dist/index.js 📈 +4 B (+0.11%) 3.66 kB → 3.66 kB
node_modules/@codemirror/commands/dist/index.js 📈 +42 B (+0.09%) 44.37 kB → 44.41 kB
node_modules/@codemirror/autocomplete/dist/index.js 📈 +6 B (+0.01%) 51.64 kB → 51.64 kB
src/components/formula/queryModeFunctions.ts 📉 -38 B (-0.16%) 23 kB → 22.97 kB
node_modules/@codemirror/language/dist/index.js 📉 -12.41 kB (-22.55%) 55 kB → 42.6 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
static/js/FormulaEditor.js 730.44 kB → 814.39 kB (+83.95 kB) +11.49%

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
static/js/index.js 1.85 MB 0%
static/js/BackgroundImage.js 121.09 kB 0%
static/js/PayeeRuleCountLabel.js 52.12 kB 0%
static/js/ReportRouter.js 1.18 MB 0%
static/js/ScheduleEditForm.js 136.13 kB 0%
static/js/TransactionEdit.js 185.13 kB 0%
static/js/TransactionList.js 82.8 kB 0%
static/js/Value.js 4.34 MB 0%
static/js/ca.js 191.72 kB 0%
static/js/chart-theme.js 705.55 kB 0%
static/js/client.js 450.92 kB 0%
static/js/da.js 104.4 kB 0%
static/js/de.js 174.12 kB 0%
static/js/en-GB.js 8.2 kB 0%
static/js/en.js 176.5 kB 0%
static/js/es.js 181.54 kB 0%
static/js/extends.js 486.5 kB 0%
static/js/fr.js 176.79 kB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 13.46 kB 0%
static/js/it.js 165.68 kB 0%
static/js/narrow.js 363.68 kB 0%
static/js/nb-NO.js 151.58 kB 0%
static/js/nl.js 108.66 kB 0%
static/js/pl.js 88.34 kB 0%
static/js/pt-BR.js 177.18 kB 0%
static/js/resize-observer.js 18.06 kB 0%
static/js/th.js 178.91 kB 0%
static/js/theme.js 30.79 kB 0%
static/js/uk.js 212.28 kB 0%
static/js/useFormatList.js 9.86 kB 0%
static/js/wide.js 292 B 0%
static/js/workbox-window.prod.es5.js 7.33 kB 0%
static/js/zh-Hans.js 110.19 kB 0%

loot-core

Total

Files count Total bundle size % Changed
1 4.85 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
kcab.worker.Dtv5lNQw.js 4.85 MB 0%

api

Total

Files count Total bundle size % Changed
1 3.88 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
index.js 3.88 MB 0%

cli

Total

Files count Total bundle size % Changed
1 7.91 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
cli.js 7.91 MB 0%

🔄 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/7508 **Author:** [@matt-fidd](https://github.com/matt-fidd) **Created:** 4/15/2026 **Status:** ✅ Merged **Merged:** 4/15/2026 **Merged by:** [@matt-fidd](https://github.com/matt-fidd) **Base:** `master` ← **Head:** `deps/lint` --- ### 📝 Commits (3) - [`a6738cd`](https://github.com/actualbudget/actual/commit/a6738cd97d651f1d1da0b677cf511001f407e4c7) eslint (^9.39.3 -> ^10.2.0) - [`b80bbdc`](https://github.com/actualbudget/actual/commit/b80bbdcc8073b0393d7437aedd83220874d5595a) migrate plugins to oxc alternative API - [`383ebbe`](https://github.com/actualbudget/actual/commit/383ebbec32438586a2f52ef0120ccb2dd8f8ad92) note ### 📊 Changes **24 files changed** (+786 additions, -269 deletions) <details> <summary>View changed files</summary> 📝 `package.json` (+1 -1) 📝 `packages/eslint-plugin-actual/lib/index.js` (+4 -2) 📝 `packages/eslint-plugin-actual/lib/rules/__tests__/no-anchor-tag.test.js` (+2 -6) 📝 `packages/eslint-plugin-actual/lib/rules/__tests__/no-extraneous-dependencies.test.js` (+2 -1) 📝 `packages/eslint-plugin-actual/lib/rules/__tests__/no-react-default-import.test.js` (+2 -7) 📝 `packages/eslint-plugin-actual/lib/rules/__tests__/object-shorthand-properties.test.js` (+2 -13) 📝 `packages/eslint-plugin-actual/lib/rules/__tests__/prefer-const.test.js` (+2 -11) 📝 `packages/eslint-plugin-actual/lib/rules/__tests__/prefer-if-statement.test.js` (+5 -12) 📝 `packages/eslint-plugin-actual/lib/rules/__tests__/prefer-logger-over-console.test.js` (+2 -1) 📝 `packages/eslint-plugin-actual/lib/rules/__tests__/typography.test.js` (+12 -11) 📝 `packages/eslint-plugin-actual/lib/rules/no-anchor-tag.js` (+2 -2) 📝 `packages/eslint-plugin-actual/lib/rules/no-extraneous-dependencies.js` (+6 -6) 📝 `packages/eslint-plugin-actual/lib/rules/no-react-default-import.js` (+1 -1) 📝 `packages/eslint-plugin-actual/lib/rules/no-untranslated-strings.js` (+2 -2) 📝 `packages/eslint-plugin-actual/lib/rules/object-shorthand-properties.js` (+2 -4) 📝 `packages/eslint-plugin-actual/lib/rules/prefer-const.js` (+11 -7) 📝 `packages/eslint-plugin-actual/lib/rules/prefer-if-statement.js` (+5 -6) 📝 `packages/eslint-plugin-actual/lib/rules/prefer-logger-over-console.js` (+18 -18) 📝 `packages/eslint-plugin-actual/lib/rules/prefer-subpath-imports.js` (+12 -15) 📝 `packages/eslint-plugin-actual/lib/rules/prefer-trans-over-t.js` (+2 -2) _...and 4 more files_ </details> ### 📄 Description <!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. --> ## Description <!-- What does this PR do? Why is it needed? Please give context on the "why?": why do we need this change? What problem is it solving for you?--> This is split into two commits, the first is everything required to migrate to eslint v10, but while I was reading the oxc plugin docs I saw the alternative soon-to-be-if-not-already faster plugin API that is still compatible with eslint so did the migration while I was there. https://oxc.rs/docs/guide/usage/linter/writing-js-plugins.html#alternative-api ## Testing <!-- What did you test? How can we reproduce the issue you are fixing or how can we test the feature you built? --> Run yarn:lint, yarn:typecheck and yarn:test, all clean and pass. ## Checklist - [x] Release notes added (see link above) - [x] No obvious regressions in affected areas - [x] Self-review has been performed - I understand what each change in the code does and why it is needed <!--- actual-bot-sections ---> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 34 | 12.83 MB → 12.92 MB (+83.95 kB) | +0.64% loot-core | 1 | 4.85 MB | 0% api | 1 | 3.88 MB | 0% cli | 1 | 7.91 MB | 0% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 34 | 12.83 MB → 12.92 MB (+83.95 kB) | +0.64% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `node_modules/@uiw/codemirror-extensions-basic-setup/esm/index.js` | 📈 +6 B (+0.25%) | 2.37 kB → 2.37 kB `node_modules/@codemirror/theme-one-dark/dist/index.js` | 📈 +4 B (+0.11%) | 3.66 kB → 3.66 kB `node_modules/@codemirror/commands/dist/index.js` | 📈 +42 B (+0.09%) | 44.37 kB → 44.41 kB `node_modules/@codemirror/autocomplete/dist/index.js` | 📈 +6 B (+0.01%) | 51.64 kB → 51.64 kB `src/components/formula/queryModeFunctions.ts` | 📉 -38 B (-0.16%) | 23 kB → 22.97 kB `node_modules/@codemirror/language/dist/index.js` | 📉 -12.41 kB (-22.55%) | 55 kB → 42.6 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** Asset | File Size | % Changed ----- | --------- | --------- static/js/FormulaEditor.js | 730.44 kB → 814.39 kB (+83.95 kB) | +11.49% **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/index.js | 1.85 MB | 0% static/js/BackgroundImage.js | 121.09 kB | 0% static/js/PayeeRuleCountLabel.js | 52.12 kB | 0% static/js/ReportRouter.js | 1.18 MB | 0% static/js/ScheduleEditForm.js | 136.13 kB | 0% static/js/TransactionEdit.js | 185.13 kB | 0% static/js/TransactionList.js | 82.8 kB | 0% static/js/Value.js | 4.34 MB | 0% static/js/ca.js | 191.72 kB | 0% static/js/chart-theme.js | 705.55 kB | 0% static/js/client.js | 450.92 kB | 0% static/js/da.js | 104.4 kB | 0% static/js/de.js | 174.12 kB | 0% static/js/en-GB.js | 8.2 kB | 0% static/js/en.js | 176.5 kB | 0% static/js/es.js | 181.54 kB | 0% static/js/extends.js | 486.5 kB | 0% static/js/fr.js | 176.79 kB | 0% static/js/indexeddb-main-thread-worker-e59fee74.js | 13.46 kB | 0% static/js/it.js | 165.68 kB | 0% static/js/narrow.js | 363.68 kB | 0% static/js/nb-NO.js | 151.58 kB | 0% static/js/nl.js | 108.66 kB | 0% static/js/pl.js | 88.34 kB | 0% static/js/pt-BR.js | 177.18 kB | 0% static/js/resize-observer.js | 18.06 kB | 0% static/js/th.js | 178.91 kB | 0% static/js/theme.js | 30.79 kB | 0% static/js/uk.js | 212.28 kB | 0% static/js/useFormatList.js | 9.86 kB | 0% static/js/wide.js | 292 B | 0% static/js/workbox-window.prod.es5.js | 7.33 kB | 0% static/js/zh-Hans.js | 110.19 kB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 4.85 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.Dtv5lNQw.js | 4.85 MB | 0% </div> </details> --- #### api **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 3.88 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- index.js | 3.88 MB | 0% </div> </details> --- #### cli **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 7.91 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- cli.js | 7.91 MB | 0% </div> </details> </details> <!--- bundlestats-action-comment key:combined end ---> --- <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-05-01 04:26:42 -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#56521