Scarab: Issue Tracking System

目次

Scarab とは?

Issue Tracking System

Scarab とは <http://scarab.tigris.org/> で開発されている Open Source プロダクトです。BSD/Apache Style のライセンスで公開されています。

Scarab は Issue Traking System です。Bugzilla に代表される Bug Tracking System を一般化して技術的なプロジェクトだけででなく、どんなプロジェクトにも活用できるように設計されたシステムです。プロジェクトの懸念事項やタスク(Issue)を追跡を可能にしてくれます。

機能

Scarab は以下のような機能でプロジェクトの進行をサポートしてくれます。

  • Web からほぼすべての設定を行うことができる管理コンソール
  • 複数プロジェクト管理(Module)
  • ユーザアカウント管理
  • プロジェクト毎のユーザ権限管理
  • Issue の柔軟な検索と検索手順の保存と再生 (Query Save)
  • 関連する Issue 同士を結び付け、依存関係を管理 (Dependencies)
  • 投票による意思決定支援機能 (Voting)
  • Issue への担当者割り当て
  • mail での担当者、プロジェクトメンバーへの通知 (Notification)
  • Issue に関連するファイルをアップロード
  • Issue にコメントを掲示板のように追記可能
  • 2種類のレポート作成機能
  • XML の Import/Export

アーキテクチャ

Scarab は Java で作成され、Tomcat のような Servlet コンテナで動作します。アーキテクチャは、Open Source の成果をふんだんに活用したオブジェクト指向設計、モジュラー化されたコードデザインになっています。主に採用しているフレームワークは以下になります。Apache Jakarta の集大成のようなプロダクトです。

Turbine はサーブレットベースのフレームワークで、Web アプリケーションに必要なほとんどの範囲をカバーします。Turbine は Scarab を作るために生み出されたのが発端のようです。Scarab のコードブロックは Turbine によって明確に MVC に分割されています。HTML のテンプレートエンジンとして一般的な JSP ではなく Velocity が使われています。

RDBMS へのアクセスは Torque で抽象化されています。そのため各種 RDBMS 実装への対応も比較的容易になっています。現在、MySQL,PostgreSQL,Oracle と複数の RDBMS で動作検証がなされているようです。現在、公式にサポートされ活発にメンテナンスされているのは MySQL です。最新版を追っかけるには MySQL がお勧めでしょう。

Scarab は Turbine の国際化フレームワークによって国際化されています。Java リソースバンドルを用意するだけで地域化できるようになっています。

Scarab は、将来的に Jakarta Project 標準の Bug Tracking System に採用されるそうです。すでに Turbine 等のいくつかのプロジェクトが Scarab で管理されています。

メーリングリスト

scarab-ja

scarab-ja@meadowy.org は Bug Tracking System である Scarab について日本語で話し合う場所。日本語訳や、インストールの仕方やその他scarab やBTS 関係であればなんでもよいMLのつもりです。

新規購読は scarab-ja-subscribe@meadowy.org へ、購読解除は scarab-ja-unsubscribe@meadowy.org へ空のメールを送って下さい。

  • 投稿 … scarab-ja@meadowy.org
  • 参加 … scarab-ja-subscribe@meadowy.org
  • 退会 … scarab-ja-unsubscribe@meadowy.org

リポジトリ

CVS リポジトリ

翻訳作業中のリソースバンドルを SourceForge.jp で公開しました。ここでの作業を基に、本家 Scarab で取り入れてもらえるよう働きかけます。

ローカライズ

Scarab 日本語リソースバンドル

私たちは Scarab 向け日本語リソースバンドルを作成しました。この成果は現在、本家 Scarab に統合されています

最新の Scarab ではインストールしてすぐに日本語対応の Scarab を使うことができます。また最新の Scarab が実際に動いている様子を <http://issues.whichever.com/> で確認することができます。ブラウザが適切に設定されていれば、日本語の Scarab が見れるでしょう。

用語について

Scarab は独特な言いまわしがいくつかあります。日本語化するにあって非常に悩みました。以下に簡単にまとめます。もっとよい訳があればぜひ scarab-ja@meadowy.org へ mail してください。

  • Issue … 案件 … Scarab で最も基本になるタスクや不具合といった情報
  • Issue Type … 案件種別 … 案件がタスクなのか不具合なのか Patch なのかなどの種別
  • Module … モジュール … 一般的にはプロジェクト。Scarab のプロジェクト管理する単位
  • Query … クエリ … 案件の検索条件

インストール

パッケージ内容

Scarab のパッケージには必要なライブラリがすべてバンドルされているため Scarab 自体の導入はとても簡単ことができます。Scarab には Tomcat4.1 も同梱されているため、JDK1.3 以上が用意されていれば、ビルドしてすぐに使うことができます。ビルドツールとして Ant を使用しているため、これは準備してください。

また、なんらかの RDBMS を事前に用意しておく必要があります。以下は、すでに MySQL が導入済みとして解説します。Apache との連携や MySQL 以外の RDBMS との動作などには、それぞれの環境に合わせた設定が必要になります。

解説では、もっともトラブルが少ない MySQL と、文字のエンコーディングに EUC-JP を選択しています。Scarab 自体は国際化対応がなされているので PostgreSQL + UTF-8 といった、もっと大きな文字集合をもった環境で動作させることも可能です。

ダウンロード

