続・ツールいじり

昨日の続き。

reviewboard のパッチ

reviewboard を触ってみた。

昨日は管理者ガイドをみて開発環境を構築しようとがんばっていたのだけど、管理者ガイドは運用環境向けに書かれたもので、開発環境については触れられてなかった。

今日はローカルでソースからドキュメントをビルドしてたら、ソースには開発向けのドキュメントのみが付属していることに気付いた。そっか。開発ドキュメントは別だったのかと気付いて開発環境の構築方法が分かった。

業務では Subversion を使っている。reviewboard で diff をアップする際、日本語環境だと diff のリビジョン番号のところがローカライズされる。reviewboard がこの日本語の「リビジョン」をパースできないのでエラーになる。英語の diff を生成すれば良いだけだけど、この手の環境要因で正常なデータを処理できないというのもおかしな気がして修正してみることにした。

 Index: test.txt
 =======================
 --- test.txt	(リビジョン 0)
 +++ test.txt	(作業コピー)
 @@ -0,0 +1 @@
 +test

パッチは pull request ではなく reviewboard でレビューするとあったので試しに送ってみた。

登録した瞬間、review bot が diff のコードのみ pep8 を実行してちょっと驚いた。もっと言えば、そもそも元々のコードも pep8 に遵守しているわけではないのに、、、

あと修正していて正規表現のグルーピングでこんな表現できるんだと初めて知った。

(?:...)
正規表現の丸括弧の取り込まないバージョンです。どのような正規表現が丸括弧内にあってもマッチしますが、グループによってマッチされたサブ文字列は、マッチを実行したあと検索されることも、あるいは後でパターンで参照されることもできません 。

7.2. re --- 正規表現操作 — Python 2.7.16 ドキュメント

reviewboard は Django で開発されている。昨日は専用ツールなのにパッとしない的なこと言ってしまったけど、管理画面のスクリーンショットとコードを見たらかなりがんばってるなーと感心した。Django の管理画面をカスタマイズするの大変だから。グラフを生成するツールの参考にもなりそう。