Mantis Bug Tracker

Mantis Bug Tracker
Original author(s) Kenzaburo Ito (2000-2002), Victor Boctor (2002-Present)
Developer(s) Various (Open source contributors)
Initial release 2000
Stable release 1.2.8  (September 6, 2011; 5 months ago (2011-09-06))
Development status Active
Written in PHP
Operating system Cross-platform
Available in 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
Type Bug tracking system
License GNU General Public License version 2
Website http://www.mantisbt.org/

Mantis Bug Tracker is a free and open source, web-based bug tracking system released under the terms of the GNU General Public License version 2. The most common use of MantisBT is to track software defects. However, MantisBT is often configured by users to serve as a more generic issue tracking system and project management tool.

The name Mantis and the logo of the project refer to the Mantidae family of insects, known for the tracking of and feeding on other insects, colloquially referred to as "bugs". The name of the project is typically abbreviated to either MantisBT or just Mantis.

Contents

History

Kenzaburo Ito started development of the Mantis Bug Tracking project in 2000. In 2002 Victor Boctor became the maintainer of the project. Version 1.0.0 was released in January 2006.[1] Version 1.1.0 was released in December 2007.[2] In November 2008, the project switched from using the Subversion revision control tool to Git, a distributed revision control tool.[3] In February 2010, version 1.2.0 was released.[4]

Features

Plug-ins

An event-driven plug-in system was introduced with the release of version 1.2.0.[5] This plug-in system allows extension of MantisBT through both officially maintained and third party plug-ins. As of January 2010, there are over 20 plug-ins available on the MantisBT community Git repository hosting service, MantisForge.

Prior to the plug-in system in version 1.2.0, a third party plug-in system created by Vincent Debout was available to users along with a variety of different plug-ins.[6] This system was not officially supported by the MantisBT project and is incompatible with the plug-in system provided with version 1.2.0 of MantisBT.

Notifications

MantisBT supports the sending of e-mail notifications upon changes being made to the system. Users have the ability to specify the type of e-mails they receive and set filters to define the minimum severity of issues to receive notifications about. Users also have the ability to explicitly subscribe to issues that affect them.

RSS feeds are available for users who wish to keep track of issues that have been resolved. Additionally, MantisBT has integration with Twitter to allow a notification to be tweeted when an issue is resolved.

Via MantisBT's event-driven plug-in system, it is possible to extend the built in notification support to run advanced scripts that perform additional notification actions (such as sending SMS messages or updating statuses in external project management systems).

Revision control system integration

Versions of MantisBT prior to 1.2.0 allowed for limited integration with the CVS revision control system.[7] With the introduction of plug-in capabilities in MantisBT 1.2.0, revision control integration was redeveloped by John Reese in the SourceIntegration plugin.[8]

As of January 2010, SourceIntegration allows for integration with the following revision control tools and web-based providers:[9]

Upon committing changesets to a source code repository, post-commit hooks within Git or Subversion can be configured to automatically notify MantisBT that changes have been made to the repository. GitHub is also capable of remotely notifying a MantisBT installation of changes to a source code repository. Another technique used for integrating MantisBT with web-based source code hosting providers is the use of a job scheduler such as cron to manually check for changes to a repository every few minutes, reporting any changes back to MantisBT.[9]

SourceIntegration allows for issues within MantisBT to be automatically resolved when a changeset message contains special strings such as "Fixes #12345". This also allows for relationships to be automatically created between changesets and issues recorded in MantisBT. Multiple issue IDs can be specified in a single changeset message, although this is commonly discouraged as it indicates the changeset doesn't have a single, clear and logical purpose.[10]

Minor features

In addition to the features mentioned above, MantisBT also has support for:[11]

Technical design

Development Languages

MantisBT is written in PHP and uses SQL to interface with databases. The web-based user interface of MantisBT is written using XHTML which is styled and presented using CSS.[14] jQuery is a client-side JavaScript library that MantisBT uses to provide optional features to clients such as Ajax and JSON powered dynamic page content. Development tools and build scripts are written predominantly in Python.

MantisBT's codebase dates back to a time when PHP's support for object-oriented programming principles was in its infancy.[15] As of version 1.2.0, the majority of the MantisBT codebase still uses procedural programming principles. Some sections of the MantisBT codebase have been converted to make use of PHP 5's new object model.[16][17]

Database storage

Data is stored in a relational database management system by means of the ADOdb database abstraction library. Popular database servers supported by the ADOdb library and MantisBT include MySQL, PostgreSQL, Microsoft SQL, IBM DB2 and Oracle [18].

MantisBT maintains a database upgrade path between versions by modifying the database schema incrementally.[19] During the installation of MantisBT, database schema modifications are replayed all the way back from early versions of MantisBT to reach the latest state.

Requirements

MantisBT requires a configured web server, PHP programming language interpreter and relational database management system supported by ADOdb.[20]

