- blogs:
- cles::blog

Software Evolution Storylines でリポジトリを可視化する


Software Evolution Storylines という、リポジトリを可視化するツールを見つけたのでちょっと使ってみました。
Michael Ogawa | Software Evolution Storylines
Data comes from the project repository logs. Time flows horizontally from left to right. At each timestep (usually a month) developers are clustered by the files they modify. A histogram at the bottom shows the volume and type of file committed. You can mouse-over individual lines to see them better.
この手のツールはStatCVSやStatSVN、Gourceなどいろいろあるなかでは比較的シンプルなツールです。ビジュアライズ方法についてはxkcd: Movie Narrative Chartsに影響をうけた模様。
動かすのにちょっと苦戦しましたが、とりあえずNucleusCMSのリポジトリを題材に可視化してみました。画像をSVG形式で出力したもの(NucleusCMS Storylines)もありますので、FirefoxやChromeの方はこちらだと高解像度の物が閲覧できます。
以下、動かし方メモ。
† 作業メモ
研究用のソフトウェアなのでちょっと動かすのにひとクセがあります。
まず下記の2つをダウンロードしておきます。そのほかにJDKも必要です。
・Processing
・JUNG toolkit
Processingは一種のスクリプトの開発環境で、Software Evolution Storylines はその上で動くスクリプトになっています。プラットフォームごとにバイナリが用意されているので、自分の環境に合ったものをダウンロードします。現状の最新板は1.5.1ですが、うまく動かなかったので、1.2.1を使いました。このツールは processing.exe から起動させることが出来ます。
問題はJUNG toolkitの方。スクリプトから呼び出されるライブラリになるのですが、これを何処に配置すれば動くのか全く分からず困ってしまいました。下記のようなメッセージが出ているのですが、何処においても読み込んでくれません。
Note that release 1.0, libraries must be installed in a folder named 'libraries' inside the 'sketchbook' folder.
仕方がないのでググってみると、解説してくれているエントリを見つけたのでこれを参考になんとか動かすことができました。
[Processing][仕様]外部ライブラリ(*.jar)の設置方法 : うえちょこ@ぼろぐ
一番簡単な方法としては、該当スケッチのフォルダに、codeフォルダを作成して、その中に外部ライブラリのjarファイルを置きます。
あとは Cluster.pde でちょっとしたエラーが出るので、これはプログラムの冒頭に下記を入れて回避しました。
ログファイルについてはあらかじめXML形式にコンバートしておく必要があります。Pythonのスクリプトなので以下のような感じで、プロジェクトをチェックアウトしてログを取得し、コンバートする必要があります。
あとは、必要に応じてconfigを書き換えて実行するだけです。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4335
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110612)
3 . 年次の人間ドックへ(110243)
4 . 2023 年分の確定申告完了!(1つめ)(109784)
5 . 三菱鉛筆がラミーを買収(109687)