verification-helper icon indicating copy to clipboard operation
verification-helper copied to clipboard

clone してきた library-checker-problems と .verify-helper/cache の削除機能が欲しい

Open ageprocpp opened this issue 3 years ago • 3 comments

Description / 説明

.verify-helper/cache と、library-checker-problems を clone してきたところ(手元の MacBook だと ~/Library/Caches/online-judge-tools/ )の中身が重いので、消す機能が欲しいです

Motivation / 動機

手元の MacBook のストレージ容量がかなりかつかつなんですが、諸々をアップデートしたい時などにストレージが空いていないと、手動で rm して空けてあげなければならなくて面倒です .verify-helper/cache は見つけやすいのでまだいいんですが、キャッシュが数 GB 圧迫されているのは分かりにくかったので、消す機能が実装されていると嬉しさがあります

Other notes / その他

後者は oj 本体に投げるべきだったかもしれませんが、コードをさらっと見てもどっちに投げるべきか判別できなかったのでまとめてこっちに投げました。

ageprocpp avatar Aug 30 '21 14:08 ageprocpp

$ oj-verify delete-cache のようなコマンドがほしいということであってますか? ストレージがかつかつだとしんどいのは分かるのですが、できればそのような機能の追加は避けたさがあります。 理由: 使う人の人数も使われる頻度も少なそうなため。「.verify-helper/cache と ~/Library/Caches/online-judge-tools/ は消してしまっても大丈夫です」とドキュメントに書いておけば十分そう。コマンドにすると実装だけでなくテストを書いたり互換性を気にしたりしないとだめ

  • disk full になったときの例外を catch して「HINT: こことここを消せ」って表示するくらいならありだと思います (実際に disk full でないと動作検証できないので私は実装できないけど)
  • 手動でコマンドを叩くのでなくて自動でいい感じにキャッシュを消すという選択肢もありますが、環境依存の闇が待っていそうなのでやりたくないです

kmyk avatar Aug 30 '21 15:08 kmyk

コマンドにしたくないのは了解しました。

clone 先のリポジトリは utils.user_cache_dir で取れるみたい(参考 : https://github.com/online-judge-tools/api-client/blob/master/onlinejudge/service/library_checker.py )なので、ここから直接 rm のコマンドを叩けば消すこと自体はできそうだと思ったんですが、需要を考えたらドキュメントに書くだけで十分そうですね

ageprocpp avatar Sep 05 '21 09:09 ageprocpp

気付いたんですけど、.verify-helper/cache の中身を圧縮して保存しておけばいい気がします。Pyhton の zlib とかを使ってやればできるし、これなら環境依存の問題もないしいけると思う。キャッシュのファイルのフォーマットを変更することになるので互換性の問題があるけど、それさえ気を付ければちゃんと動くはず。

@ageprocpp もしまだ苦しんでいて圧縮の方針に興味があるならプルリク挑戦してみてほしい

kmyk avatar Sep 14 '21 16:09 kmyk