The stable branch of MantisBT (version numbers within 1.1.x) requires a version of PHP greater than or equal to 4.3.0. For the preview branch (1.2.x) and development branch (1.3.x), the minimum PHP version is 5.2.0.[21]

MantisBT bundles a number of dependencies with each release including:[22]

For drawing graphs of relationships between issues, GraphViz is required. MantisBT also has an alternative dependency upon the commercial JpGraph graphics library for plotting of statistics.

References

  1. ^ "MantisBT:". SourceForge.net. 2006-02-04. http://sourceforge.net/mailarchive/message.php?msg_name=200602040137.k141bhj4018041%40mail13.syd.optusnet.com.au. Retrieved 2010-07-14. 
  2. ^ "Mantis 1.1.0 Released « Mantis Bug Tracker Blog". Mantisbt.org. 2007-12-20. http://www.mantisbt.org/blog/?p=17. Retrieved 2010-07-14. 
  3. ^ "MantisBT Git - mantisbt.git/commit". Git.mantisbt.org. 2008-11-10. http://git.mantisbt.org/?p=mantisbt.git;a=commit;h=3dc1e8439ff7cdf87404b412b710fcda6325a26e. Retrieved 2010-07-14. 
  4. ^ Josemi says: (2010-02-22). "MantisBT 1.2.0 Released « Mantis Bug Tracker Blog". Mantisbt.org. http://www.mantisbt.org/blog/?p=76. Retrieved 2010-07-14. 
  5. ^ "MantisBT 1.2.0rc1 Release Candidate 1 « Mantis Bug Tracker Blog". Mantisbt.org. 2009-06-23. http://www.mantisbt.org/blog/?p=56. Retrieved 2010-07-14. 
  6. ^ "Mantis bugtracker plugins". Deboutv.free.fr. http://deboutv.free.fr/mantis/. Retrieved 2010-07-14. 
  7. ^ http://docs.mantisbt.org/master/en/administration_guide.html#AEN223
  8. ^ "MantisForge Git Hosting for Mantis BugTracker - source-integration.git/summary". Git.mantisforge.org. http://git.mantisforge.org/w/source-integration.git. Retrieved 2010-07-14. 
  9. ^ a b "Integrating Git and SVN with the Mantis Bug Tracker". LeetCode.net. 2009-01-07. http://leetcode.net/blog/2009/01/integrating-git-svn-with-mantisbt/. Retrieved 2010-07-14. 
  10. ^ [1]
  11. ^ "Mantis Feature List [MantisBT]". Mantisbt.org. 2010-04-14. http://www.mantisbt.org/wiki/doku.php/mantisbt:features. Retrieved 2010-07-14. 
  12. ^ http://docs.mantisbt.org/master/en/administration_guide.html#AEN2392
  13. ^ http://docs.mantisbt.org/master/en/administration_guide.html#AEN2365
  14. ^ Dirson, Yann. "MantisBT". Ohloh. http://www.ohloh.net/p/mantis/analyses/latest. Retrieved 2010-07-14. 
  15. ^ "History of PHP - Manual". PHP. 2010-07-09. http://www.php.net/manual/en/history.php.php. Retrieved 2010-07-14. 
  16. ^ "MantisBT Git - mantisbt.git/commitdiff". Git.mantisbt.org. 2009-06-11. http://git.mantisbt.org/?p=mantisbt.git;a=commitdiff;h=97b67e4bbb2f2df5f6fb24eea5b4bb37e1c28acd#patch13. Retrieved 2010-07-14. 
  17. ^ "MantisBT Git - mantisbt.git/commitdiff". Git.mantisbt.org. 2008-02-06. http://git.mantisbt.org/?p=mantisbt.git;a=commitdiff;h=a44abfcd6eb8df6524d20d41c8474a2c5924ae12#patch5. Retrieved 2010-07-14. 
  18. ^ http://docs.mantisbt.org/master/en/administration_guide.html#ADMIN.ABOUT.REQUIRMENTS
  19. ^ "MantisBT Git - mantisbt.git/history - admin/schema.php". Git.mantisbt.org. http://git.mantisbt.org/?p=mantisbt.git;a=history;f=admin/schema.php;h=aa9b956d70a8afff7c8bdf1b48842b299df0c2be;hb=HEAD. Retrieved 2010-07-14. 
  20. ^ "ADODB Manual". Phplens.com. http://phplens.com/lens/adodb/docs-adodb.htm#drivers. Retrieved 2010-07-14. 
  21. ^ "Mantis Bug Tracker | Requirements". Mantisbt.org. 2007-07-07. http://www.mantisbt.org/requirements.php. Retrieved 2010-07-14. 
  22. ^ "MantisBT Git - mantisbt.git/blob - library/README.libs". Git.mantisbt.org. http://git.mantisbt.org/?p=mantisbt.git;a=blob;f=library/README.libs;hb=HEAD. Retrieved 2010-07-14. 

External links