Trac のチケットに親子関係を持たせるプラグインをインストール

今やってる案件で、チケットに親子関係を持たせたくて、プラグインを探していました。探したところ、MasterTicketsPlugin というプラグインを入れれば、各チケットに関連するチケットへのリンクを貼ることができるみたいです。早速入れてみました。

GraphvizPlugin のインストール

GraphvizPlugin もインストールすると、依存関係のグラフが見れるようになるそうなので入れてみました。詳細は GraphvizPlugin のページで。
前提として、/home/trac/hoge に、hoge プロジェクトがあることにします。Trac のバージョンは、0.11 系です。

  • インストールは、trac/plugin のところで行うので移動。
  • 上記のページの通り、easy_install でインストール開始。
cd /home/trac/hoge/plugin
easy_install http://trac-hacks.org/svn/graphvizplugin/0.11
# 問題なければ再起動。
service httpd restart
  • Trac のブラウザから 管理>プラグインから選択して有効化。(直接 trac.ini を編集しても OK)
# こうなってれば OK
[components]
...
graphviz.* = enabled
...
  • ステータスとか確認して、OK そうなら trac.ini をコミット。
# ステータスとか Diff を確認
svn diff
svn status
# trac.ini だけ指定して
svn commit --username=yunkichi trac.ini -m 'refs #168;MasterTicketsPlugin の導入に必要な、Graphviz Plugin をインストールし、有効化'

MasterTicketsPlugin のインストール

今度は実際に親子関係を作ってくれるプラグインをインストールします。
svn 管理の状態で公開さrているので、checkout で取得します。

  • インストールは、trac/plugin のところで行う。(ソースの取得も同じ所で)
# Trac 0.10 用と 0.11 用があるけど、とりあえずディレクトリごと取得
svn co http://trac-hacks.org/svn/masterticketsplugin/
  • masterticketsplugin というディレクトリ名で取得できているはずなので、その中に移動。
  • Trac のバージョンは、0.11 なので、そちらに。
  • mastertickets というディレクトリと setup.py というファイルがあるのを確認。
cd masterticketsplugin/0.11
[root@hoge 0.11]# ls
 mastertickets  setup.py
# setup.py があるので、egg ファイルを作成。下記コマンドをそのまま実行
python setup.py bdist_egg
  • すると、いろいろファイルとかディレクトリが作成されるので、egg ファイルが生成された場所に移動。
    • たぶん dist の中なのでそこに移動。
  • easy_install コマンドで、インストール
[root@hoge 0.11]# ls
TracMasterTickets.egg-info  build  dist  mastertickets  setup.py
[root@hoge 0.11]# cd dist
[root@wsasr dist]# ls
TracMasterTickets-2.1.3-py2.4.egg
easy_install TracMasterTickets-2.1.3-py2.4.egg
# 問題なければ再起動。
service httpd restart
  • Trac のブラウザから 管理>プラグインから選択して有効化。
  • blockedby や blocking だとわかりにくいので、親チケット、子チケットのように名称を変更。
    • ticket-custom の部分の日本語化は、直接 trac.ini をいじった方がいいかも。
# こうなってれば OK
[components]
mastertickets.api.masterticketssystem = enabled
mastertickets.web_ui.masterticketsmodule = enabled
...
# 
[ticket-custom]
blockedby = text
blockedby.label = 子チケット
blocking = text
blocking.label = 親チケット
  • ステータスとか確認して、OK そうなら trac.ini をコミット。
# ステータスとか Diff を確認
svn diff
svn status
# trac.ini だけ指定して
svn commit --username=yunkichi trac.ini -m 'refs #168:MasterTicketsPlugin を有効化'


ここまで来て気づきました。グラフが見れない
よく考えたら、graphvizプラグインはインストールしてたけど、graphviz 自体はインストールしてなかったんですね。ちゃんと GraphvizPlugin を見ていなかった私が悪いんですけど。
これをインストールしてからじゃないと、graphvizplugin は機能しません。(当たり前)

cd /etc/yum.repos.d/
wget http://www.graphviz.org/graphviz-rhel.repo
  • yum list でインストールできるものを確認して、インストール
[root@wsasr yum.repos.d]# yum list graphviz
Loaded plugins: fastestmirror, priorities
Repository rpmforge is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * addons: www.ftp.ne.jp
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
0 packages excluded due to repository priority protections
Available Packages
graphviz.i386
[root@wsasr yum.repos.d]# yum install graphviz.i386

これで親子関係を設定したチケットを開くと、右上に Depgraph というリンクがあるので、そこからグラフも見れるようになったはずです。よかった。

ついでに TicketDepPlugin をインストール

チケット内で親子関係を見やすくしてくれるプラグインがあったので,ついでに入れちゃいます。詳細は TicketDepPlugin のページです。

  • python 2.4 だとちゃんと動くよーっていう egg ファイルが公開されてたので、そのままインストール(サーバの python のバージョンが 2.4 だった)
  • egg ファイルだと、Trac の管理>プラグイン>ファイル選択>インストール>再起動 でインストールができて楽


あっという間にできちゃいました。今回はまったのは、graphviz をインストールしてなかった点ですね…。