Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

eslintが遅いので結果をキャッシュしたい #14184

Closed
KisaragiEffective opened this issue Jul 12, 2024 · 10 comments · Fixed by #14204
Closed

eslintが遅いので結果をキャッシュしたい #14184

KisaragiEffective opened this issue Jul 12, 2024 · 10 comments · Fixed by #14204
Labels
🛠️Dev Development of Misskey itself

Comments

@KisaragiEffective
Copy link
Collaborator

KisaragiEffective commented Jul 12, 2024

eslintが遅い。特にフロントエンドは毎回8分ぐらいかかる。
https://madogiwa0124.hatenablog.com/entry/2022/08/07/112051 を参考にしてキャッシュしたい

@KisaragiEffective KisaragiEffective added the 🛠️Dev Development of Misskey itself label Jul 12, 2024
@1673beta
Copy link
Contributor

Lint目的ならoxlintとかどうでしょうか。
私のリポジトリだと11分かかったフロントエンドのLintが50秒かからずに終わるようになりました
https://oxc.rs/docs/guide/usage/linter.html

@KisaragiEffective
Copy link
Collaborator Author

KisaragiEffective commented Jul 12, 2024

ありがとうございます。それも選択肢の一つかとは存じますが、少なくとも私は以下の2点の懸念から一旦見送りたいと考えています。

  1. サードパーティーのプラグインが移行できない可能性がある点。
  2. 実際に許容可能な実行時間のラインよりも大幅に短縮される可能性はあるものの、労力に見合わない可能性がある点。

1についてですが、例えばfrontendではvue/*系列のルールを多数採用していますが、 oxc-project/oxc#2575 によると一部のルールが移行できない可能性が示唆されています。
2についてですが、現状のMisskeyの開発においては、主にbackendfrontendmisskey-jsのリント及びテストが並列に走ります。PRをマージするためにそれらのワークフローすべてが通るまでの時間を短縮することを考えたときに、リンターのみを短縮してもボトルネックがbackendのテスト (現行は3分ぐらいです) に移ると考えられます。しかし、oxlintへの移行のほうが必然的に作業量が多くなることが考えられるため、もしeslintのキャッシュを活用してリンターがボトルネックになっている現状を解消できるのであれば、一旦はeslintを活用するままにしておくというのが労力的に現実的な選択だと考えられます。(補足: oxlintへの移行を排除するものではありません)

@fruitriin
Copy link
Contributor

es lintってキャッシュできたんだ!
eslint標準に入ってるってことはバグの心配もすくなそうだしよさそう
pnpm clean-allの中にeslintのキャッシュ削除も入ってるとなおよしかも
(記事の中ではnode_modules配下に置き場所を変更してるから不要かも

@fruitriin
Copy link
Contributor

サクッと試してみてダメそうならoxlintって話まででてきてめでたい

@KisaragiEffective
Copy link
Collaborator Author

なんか有意な変化がない

@anatawa12
Copy link
Member

https://github.com/misskey-dev/misskey/actions/runs/9927973726/job/27423684884#step:13:2

Warning: Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.

そもそもキャッシュが保存されてない。

@KisaragiEffective
Copy link
Collaborator Author

--cache-location、各子プロジェクトに対する相対パス説が出てきた

@anatawa12
Copy link
Member

anatawa12 commented Jul 15, 2024

そもそもeslintがpnpmによって実行される時点ではcwdは書くプロジェクトのはずなのでそう

@anatawa12
Copy link
Member

見直してみるとキャッシュがfrontendとbackendとで共有される形にもなってるので色々細かくいじらないといけなさそう

@KisaragiEffective
Copy link
Collaborator Author

Implemented by #14506

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🛠️Dev Development of Misskey itself
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants