Tracインストール成功 & カスタマイズ

Apache2.0.59 + mod_python + 基本認証で動いた。Apache2系+FastCGIRailsで懲りているので動かす気は起きない。
これだけでもアクセス権限で躓いたりと、結構な時間を食ってしまった。


mod_pythonTracを動かすhttpd.confの内容。最後にコピペすればOK。

LoadModule python_module modules/mod_python.so

<Location /trac-project>
   SetHandler mod_python
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnv /path/to/trac
</Location>

<Location "/trac-project/login">
  Require valid-user
  AuthType Basic
  AuthName "認証ダイアログで表示される文字列"
  AuthUserFile /path/to/htpasswd
</Location>


こちらのサイトからほとんど丸パクリさせていただきました。感謝。
インストール - cooldaemonの備忘録


後はカスタマイズ。

チケットタイプ・優先度・重要度のカスタマイズ(日本語化)

優先度 priorityコマンド
重要度 severityコマンド
チケットタイプ ticket_typeコマンド

となる。
如何にフレンドリーかつ実用的な名前を付けられるかがTrac導入成功の分水嶺になる可能性が高いので、慎重に考える。
参考例
Trac - 鈍重な開発を俊敏にしていく日記 - agileグループ


ここは定型的なタスクになると思うので後述のWebAdminPluginを入れてブラウザからポチポチやるよりもバッチ化した方が良いと思う。
こんな感じ。

trac-admin /tmp/tractest/test priority change blocker やらないと休めない
trac-admin /tmp/tractest/test priority change critical やらないと帰れない
trac-admin /tmp/tractest/test priority change major ちゃんとやる(期限決定・優先度中)
trac-admin /tmp/tractest/test priority change minor あとでやる(期限決定・優先度低)
trac-admin /tmp/tractest/test priority change trivial いつかやりたい(期限未決定)
trac-admin /tmp/tractest/test severity add 社運にかかわる
trac-admin /tmp/tractest/test severity add サービスにかかわる
trac-admin /tmp/tractest/test severity add 髪の毛にかかわる
trac-admin /tmp/tractest/test severity add ボーナスにかかわる
trac-admin /tmp/tractest/test ticket_type change defect バグ報告
trac-admin /tmp/tractest/test ticket_type change enhancement 機能拡張要求
trac-admin /tmp/tractest/test ticket_type change task タスク

管理者のアカウントにTRAC_ADMIN権限を割り当て

TRAC_ADMIN権限は後述のWebAdminPluginを使う際に必要。

permission add username TRAC_ADMIN

WebAdminPluginをインストール

Trac0.9だとパッケージで提供されているが、0.10系だとsvnからチェックアウトしてセットアップしなければいけないようだ。
しかもPython-Eggと言う形式にしなければならないらしい。(Javaで言うjarのようなもの?)

で、Python-Eggの作成にはsetuptoolsと言うパッケージが必要。
Trac公式に導入手順が書かれていたのでそのままやったら入った。
TracPlugins – The Trac Project


確認はやっぱりpythonコマンドで。

>>> import setuptools
>>> #=>エラーが起こらない


Python-Eggなパッケージ(ただのZip?)を作るにはsetup.py buildではダメらしい。
setup.pyのオプションをbdist_eggとする必要がある。

python setup.py bdist_egg
python setup.py install

これでインストール完了。ログに

Installed /usr/local/lib/python2.5/site-packages/TracWebAdmin-0.1.2dev_r4429-py2.5.egg

こう書かれていたので安心。2.3の方に入らないでちゃんと2.5の方に入っている。


後はTrac.iniに以下を追記する。

[components]
webadmin.* = enabled

Apacheを再起動してTRAC_ADMIN権限を持つユーザでログインすれば、右端のタブに「Admin」メニューが追加されている。

2007/5/27 追記

環境によってはApacheプロセスがPython-Eggのキャッシュの保存先にアクセスできないと言うエラーが発生するらしい。こちらに対処方が書いてある。
http://blog.denden-cafe.com/blog/2006/08/webadmin_c01a.html

Apacheの該当箇所のディレクティブを引用させていただく。


SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /home/trac
PythonOption TracUriRoot /projects
SetEnv PYTHON_EGG_CACHE /home/trac/.python-eggs ←--この行を追加

http://blog.denden-cafe.com/blog/2006/08/webadmin_c01a.html

Tracプラグインに関する公式ドキュメントはTracPlugins – The Trac Projectにある。
日本語版のドキュメント、インストールすれば読めるんだけど、どっかネットに公開されてたりしないのかな。

文字コードの設定

Trac文字コードを自動で識別する機構を備えているためか、Trac.iniのデフォルト文字コード

default_charset = iso-8859-15

となっている。
これだと自分の環境では文字化けしたのでUTF-8に変更。

default_charset = UTF-8

文字コードの自動判別の技術的な情報については
ヤマロぶろぐ : Tracでファイルの文字コードを自動判定 - livedoor Blog(ブログ)
Loading...
辺りが参考になる。

Trac Wikiの強化

他のTracなサイトを見ているとほぼ必ずあるのが「Table of Contents」と言う目次っぽい存在。
なんだろうと思って探してみると、TocMacroと言うpluginで実現しているらしい。
http://blog.airs.co.jp/2007/2/3/trac_wiki

インストール手順も上記のサイトで詳しく書かれている。ついでにTracNavも入れる事に。
自分がやった手順は若干違ったのでメモしておく。

TocMacroのインストール
svn co http://trac-hacks.org/svn/tocmacro
cd tocmacro/0.10/
python setup.py bdist_egg
python setup.py install
TracNavのインストール
svn co http://svn.ipd.uka.de/repos/javaparty/JP/trac/plugins/tracnav
cd tracnav/
python setup.py bdist_egg
python setup.py install
Trac.iniの設定
[components]
...
tractoc.* = enabled
tracnav.* = enabled
Apacheの再起動(必須)

希望

  1. 担当者・関係者をユーザ一覧のコンボボックスにしたい。
  2. .rhtmlなファイルがリポジトリブラウザでシンタックスハイライトされない(SilverCityの問題)。ただし、0.11からはPygmentsが推奨されるようだ(SilverCity – The Trac Project)。