« 2006年7月 | トップページ | 2006年9月 »

2006/08/31

Tracいいっ!

週末をつぶしておうちPCにインストールしたTracですが、その後も毎晩遅くまでblogを徘徊して情報集めたり、プラグインをインストールしたりTrac不眠の毎日です。

会社で提案してみたところ、とりあえずわたしが参加しているプロジェクトでためしに使ってみることになりました。で、帰り際の1時間ちょっとを使って、開発用サーバ機(CentOS)にインストール。PythonのSubversionバインディングがらみでエラー出ててリポジトリブラウザが動いてないけど、その修正は明日。

実は、会社では先週の月曜日あたりにAll-In-One-Tracを自分の開発マシン(Windows XP)にインストールして、ひとりTracしてたのでした。1週間ほど、しかも個人的に使っただけですが、その便利さは十分わかりましたよ。何が便利かって、

  • ソース見てて今やってる作業とは関係ないところで「あれ?ここ変」と思ったときに、チケット登録しておけばちゃんと管理できる
  • チケットからリポジトリブラウザ、リポジトリブラウザからチケット、さらにはWikiと横断的にリンクを貼れる
  • 直したはずのバグが直ってなかったとき、チケットに貼ったチェンジログのリンクを辿れば、すぐにタコだった修正個所が確認できる
  • 画面がなかなかカッコイイ
  • チケットをCloseするのが快感!!(笑

ひとりTracでも相当大きなメリットを享受できるので、チーム使った場合にはほんとに効果絶大だと思う。他のメンバーの作業を覗いて、いいアイディアをいただく、なんてことも気軽にできるので、チームのレベルアップにも役立つんじゃないかと思う。あそこってどうやって実装したのかな、とか思ってもとソースを漁るのが面倒でなかなかできなかったりするので。

しかも、うちの会社は基本的に社内開発なので、運営サイドの部署との連携にも使えそう。

ただ、素のTracだとちょっと不満もある。たとえば、

  1. 管理がコマンドラインツールのみ
  2. 一度ログインするとログアウトしてもブラウザを閉じないと認証情報が消えない(Basic/Digest認証だからしょうがないんだけど)
  3. Wikiがちょっとシンプルすぎ
  4. チケットのワークフローにテストフェーズがない
  5. プロジェクト全体を一度に見回すことができない

ぱっと思いつくのはこれくらいかな。でも、わたしが思いつくくらいのことなので、やっぱりエライ人も同じことを思ったらしく。ちゃんと解決してくれるプラグインとかがあったりするみたいなんですね。

  1. WebAdminプラグイン紹介Wikiでんでんのハマリメモ
  2. AccountManager紹介Wiki
  3. MacroBazaar
  4. WorkFlowDisscussion紹介blog
  5. TraM紹介blog

ほかにも添付ファイルの文字バケ問題とかいろいろ気になってることはあるけど。今日はこれくらい。少しずつ調べて、試してみたらまたメモ書きます。

| | コメント (0) | トラックバック (0)
|

2006/08/29

WebAdminプラグインのインストールでハマリ

Tracの管理はすべてコマンドラインツールのtrac-adminで行います。コマンドラインツールでの管理は、バッチ処理とかもできるので便利だとは思います。でも、ちょっと権限を直したいようなときにも、サーバにリモートログインしてコマンド叩かなきゃならないってのはやはり面倒。

「Webインタフェースないのかな~」と思ってたらありました。その名もWebAdmin!さっそくインストール。

全プロジェクトで使いたいので、グローバルにインストールすることにします。

まずは、マニュアルの「Tracプラグイン」のページに書いてある通りに、setuptoolsをインストール。

# wget http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py

Python2.3の場合は、TracWebAdmin-0.1dev_r2440-py2.3.egg.zipをダウンロードして、TracWebAdmin-0.1dev_r2440-py2.3.eggにリネームしたものを/usr/lib/python2.3/site-packages/(CentOSの場合。このディレクトリがなければ多分別の場所です。locate lib/python2.3/site-packagesして探してください)にコピーすればいいみたい。

# wget http://trac.edgewall.org/attachment/wiki/WebAdmin/TracWebAdmin-0.1dev_r2440-py2.3.egg.zip
# cp TracWebAdmin-0.1dev_r2440-py2.3.egg.zip /usr/lib/python2.3/site-packages/TracWebAdmin-0.1dev_r2440-py2.3.egg

あとは、trac.iniの編集
# vi /home/trac/project/conf/trac.ini
(省略)
[components]
webadmin.* = enabled
↑この2行を追加

管理者ユーザにTRAC_ADMIN権限が与えられていないといけません。確認します。
# trac-admin /home/trac/trac/ permission list admin
User    Action         
------------------------
admin BROWSER_VIEW   
(省略)
admin  TRAC_ADMIN

TRAC_ADMINがない場合は、
# trac-admin /home/trac/trac/ permission add admin TRAC_ADMIN
で権限を追加します。

さて、これでOKのはず。

Oops...
Trac detected an internal error:

Can't extract file(s) to egg cache
The following error occurred while trying to extract file(s) to the Python egg
cache:

  [Errno 13] Permission denied: '/root/.python-eggs'

The Python egg cache directory is currently set to:

  /root/.python-eggs

Perhaps your account does not have write access to this directory? You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory.

がーん。メッセージ読むと、/root/.python-eggsにキャッシュ作ろうとしてるらしい。/rootに権限与えるわけにはいかないしなあ。。。環境変数PYTHON_EGG_CACHEを設定すればキャッシュ先を変えられるらしいけど。apacheにシェルはないし。ここでさんざん悩んだ末。マニュアルよく読んだらかいてあるじゃん。

プラグインのキャッシュの設定 ¶

(略)
PYTHON_EGG_CACHE を SetEnv ディレクティブを使用して Apache に設定するには以下のようにします:

SetEnv PYTHON_EGG_CACHE /path/to/dir

あ、そっか。そういえば、そんなディレクティブあったっけ。てことで。昨日編集した/etc/httpd/conf.d/python.confの<Location /projects>ブロックを修正。

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

これでWebAdminが動きました。きっと、setuptoolsをrootでインストールしちゃったのがまずかった?

| | コメント (3) | トラックバック (0)
|

2006/08/28

Tracの設定

Trac設定作業の流れ
1. プロジェクト環境の作成
2. Apacheの設定
3. 権限の設定

1. プロジェクト環境の設定
# mkdir /home/trac
# trac-admin /home/trac/project initenv
# chown -R apache.apache /home/trac/project <-書き忘れてました。(8/28追記)
trac-adminがプロジェクト環境の設定に必要な情報を聞いてきますので、答えていきます。

2. Apacheの設定(マルチプロジェクト対応)
mod_python用の設定は、/etc/httpd/conf.d/python.confに書きます。LocationMatchによりマルチプロジェクトに対応する設定です。
# vi /etc/httpd/conf.d/python.conf
<Location /projects>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /home/trac
PythonOption TracUriRoot /projects
</Location>

<LocationMatch "/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /etc/httpd/passwd/dav_svn.passwd
Require valid-user
SSLRequireSSL
</LocationMatch>
# /etc/rc.d/init.d/httpd restart

AuthUserFileには、Subversionの認証用に作成したのと同じパスワードファイルを指定するとよいでしょう。

これで、https://localhost/projectsにアクセスするとプロジェクトのリスト(今は1つだけ)が表示されます。リンクを辿れば、プロジェクトのTracページが表示されます。

3. 権限の設定
デフォルトでは、anonymousにたくさんの権限が与えられているので、必要に応じて削除します。次のように与えられている権限を確認したあと、不要な権限を削除します。

# trac-admin /home/trac/project permission list anonymous

User Action
--------------------------
anonymous BROWSER_VIEW
anonymous CHANGESET_VIEW
anonymous FILE_VIEW
anonymous LOG_VIEW
anonymous MILESTONE_VIEW
anonymous REPORT_SQL_VIEW
anonymous REPORT_VIEW
anonymous ROADMAP_VIEW
anonymous SEARCH_VIEW
anonymous TICKET_APPEND
anonymous TICKET_CHGPROP
anonymous TICKET_CREATE
anonymous TICKET_MODIFY
anonymous TICKET_VIEW
anonymous TIMELINE_VIEW
anonymous WIKI_CREATE
anonymous WIKI_MODIFY
anonymous WIKI_VIEW
(略)

# trac-admin /home/trac/project permission remove anonymous REPORT_DELETE WIKI_CREATE WIKI_MODIFY REPORT_SQL_VIEW

あとは、ユーザごとに必要な権限を与えていきます。
# trac-admin /home/trac/project permission add <ユーザ名> <権限リスト>

Tracのインストール、設定については、TracのWikiにはじめから入っているマニュアルに詳しく書いてあります。
インストールとプロジェクト環境の設定
https://mercure.homeip.net/projects/trac/wiki/TracInstall

Apache(mod_python)の設定
https://mercure.homeip.net/projects/trac/wiki/TracModPython

権限の設定
https://mercure.homeip.net/projects/trac/wiki/TracPermissions

これで一応インストールはおしまい。あとはプラグインを入れたりしていろいろいじってみます。

| | コメント (0) | トラックバック (1)
|

2006/08/26

Subversion+Tracのインストール

うちの会社、バージョン管理使ってないので、Subversion+Tracを使ったら便利じゃないかなーと思って、自宅のマシンにインストールしてみました。会社の開発用サーバがCentOSなので、自宅の空いてるPCにCentOSをインストールするところから。

CentOSはここを参考にしてインストール。
http://centossrv.com/

1. apache、subversionのインストール
ApacheとSubversionの連携のためのmod_dav_svn、暗号化のためのmod_sslも一緒にインストールする。
# yum -y install httpd
# yum -y install subversion
# yum -y install mod_dav_svn
# yum -y install mod_ssl

2. Apacheの起動、リブート時の自動起動の設定
# /etc/rc.d/init.d/httpd start
# chkconfig httpd on
# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

3. Subversionリポジトリの作成
# mkdir /home/svn
# cd /home/svn
# svnadmin create /home/svn/project
# svn mkdir file:///home/svn/project/trunk file:///home/svn/project/tags file:///home/svn/project/branches -m 'Create trunk, tags, and branches.'
# chown -R apache.apache /home/svn/project

4. Subversionの設定
/etc/httpd/conf.d/subversion.conf を編集
以下の設定を追加する。
<Location /mojavi>
    DAV svn
    SVNPath /home/svn/project
    AuthType Basic
    AuthName "Project repository"
    AuthUserFile /etc/httpd/passwd/dav_svn.passwd
    Require valid-user
</Location>

Basic認証用のパスワードファイルを作成する。
# /usr/bin/htpasswd -c /etc/httpd/passwd/dav_svn.passwd denden
New passwd: <パスワードを入力>
Re-Type new password: <パスワードを入力>

5. tracのインストールに必要なものをインストール
mod_python
ClearSilver
Python-XML
JapaneseCodecs
# yum -y install mod_python

# wget http://www.clearsilver.net/downloads/clearsilver-0.10.3.tar.gz
# tar xvfz clearsilver-0.10.3.tar.gz
# cd clearsilver-0.10.3
# ../configure --with-python=/usr/bin/python
# make install

# wget http://jaist.dl.sourceforge.net/sourceforge/pyxml/PyXML-0.8.4.tar.gz
# tar xvfz PyXML-0.8.4.tar.gz
# cd PyXML-0.8.4
# python setup.py install

# wget http://ftp.python.jp/pub/JapaneseCodecs/JapaneseCodecs-1.4.10.tar.gz
# tar xvfz JapaneseCodecs-1.4.10.tar.gz
# cd JapaneseCodecs-1.4.10
# python setup.py install

6. trac-jaのインストール
# wget http://www.i-act.co.jp/project/products/downloads/trac-0.9.6-ja-1.zip
# unzip trac-0.9.6-ja-1.zip
# cd trac-0.9.6-ja-1
# python setup.py install

はあ。とりあえず、SubversionとTracのインストールは完了。
Trac関係の設定は明日。

8/27 追記
trac-jaはインタアクト株式会社さんが公開&されている、日本語化されたTracです。メニューやメッセージはもとより、Wikiに入ってくるマニュアルまでほぼ完全に日本語化されています。

8/28 追記
<、>が消えちゃってました。実態参照で書かないとだめなんだ。。。

| | コメント (0) | トラックバック (1)
|

« 2006年7月 | トップページ | 2006年9月 »