online-judge-tools / verification-helper

a testing framework for snippet libraries used in competitive programming
MIT License
207 stars 53 forks source link

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

Open ageprocpp opened 2 years ago

ageprocpp commented 2 years ago

Description / 説明

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

Motivation / 動機

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

Other notes / その他

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

kmyk commented 2 years ago

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

ageprocpp commented 2 years ago

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

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

kmyk commented 2 years ago

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

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