Mantis Bug Tracker
![]() | |
作者 | Kenzaburo Ito |
---|---|
開発元 | Various (オープンソースcontributors) |
初版 | 2000年 |
最新版 |
2.24.4 - 2020年12月30日 [±]
|
最新評価版 |
2.25.0-dev - 2021年2月23日 [±]
|
リポジトリ | |
プログラミング 言語 | PHP |
対応OS | クロスプラットフォーム |
対応言語 | 49言語 |
対応言語一覧 Afrikaans, Amharic, Arabic, Arabic (Egyptian), Breton, Bulgarian, Catalan, Chinese (Simplified), Chinese (Traditional), Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, German, Greek, Hebrew, Hungarian, Icelandic, Italian, Japanese, Korean, Latvian, Lithuanian, Macedonian, Norwegian (Bokmål), Norwegian (Nynorsk), Occitan, Polish, Portuguese (Standard), Portuguese (Brazilian), Ripuarian, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swiss German, Swedish, Tagalog, Turkish, Ukrainian, Urdu, Volapuk | |
種別 | バグ管理システム |
ライセンス | GNU General Public License version 2 |
公式サイト |
www |
Mantis Bug Tracker はフリーかつオープンソースのWebベースのバグ管理システムである。一般的にMantisBTはソフトウェアのバグを追跡するために使用されている。ただしMantisBTは、より一般的な課題管理システムやプロジェクト管理ツールとして機能するようにユーザーによって設定されることが多い。 Mantisの名前とプロジェクトのロゴは口語的に「バグ」と呼ばれる他の昆虫を追跡して捕食することで知られるカマキリ科の昆虫を指している。プロジェクトの名前は通常MantisBT、または単にMantisのいずれかに省略される。
歴史
[編集]2000年にKenzaburo ItoがMantis Bug Tracking projectの開発を開始した。2002年にはJeroen Latour、Victor Boctor、Julian Fitzellが管理者として加わりチームプロジェクトとなった[1]。 バージョン1.0.0が2006年2月にリリースされた[2]。 バージョン1.1.0が2007年12月にリリースされた[3]。 2008年11月、長い議論の末[4]、プロジェクトはリビジョン管理ツールをSubversionから分散型リビジョン管理ツールであるGitに切り替えた[5]。 2010年2月、バージョン1.2.0がリリースされた[6]。 2012年7月、GitHubのMantisBT organizationがプロジェクトのソースコードの公式リポジトリとなった[7]。
機能
[編集]プラグイン
[編集]イベント駆動型プラグインシステムはバージョン1.2.0のリリースで導入された[8]。このプラグインシステムにより、公式に保守されているプラグインとサードパーティのプラグインの両方を介してMantisBTを拡張可能となった。2013年11月の時点で、GitHubのMantisBT-plugins organizationで利用可能なプラグインは50を超えている。
バージョン1.2.0より前は、Vincent Deboutによって作成されたサードパーティのプラグインシステムが様々な異なるプラグインとともにユーザーに提供されていた[9]。このシステムは、MantisBTプロジェクトによって公式にサポートされておらず、MantisBT1.2.0以降との互換性は無い。
通知
[編集]MantisBTはシステムの問題に変更が加えられた場合のメール通知をサポートしている。ユーザーは受信するメールのタイプを指定し、フィルターを設定して通知を受信する問題の最小の重要度を定義することができる。またユーザーは自分に影響を与える問題を明示的に指定することもできる。
RSSフィードは解決された問題を追跡したいユーザーが利用できる。さらにMantisBTはプラグインを介してTwitterと統合されており、問題が解決されたときに通知をツイートできるようになっている。
MantisBTのイベント駆動型プラグインシステムを介して、組み込みの通知サポートを拡張し追加の通知アクション(SMSメッセージの送信や外部プロジェクト管理システムでのステータスの更新など)を実行する高度なスクリプトを実行できる。
リビジョン管理システムの統合
[編集]1.2.0より前のバージョンのMantisBTではCVSリビジョン管理システムとの限定的な統合が可能であった[10]。 MantisBT 1.2.0にプラグイン機能が導入されたことにより、リビジョン管理の統合がAmethyst ReeseによってSourceIntegrationプラグインで再開発された。
SourceIntegrationプラグインの初期リリースでは、GitHub、GitWeb、SourceForge、およびWebSVNがサポートされていた[11]。 時間の経過とともに2つの追加モジュールが追加され、2013年11月の時点で以下のリビジョン管理ツールとWebベースのプロバイダーでソース統合がサポートされている。
- cgit:Cで記述されたGitリポジトリのWebインターフェイス
- GitHub:Gitリポジトリをホストするオープンソースのソフトウェアホスティングサービス
- Gitweb:Gitリポジトリ用のフリーかつオープンソースのWebインターフェイス
- HgWeb:Mercurialリポジトリ用のcgiWebフロントエンド
- SourceForge(Subversion統合のみ):様々なタイプのソフトウェアリポジトリをホストするオープンソースのソフトウェアホスティングサービス
- WebSVN:Subversionリポジトリ用のフリーかつオープンソースのWebインターフェイス
- RhodeCode:Mercurial、Git、SubversionリポジトリへのオープンソースのWebインターフェース[12]
チェンジセットをソースコードリポジトリにコミットすると、GitまたはSubversion内のコミット後フックを構成して、リポジトリに変更が加えられたことをMantisBTに自動的に通知できる。GitHubはソースコードリポジトリへの変更をMantisBTインストールにリモートで通知することもできる。MantisBTをWebベースのソースコードホスティングプロバイダーと統合するために使用される別の手法としてcronなどのジョブスケジューラを使用してリポジトリへの変更を数分ごとに手動でチェックし、変更をMantisBTにレポートする方法がある[11]。
SourceIntegrationを使用すると、チェンジセットメッセージに「Fixes#12345」などの正規表現を使用して構成可能な特別な文字列が含まれている場合にMantisBT内の問題を自動的に解決できる。これによりチェンジセットとMantisBTに登録された対応する問題との間にリレーションシップを自動的に作成することもできる。複数の問題IDを単一のチェンジセットメッセージで指定できるが、チェンジセットに単一の明確で論理的な目的がないことを示しているため一般的に推奨されない[13]。
マイナーな機能
[編集]MantisBTは上記に加えて以下の機能もサポートしている[14]。
- 全文検索
- 問題に加えられた変更の監査証跡
- テキストフィールドとコメントのバージョン管理
- ロードマップ[10]
- 変更履歴[10]
- 問題間の関係のグラフ化
- Sponsorship of issues
- DokuWiki、MediaWiki、TWiki、WackoWiki、WikkaWiki、XWikiのWikiドキュメントの統合
- ニュース
- CodevTTによるプロジェクト管理とタイムトラッキング
- translatewiki.netによる数十言語のローカライズ
技術設計
[編集]開発言語
[編集]MantisBTは主にPHPで記述されておりSQLを使用してデータベースとインターフェイスで接続する。 UIはjQueryクライアント側JavaScriptライブラリを使用してAjaxやJSONを利用した動的ページコンテンツなどのオプション機能も提供する。
開発ツールとビルドスクリプトは主にPythonで記述されており、いくつかのシェルスクリプトとPHPが含まれている。
MantisBTのコードベースはオブジェクト指向プログラミングの原則に対するPHPのサポートがまだ始まったばかりの時代にまでさかのぼる。[15]。 バージョン1.2.0の時点でMantisBTコードベースの大部分はまだ手続き型プログラミングの原則を使用しているが、一部のセクションはPHP5の新しいオブジェクトモデルを使用するように変換されている[16][17]。
データベースストレージ
[編集]データはADOdbデータベース抽象化ライブラリを使用してリレーショナルデータベース管理システムに保存される。MantisBTはMySQLをサポートしている。他のデータベース(PostgreSQL、Microsoft SQL、Oracle)のサポートには問題があることが知られている。開発チームは2.0リリースでこれを修正しようとしている。[10]
MantisBTはデータベーススキーマを段階的に変更することにより、バージョン間のデータベースアップグレードパスを維持する[18]。 MantisBTのインストール中に、データベーススキーマの変更はMantisBTの初期バージョンから最後まで再生され最新の状態となる。
要件
[編集]MantisBTには、構成済みのWebサーバー、PHPプログラミング言語インタープリタ、およびMantisBT[10]とADOdb[19]でサポートされているリレーショナルデータベース管理システムが必要である。
MantisBTの安定版ブランチ(バージョン番号1.2.x以内)にはPHP5.1.0以降が必要。開発ブランチ(1.3.x)の場合PHPの最低バージョンは5.3.2[20]。
特定の機能を有効にするため、またはパフォーマンス上の理由から、いくつかのPHPプラグインが必要[10]。使用されているRDBMSの拡張機能(つまりmysqli)は必須である。
MantisBTはリリースごとに次のような多くの依存関係をバンドルしている[21]。
- リレーショナルデータベース管理システムのサポートを抽象化するためのADOdb
- 使い捨てメールアドレスチェック機能
- 統計をプロットするためのeZコンポーネント
- NuSOAP for SOAPWebサービスのサポート
- 電子メール送信サポート用のPHPMailer
- RSSフィードサポート用のRSS Builder
- PHPのmb_string拡張モジュールが存在しない場合の国際化サポート用PHP UTF-8 ラッパーライブラリ
issue間の関係のグラフを描画するにはGraphvizが必要である。MantisBTには統計をプロットするための商用JpGraphグラフィックライブラリへの代替依存関係もある。
関連項目
[編集]脚注
[編集]- ^ “team of MantisBT. This marks a new era in MantisBT lifetime where it is now a team project.”. 2021年10月27日閲覧。
- ^ “Mantis 1.0.0 (stable) Released”. MantisBT announcements mailing list. SourceForge.net (February 4, 2006). 2021年10月27日閲覧。
- ^ “Mantis 1.1.0 Released”. Mantis Bug Tracker Blog. Mantisbt.org (December 20, 2007). 2021年10月27日閲覧。
- ^ “Moving from SVN to Git”. Mantisbt-dev mailing list. Sourceforge.net (November 4, 2008). 2021年10月27日閲覧。
- ^ Amethyst Reese (November 10, 2008). “First MantisBT Git commit”. Github.com. 2021年10月27日閲覧。
- ^ “MantisBT 1.2.0 Released”. Mantis Bug Tracker Blog. Mantisbt.org (February 22, 2010). 2021年10月27日閲覧。
- ^ “MantisBT Moving to Github”. MantisBT announcements mailing list. SourceForge.net (July 12, 2011). 2021年10月27日閲覧。
- ^ “MantisBT 1.2.0rc1 Release Candidate 1”. Mantis Bug Tracker Blog. Mantisbt.org (June 23, 2009). 2021年10月27日閲覧。
- ^ “Mantis bugtracker plugins”. Deboutv.free.fr. 2021年10月27日閲覧。
- ^ a b c d e f “Mantis Bug Tracker Administration Guide”. December 2, 2013時点のオリジナルよりアーカイブ。2021年10月27日閲覧。
- ^ a b Reese, Amethyst (January 7, 2009). “Integrating Git and SVN with the Mantis Bug Tracker”. NoSwap.com. 2021年10月27日閲覧。
- ^ http://tononlabview.blogspot.fr/2011/07/connecting-mantis-with-rhodecode.html
- ^ “Subversion Best Practices”. 2021年10月27日閲覧。
- ^ “Mantis Feature List”. MantisBT wiki. Mantisbt.org (September 25, 2012). 2021年10月27日閲覧。
- ^ “History of PHP”. PHP.net (November 8, 2013). 2021年10月27日閲覧。
- ^ “MantisBT source code”. GitHub.com (June 11, 2009). 2021年10月27日閲覧。
- ^ “MantisBT source code”. GitHub.com (February 6, 2008). 2021年10月27日閲覧。
- ^ “MantisBT source code - admin/schema.php”. GitHub.com. 2021年10月27日閲覧。
- ^ “ADODB Manual”. Phplens.com. 2006年4月11日時点のオリジナルよりアーカイブ。2013年11月12日閲覧。
- ^ “Mantis Bug Tracker”. Mantisbt.org. September 5, 2012時点のオリジナルよりアーカイブ。2021年10月27日閲覧。
- ^ “MantisBT source code - library/README.libs”. GitHub.com. 2013年11月12日閲覧。[リンク切れ]
外部リンク
[編集]括弧内の西暦は最初の安定リリース | |||||
クライアント・サーバ型 |
| ||||
分散型 |
| ||||
ホスト型 |
|
Text is available under the CC BY-SA 4.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.