ソフトウェアの開発ではバグ管理とソースコード管理は必須のツールです。この二つのツールを連携させることで,作業を軽減させる方法を紹介します。
Tracの概要
ソフトウェアの開発においてバージョン管理システムと並ぶ重要なツールの一つとして,プロジェクトのタスクや不具合を管理,トラッキングするバグ管理システムがあります。バグトラッキングシステムや,イシュートラッキングシステムと呼ばれることもあります。最近では,バグ管理システムでタスクや不具合を管理するだけなく,作業の進捗管理や必要な情報の共有を行なうなど,コラボレーションツールとしての色合いを強めてきている傾向にあるようです。
バグ管理システムとしては,オープンソースのBugzillaが有名で,古くから使われてきました。最近注目を浴びているバグ管理システムの一つとして,Tracがあります。TracはEdgewall Softwareが提供しているオープンソースのソフトウェアです。Tracはバグ管理だけでなく,Wikiによる情報の共有機能やSubversionとの連携機能を提供しており,これらの機能に対して細かな権限設定もできます。
Wikiを使うことで,プロジェクトのドキュメントや議事録,備忘録を簡単に作成,共有できます。必要な情報を一カ所に集中できるため,管理が容易になります。Tracでは,Wiki記法での記述が標準となっています。Wiki記法になじめない人は,htmlで記述することができます。しかし,Wiki記法はとてもシンプルな書式なので,慣れれば効率的に文書を作成できるようになります。
Subversionとの連携機能として,コミットログを閲覧,Webブラウザ経由でのリポジトリ参照,リビジョン間の相違点の閲覧ができます。また,Subversionへコミットすると同時に,関連したバグのステータスを変更できる機能があります。
Tracではロードマップというビューがあります。ロードマップはプロジェクトの計画管理や進捗管理に役立つ機能です。ロードマップは単なるマイルストーンのリストですが,マイルストーンごとに開発方針などの説明を設定できます。また,マイルストーンごとに対応するバグ(チケット)の数が表示され,未解決バグと解決済みバグの比率がマイルストーンの進捗インジケータに表示されます。これにより,プロジェクトの進捗状況が一目で分かります。
また,プラグインによる機能拡張が可能で,Trac Hacksではサードパーティ製の様々なプラグインが提供されています。TracとEclipseを連携するもの,バグやWikiページにタグを設定するものなど有用なプラグインが100個以上集められています。
Tracの現在の安定版のバージョンは0.10.4ですが,既にRuby on Railsなど多くのオープンソースのプロジェクトで利用されています。NASAのバグ管理システムとしても利用されており,Tracのサポートを行なう企業もあります。また,筆者の勤務先でもTracを利用しています。利用しているユーザやサイトは,http://trac.edgewall.org/wiki/TracUsersから確認できます。また,次のバージョンの0.11もまもなくリリース予定です。0.11では,バグのステータスをカスタマイズできるようになるなど,多くの改良点があります。
Tracは非常に多くの機能を持っています。その中から今回は,TracとSubversionの連携を中心に説明します。
Tracのインストールと設定
Tracのインストール方法と基本的な設定を説明します。本格的にTracを導入するためには,ApacheやPython,関連するライブラリのインストールが必要です。Linux環境ではパッケージ管理が充実していため,比較的簡単に導入できます。一方,Windows環境で一からこれらのソフトウェア,ライブラリをインストールして,Tracの動作環境を整える作業は非常に煩雑になります。幸い,WindowsでもTracを簡単に導入するためのプロジェクトが進行しており,All-In-One TracやTrac月を使うことで,簡単に運用が始められます。All-In-One TracはTracのバージョン0.9を元に作られています。Trac月はバージョン0.10をベースにしています。両者とも,TracだけでなくSubversionやTracとSubversionとの連携機能も標準でインストールされます。Trac月の方が機能が充実しており開発も活発なため,これから導入する場合はTrac月をインストールすることをお勧めします。
サーバにはLinuxを使っている方が多いと思います。筆者の勤務先でも,ほとんどのサーバがLinuxで構成されています。また,バージョン管理システムとして既にSubversionを導入済みで,Tracはまだ導入していない方も多いと思います。ここでは,基本的なソフトウェア構成を学ぶと言う観点と,既存システムにインストールする場合を顧慮して,Ubuntu Linux 7.10を使ってTracのインストールと基本設定を行なう方法を説明します。また,SubversionサーバをApache経由で使用する方法も説明します。
まず,TracとApache,ApacheのSubversionとの連携モジュールとmod_pythonをインストールします。Tracは単体でもWebサーバの機能やCGIとして動作する機能を持っていますが,mod_pythonを使って運用する方がパフォーマンス面で優位です。これらのソフトウェア・モジュールをインストールするには,次のコマンドを実行します。
$ sudo aptitude install trac apache2 libapache2-svn libapache2-mod-python
次にリポジトリ上のソースコードをシンタックスハイライトするためのモジュールをインストールします。Trac 0.10では,シンタックスハイライトのために,SilverCityかenscriptモジュールを使用できます。enscriptはUbuntuのパッケージになっているので,ここではenscriptを使用します。SilverCityを使いたい場合は,ソースコードをダウンロードして,ビルド/インストールする必要があります。enscriptはSilverCityに比べて多くの言語に対応していますが,処理速度はSilverCityの方が優れています。SilverCityとenscript両方がインストールされている場合は,SilverCityが使われます。なお,次期バージョンのTrac 0.11からは,ソースコードハイライトにPygmentsが使われるようになります。
enscriptをインストールするには,次のコマンドを実行します。
$ sudo aptitude install enscript

