Automatically execute Lint before commit with lint-staged and huskey
potato4d opened this issue · comments
Takuma HANATANI commented
About
翻訳のレビュー開始時に CI のステータスが Failed の状態からはじまることが稀にあります。
多くは TextLint の実行漏れによるもので、 Lint 方法についてはガイドに書かれているものの、貢献者も人間ですので、忘れることがあるかと思います。
対処方法として、 Git の pre-commit フックを利用して特定の NPM Scripts を実行可能な husky と、その実行対象をコミット対象のファイルに限定できる lint-staged を組み合わせて、 Lint にコケるコミットを打てなくする方法を提案したいです。
何度か入れたことがあるので、近い内に例の Pull Request を出しておきます。
議論点
鬱陶しくないか
個人的には全員が十分に意識できる環境であればノイズとなるだけなのでこれは必要ないと思っています。
しかし、 OSS はその性質上入れておくメリットのほうが煩雑さを上回ることができるため、これを導入できればと思います。
どうしてもノイズとなる場合は、 git commit -n
を行うことによって、スキップできますので、一応その道も用意されています。
Soichiro Miki commented
いいと思います。やるのは lint:text だけでですか?
Takuma HANATANI commented
そうですね。 JavaScript のエラーも検出できるのは利点となる一方で、翻訳だけしにきたにも関わらずなにかの都合や環境依存でコケてしまった場合にストレスになると思うので、最小限にしておくとよいかと思っています。