[PR #6428] [MERGED] refactor: replace eslint-plugin-import with eslint-plugin-perfectionist for import sorting #36711

Closed
opened 2026-04-20 23:33:36 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/6428
Author: @MatissJanis
Created: 12/16/2025
Status: Merged
Merged: 12/16/2025
Merged by: @MatissJanis

Base: masterHead: matiss/replace-import-plugin-with-perfectionist


📝 Commits (1)

  • f7e8d80 refactor: replace eslint-plugin-import with eslint-plugin-perfectionist for import sorting

📊 Changes

12 files changed (+144 additions, -208 deletions)

View changed files

📝 eslint.config.mjs (+24 -32)
📝 package.json (+1 -1)
📝 packages/api/index.ts (+0 -1)
📝 packages/api/utils.ts (+0 -1)
📝 packages/ci-actions/bin/get-next-package-version.js (+0 -1)
📝 packages/desktop-client/src/components/formula/codeMirror-excelLanguage.tsx (+1 -1)
📝 packages/desktop-client/src/index.tsx (+1 -3)
📝 packages/desktop-client/src/setupTests.js (+1 -0)
📝 packages/desktop-electron/index.ts (+0 -1)
📝 packages/sync-server/bin/actual-server.js (+0 -1)
upcoming-release-notes/6428.md (+6 -0)
📝 yarn.lock (+110 -166)

📄 Description

why replace the plugin?

oxlint/oxfmt uses eslint-plugin-perfectionist, but it does not yet expose customGroups config option. So we can't swap to using oxc yet.. but we can prepare the way

why remove extension rule?

that's the only remaining import eslint rule and it's taking by far the most time (> 25%). Thus removing it saves us some time + we get rid of the extra dependency. IMO that's a good trade-off.

oxlint also has this rule, but it does not match the eslint one and reports a lot of false negative issues.


🔄 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/6428 **Author:** [@MatissJanis](https://github.com/MatissJanis) **Created:** 12/16/2025 **Status:** ✅ Merged **Merged:** 12/16/2025 **Merged by:** [@MatissJanis](https://github.com/MatissJanis) **Base:** `master` ← **Head:** `matiss/replace-import-plugin-with-perfectionist` --- ### 📝 Commits (1) - [`f7e8d80`](https://github.com/actualbudget/actual/commit/f7e8d808f9ecf261f1090a9152f04976ffb598b4) refactor: replace eslint-plugin-import with eslint-plugin-perfectionist for import sorting ### 📊 Changes **12 files changed** (+144 additions, -208 deletions) <details> <summary>View changed files</summary> 📝 `eslint.config.mjs` (+24 -32) 📝 `package.json` (+1 -1) 📝 `packages/api/index.ts` (+0 -1) 📝 `packages/api/utils.ts` (+0 -1) 📝 `packages/ci-actions/bin/get-next-package-version.js` (+0 -1) 📝 `packages/desktop-client/src/components/formula/codeMirror-excelLanguage.tsx` (+1 -1) 📝 `packages/desktop-client/src/index.tsx` (+1 -3) 📝 `packages/desktop-client/src/setupTests.js` (+1 -0) 📝 `packages/desktop-electron/index.ts` (+0 -1) 📝 `packages/sync-server/bin/actual-server.js` (+0 -1) ➕ `upcoming-release-notes/6428.md` (+6 -0) 📝 `yarn.lock` (+110 -166) </details> ### 📄 Description **why replace the plugin?** oxlint/oxfmt uses `eslint-plugin-perfectionist`, but it does not yet expose `customGroups` config option. So we can't swap to using oxc yet.. but we can prepare the way **why remove extension rule?** that's the only remaining `import` eslint rule and it's taking by far the most time (> 25%). Thus removing it saves us some time + we get rid of the extra dependency. IMO that's a good trade-off. `oxlint` also has this rule, but it does not match the eslint one and reports a lot of false negative issues. --- <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-20 23:33:36 -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#36711