Scarab をダウンロードします。最新のベータリリースは Scarab-1.0-b13.tar.gz です。日本語化された Scarab を使いたい場合は Nightly Build より最新をダウンロードしてください。

ビルド

パッケージを展開して README.txt に目を通し変更点、インストール方法等を確認します。

展開して作成される build ディレクトリへ移動します。

設定はビルド時に ~/scarab.build.properties へサイト固有の設定を記述します(Windows なら c:\document and settings\USER\scarab.build.properties) 。このファイルを用意しておけば再インストールやアップグレードも同様の設定でビルドすることができ、便利です。 default.properties ファイルを参考に必要な情報を設定します。

~/scarab.build.properties

MySQL へ保存するエンコーディングを EUC-JP にし、mail 送信のエンコーディングを iso-2022-jp とした設定例です。MySQL のユーザ名は環境によって適宜変更します。

scarab.database.username=scarab
scarab.user.username=turbine@tigris.org
scarab.user.password=NWoZK3kTsExUV00Ywo1G5jlUKKs=
scarab.user.firstname=Scarab
scarab.user.lastname=Administrator
scarab.user.email=${scarab.user.username}

# Encoding used to send emails.
scarab.email.encoding=iso-2022-jp

# Site name
scarab.site.name=Hogehoge Scarab System

# The timezone that will be used when displaying date/times
# scarab.timezone=America/Los_Angeles
scarab.timezone=Asia/Tokyo

scarab.database.encoding.querystring = ?useUnicode=true&characterEncoding=EUC-JP

scarab.email.register.fromAddress=scarab-help@hogehoge.org
scarab.email.forgotpassword.fromAddress=scarab-help@hogehoge.org
scarab.email.archive.toAddress=scarab@hogehoge.org

Oracle で稼動する場合は default.oracle.properties を参考にしてください。

コンパイル

Ant の実行に必要な JAVA_HOME や ANT_HOME 環境変数を設定しておきます。build ディレクトリにて ant を実行します。成功すれば target ディレクトリに必要なバイナリが生成されます。

DB テーブル作成

src/sql へ移動し ./create-db.sh を実行します。Windows では create-mysql-database.bat を実行します。すると Scarab に必要なデータテーブルが作成されます。

上記の方法では、サンプルで用意されているモジュールやユーザ名も作成されます。これを参考にして独自のモジュールを追加できるようになっています。

サンプルデータが必要ない場合は ./create-db.sh --empty のように --empty オプションを活用することで空の状態から開始することもできます。

案件種別だけ流用し、サンプルのユーザ情報やデータは不要だというのであれば、src/sql/LoadOrder.lst をLoadOrder-nosample.lst などといった適当な名前にコピーし、そのファイル中の末尾にある scarab-sample-data.sql の行をを削除します。そしてcreate-db.sh 実行時に --load-order=LoadOrder-nosample.lst というオプションを加えて実行すると良いでしょう。

実行

同梱の Tomcat を使用する場合は、この状態で実行可能になります。target ディレクトリの scarab.sh を実行すると scarab がデプロイされた Tomcat が起動します。Windows 環境では bin\startup.bat を実行します。

すでに他にインストール済みの Tomcat を利用する場合は target/webapps/scarab の内容を、そっくりそのまま Tomcat の Application Root へすべてコピーすることでデプロイできます。

設定

WEB-INF/conf/Scarab.properties

必要ないと思われますが日本語が正常に表示されない時に以下を設定すると解決するかもしれません。

...省略

locale.default.charset=EUC-JP

...省略

WEB-INF/conf/TurbineResources.properties

ビルド時に `scarab.database.encoding.querystring' を適切に設定されていれば問題ありませんが、MySQL に正常に日本語が入らない場合確認してください。

torque.dsfactory.scarab.connection.url = jdbc:mysql://localhost:3306/scarab?useUnicode=true&characterEncoding=EUC_JP

WEB-INF/index

テンポラリやファイルアップロードで使用されるこのディレクトリを予め作成する必要があります。

実行

Scarab 実行確認

以下にブラウザでアクセスして動作しているか確認します。

http://localhost:8080/scarab/

Web から設定

Root アカウントでログインして設定を行います。上記の設定ではユーザ名に 'turbine@tigris.org'、パスワードに `1' でログインできるようなるはずです。

Root アカウントではモジュールの作成や、プロジェクトに必要な属性の追加などあらゆる設定を行うことができます。 そのままでは危険なので Default root アカウントはパスワードを変更するか削除したほうがよいでしょう。

新規モジュールを作成していろいろ実験してみてください。

更新履歴と謝辞

Meadowy.org で活用

Meadowy.org では、 Meadow の開発のため Scarab を活用しています。Scarab でタスクや不具合報告についての対応を追跡し、各担当者への仕事の割り振りをコントロールしています。

これがきっかけとなって Scarab の日本語ローカライズ、業務や開発プロジェクトへ活用するに至りました。Meadowy.org のメンバー達に感謝いたします。

変更履歴

2003-04-03
本家 Scarab の URL を修正
2002-12-27
設定ファイル名を修正
2002-12-09
SourceForge.jp でリポジトリ公開
2002-12-03
メーリングリストを scarab-ja@meadowy.org に移行
2002-11-29
Default Root アカウントについて追記
2002-11-28
DB 作成まわりなどの後藤さんのツッコミに対応
2002-11-28
初版作成