Webコンサルタントの愚痴とアジャイル,生産性向上,Trac,オープンソースなどの与太話
複数のTracプロジェクトをまとめてくれるTraM(Trac Multi)をインストールしてみた。
■インストール
■設定
□まとめる対象となる各プロジェクトに以下のように設定する。
※各所でtrac.ticket.report.* = disabledに設定しないと動作しないという記述があったが、むしろこちらを設定した方が動かないように見える
□まとめプロジェクトとSVNレポジトリを作成
ここでまとめ用のプロジェクトとSubversionのレポジトリを作成する。プロジェクトのディレクトリはallでないといけない。
□続いてapacheの設定を行う
httpd.confもしくはそれに準ずるファイルで下記を
以下の通り変更する
Trac全体としてはhttpd.confは以下のようになる。
この後apacheを再起動しておく。
■使用感
これ結構いいね。プロジェクトが多数あるような場合、状況を一覧して鳥瞰するのに効果的。ソースのレポジトリも追えるし、チケットも一覧できる。これならXMLRPCでゴリゴリしなくても何とかなるかもしれない。
StractisticsPluginはプロジェクトの状況をFlashを使って視覚的に表示するプラグイン。
インストール
設定
インストールが終了すると上部のタブにStractisticsが追加される。
クリックすると状況が表示される。
現在表示されるものは下記の3つである。
導入に際してのオプションは下記の通りである。
WordpressMEがこの3月末で突然公開停止になったのに伴い、このブログのWordpressもME2.1から、本家版2.5.1に更新した。以前のME版ではEUC-JPの文字コードで運用していたのだが、本家版はUTF-8しかサポートしていないので、文字コードが変更になっているが、その他のプラグインや機能はすべてそのまま最新版にして動作させている。
#作業の際、一部時間帯において画面にエラーが出力されていた場合があった。酒飲みながらやってたので確認不足・・・。
つい先日現在進行中の案件のソースコードレビューへの同席を要請されたので、一応もし品質悪かったら謝るのは俺だしぃ、ということで同席してみた。
結果分かったことについて書いておく。(前から分かっているけどさ)
そう考えるとXPのペアプロってのはやはり効果がありそうだ。早期からレビューしっぱなしだし小手先の実装はレビューワーが許さないし。
ペアプロしたことによる工数と品質の関係を自分の組織に当てはめて明らかに出来れば良いなぁ。
■必要なもの
Trac XML-RPCプラグイン
なお、Trac0.11の場合は本体にXML-RPCプラグインが含まれるようになったので不要
Trac0.10の場合はインストール後に設定ファイルに以下を追記すること
またXMLRPCでアクセスできるように権限を設定する必要があるので、authenticatedユーザに対してXML_RPC権限を付与すること。
(別にanonymousでも良いけどその場合誰でも何でもXMLRPC経由で出来ちゃう)
また操作の種類によってそれに応じた権限が必要になる。
■使い方
とりあえずPerlでやってみる。
CPANのモジュール使うとXMLRPCを簡単に扱えるので、まずはXMLRPC::Liteを導入する
テストコードは以下のようなカンジ。
肝は
・XMLRPCのリクエストURLは、認証が必要な場合については、/login/が間に入る。また認証が必要な場合はURLに含める。
・XMLRPCのライブラリにはXMLRPC::Liteを使い、callの箇所でAPI名、引数等を直接指定する。(別に自前で書いても良いけど面倒なだけだよ)
というくらい。
# RPC先
my $rpcurl = 'http://userid:password@serverna/trac_project_path/login/xmlrpc';
# チケットの優先度の一覧を取得
my $result=XMLRPC::Lite
-> proxy($rpcurl)
-> call('ticket.priority.getAll')
-> result;
print Dumper($result);
# ステータスがClosedでないチケットIDの一覧を取得
$result=XMLRPC::Lite
-> proxy($rpcurl)
-> call('ticket.query', 'status!=closed')
-> result;
print Dumper($result);
■使い方のアイデア
・定期的に全プロジェクトのチケット数、解決数を取得し、どこかに掲示して見える化する。
・一日の最後に自動集計してみんなにメールする。
・チケット全体に占める不具合の割合を自動チェックしてごにょごにょする。
なんていうのを検討中。
単なる自分メモ。
今日眼科に再度検査に行ったところ、自分から見て右が18mmHg、左が19mmHgだったので、どうやら薬の効果は出た模様。
また一ヶ月間続けて目薬をしないといけないが、とりあえず危険水域の数字ではなくなったので良かったよ。
TracのExcelReportPluginをpython2.3で利用できないかと探っていたが、
とりあえず出来たので他にやりたい人のためにhackの記録を残しておく。
流れ
・pyExceleratorの代わりになるxlwtライブラリをインストール
・xlwtライブラリはpython2.3対応と謳っているが、python2.4で導入されたDecimal型を
使っているので関連モジュールを修正する
・ExcelReportPluginでExcel出力ライブラリをpyExceleratorからxlwtに変更する。
詳細
1.xlwtのインストール
2.xlwtの問題箇所修正
/usr/lib/python2.3/site-packages/xlwtに移動してRow.pyを修正
9行目の下記をコメントアウト
216行目
を以下の通り修正
3.ExcelReportPluginを修正
excel_report_plugin.pyを修正する
を
なお、上記作業の前に、reporter.pyにはパッチを適用しておくこと。
詳細は前のエントリを参照。
プロジェクトにあったら便利なので試してみる。
なお、Python2.4が必要になるので注意が必要だ。
1.ReportPluginPatchを適用する
まずreport-pluguinにパッチを適用する必要がある。バージョンにあったものを適用する。
2.pyExceleratorを導入する
3.ExcelReportPluguinの導入
モジュールを入手して、pluguinディレクトリにコピーすれば良いだけ。
以上で、Tracのチケットの出力の際に、Excel形式もダウンロードできるようになる。
これだけで顧客や協力会社との課題管理表のやりとりの準備に時間がかからなくなるはずだ。
会社での評判も良かった。
#現在Python2.3で動作するように色々パッチ作成中。。。。
【後日追記】
Python2.3でも動かせる方法を発見しました。こちらを参照してhackしてください。
【後日追記】
このままでは、出力リンクが、Tracのインスタンス数分表示されてしまう不具合があります。
これは、プラグインが単なるpy形式で提供されていてeggになっていないためです。
こちらを参照して、自分でegg化してインストールすると良いでしょう。
TracのExcelReportPluginをインストールしようとしたが、pythonのバージョンが2.3だった。がっくし。
さすがにバージョンあげるとなると大仕事だなぁ。
大分社内への布教活動も進んでいて、さらに使いやすくするために色々いじくっているのでメモ。
なお、現在利用しているバージョンは0.10.4である。
■チケットの担当者をプルダウン選択にする
trac.iniの[ticket]セクションにあるrestrict_ownerをtrueに変えれば良い。
■ガントチャートとカレンダーを利用する
TracGanttCalendarプラグインを利用する。
但し本家サイトで作成されているものは0.11専用で0.10系では動作しない。
そこでこちらから、0.10対応のモジュールを入手する。
引き続き設定を行う。
trac.iniに以下を追加する。
[ticket-custom]
due_assign = text
due_assign.label = 開始日
due_assign.order = 1
due_close= text
due_close.label = 終了日
due_close.order = 2
complete= text
complete.label = 進捗率(%)
complete.order = 3
を追加。
これでapacheを再起動すると、Tracのタブにカレンダーとガントが出るようになる。
■日付入力支援機能を利用する
Decoratorプラグインを利用する。
引き続き設定を行う
trac.iniに以下を追加する。
[decorator]
calendar_fields=due_assign,due_close
日記 PHP オープンソース Linux Trac Perl wordpress フリーソフト Agile 自宅サーバ phpMyFaq Plugin 書評 Delphi apache プラグイン Subversion アジャイル mojavi セキュリティ Ruby Firefox Ajax/Web2.0 eclipse サーバ Zope フレームワーク CakePHP 文字化け scuttle OpenVZ 自宅 phpBB CMS 翻訳・日本語化 Excel ApacheDS 生産性向上 仮想化 hacks CodeIgniter XAMPP LDAP SBM taskfreak Ajax 修正 言語ファイル mod_security ダウンロード HTML::FillInForm 情報共有 格安 メンテナンス 移転 アンケート レンタル PhpScheduleIt 翻訳 API