Mantis Bug Tracker

Mantis Bug Tracker
作者 Kenzaburo Ito
開発元 Various (オープンソースcontributors)
初版 2000年 (24年前) (2000)
最新版
2.24.4 - 2020年12月30日 (3年前) (2020-12-30) [±]
最新評価版
2.25.0-dev - 2021年2月23日 (3年前) (2021-02-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.mantisbt.org
テンプレートを表示

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]

技術設計[編集]

開発言語[編集]

MantisBTは主にPHPで記述されておりSQLを使用してデータベースとインターフェイスで接続する。 UIはjQueryクライアント側JavaScriptライブラリを使用してAjaxJSONを利用した動的ページコンテンツなどのオプション機能も提供する。

開発ツールとビルドスクリプトは主にPythonで記述されており、いくつかのシェルスクリプトとPHPが含まれている。

MantisBTのコードベースオブジェクト指向プログラミングの原則に対するPHPのサポートがまだ始まったばかりの時代にまでさかのぼる。[15]。 バージョン1.2.0の時点でMantisBTコードベースの大部分はまだ手続き型プログラミングの原則を使用しているが、一部のセクションはPHP5の新しいオブジェクトモデルを使用するように変換されている[16][17]

データベースストレージ[編集]

データはADOdbデータベース抽象化ライブラリを使用してリレーショナルデータベース管理システムに保存される。MantisBTはMySQLをサポートしている。他のデータベース(PostgreSQLMicrosoft SQLOracle)のサポートには問題があることが知られている。開発チームは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]

issue間の関係のグラフを描画するにはGraphvizが必要である。MantisBTには統計をプロットするための商用JpGraphグラフィックライブラリへの代替依存関係もある。

関連項目[編集]

脚注[編集]

  1. ^ team of MantisBT. This marks a new era in MantisBT lifetime where it is now a team project.”. 2021年10月27日閲覧。
  2. ^ Mantis 1.0.0 (stable) Released”. MantisBT announcements mailing list. SourceForge.net (2006年2月4日). 2021年10月27日閲覧。
  3. ^ Mantis 1.1.0 Released”. Mantis Bug Tracker Blog. Mantisbt.org (2007年12月20日). 2021年10月27日閲覧。
  4. ^ Moving from SVN to Git”. Mantisbt-dev mailing list. Sourceforge.net (2008年11月4日). 2021年10月27日閲覧。
  5. ^ Amethyst Reese (2008年11月10日). “First MantisBT Git commit”. Github.com. 2021年10月27日閲覧。
  6. ^ MantisBT 1.2.0 Released”. Mantis Bug Tracker Blog. Mantisbt.org (2010年2月22日). 2021年10月27日閲覧。
  7. ^ MantisBT Moving to Github”. MantisBT announcements mailing list. SourceForge.net (2011年7月12日). 2021年10月27日閲覧。
  8. ^ MantisBT 1.2.0rc1 Release Candidate 1”. Mantis Bug Tracker Blog. Mantisbt.org (2009年6月23日). 2021年10月27日閲覧。
  9. ^ Mantis bugtracker plugins”. Deboutv.free.fr. 2021年10月27日閲覧。
  10. ^ a b c d e f Mantis Bug Tracker Administration Guide”. 2013年12月2日時点のオリジナルよりアーカイブ。2021年10月27日閲覧。
  11. ^ a b Reese, Amethyst (2009年1月7日). “Integrating Git and SVN with the Mantis Bug Tracker”. NoSwap.com. 2021年10月27日閲覧。
  12. ^ http://tononlabview.blogspot.fr/2011/07/connecting-mantis-with-rhodecode.html
  13. ^ Subversion Best Practices”. 2021年10月27日閲覧。
  14. ^ Mantis Feature List”. MantisBT wiki. Mantisbt.org (2012年9月25日). 2021年10月27日閲覧。
  15. ^ History of PHP”. PHP.net (2013年11月8日). 2021年10月27日閲覧。
  16. ^ MantisBT source code”. GitHub.com (2009年6月11日). 2021年10月27日閲覧。
  17. ^ MantisBT source code”. GitHub.com (2008年2月6日). 2021年10月27日閲覧。
  18. ^ MantisBT source code - admin/schema.php”. GitHub.com. 2021年10月27日閲覧。
  19. ^ ADODB Manual”. Phplens.com. 2006年4月11日時点のオリジナルよりアーカイブ。2013年11月12日閲覧。
  20. ^ Mantis Bug Tracker”. Mantisbt.org. 2012年9月5日時点のオリジナルよりアーカイブ。2021年10月27日閲覧。
  21. ^ MantisBT source code - library/README.libs”. GitHub.com. 2013年11月12日閲覧。[リンク切れ]

外部リンク[編集]