2012年1月10日火曜日

bugspots を使ってみた

bugspots は、グーグルのバグ予測アルゴリズムを実装したツールです。

こちらの紹介記事
グーグルのバグ予測アルゴリズムを実装したツール「bugspots」、オープンソースで公開
を参考に、Windows + cygwin + svn で bugspots を使ってみました。

cygwin の準備
bugspots を使用するには、git, ruby が必要になるのでインストールしておきます。
また、bugspots のインストールに gem が必要になります。
このままでは、gem を使えないので以下から rubygems-*.*.*.tgz をダウンロードします。
http://rubyforge.org/frs/?group_id=126
適当な場所に解凍し、setup.rb を実行します。
$ tar xvzf rubygems-1.8.15.tgz 
$ cd rubygems-1.8.15
$ ruby setup.rb

今回は、svn のリポジトリに対して bugspots を使うので git-svn もインストールしておきます。

bugspots のインストール
bugspots のダウンロードページから tar.gz ファイルをダウンロードします。
解凍して、gem install を実行します。
$ tar xvzf igrigorik-bugspots-v0.1.0-3-ga9debf9.tar.gz
$ cd igrigorik-bugspots-a9debf9
$ gem install bugspots
2012/03/06 : ダウンロードは不要でした。

gem install を実行します。
$ gem install bugspots

これで、bugspots を使う準備が整いました。

bugspots を実行する
git を使っていれば、あとは
$ git bugspots /path/to/repo 
とすればいいだけなのですが、svn に対して bugspots を使用する場合は、git svn clone をします。
あとは、clone したパスで bugspots を実行するだけです。
$ git svn clone /path/to/repo git-repo
$ cd git-repo
$ git bugspots ./

実際に使ってみて
まず最初に、個人的なプログラム群に使って見ました。
Scanning ./ repo
        Found 0 bugfix commits, with 0 hotspots:

        Fixes:

        Hotspots:
何も出ません。
bugspots は fixes や closed がついたコメントがなければ、なにも教えてくれません。
ちゃんと、コミットメッセージを書け。ということです。

ついで、会社のプロジェクトに対して実行してみたところ、
ちゃんとレポートが出力されました。

しかし、この情報をどのように活用したら良いのかイマイチ…
とりあえず、コードレビューをすべきファイルの指標にはなるのかなぁーと思いました。



bugspots-svn
"bugspots" でグーグル検索すると上の方に出てくるので、これを読んでいる過程で気づいた方もいるかもしれません。
今回、git-svn で clone を作成して bugspots を適用しましたが、
bugspots-svn を使えば svn のリポジトリに対して直接適用できそうです。

spawn.h
最近、家でインストールしたときに spawn.h がなくてインストールに失敗しました。
こちらハングアップの日々 - 2012/06/06を参考に posix-spawn をインストールしたところ、bugspots も正常にインストールできました。
2012/10/2 追記

0 件のコメント:

コメントを投稿