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.
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 February 2006.
Version 1.1.0 was released in December 2007.
In November 2008, after a long discussion, the project switched from using the Subversion
revision control tool to Git, a distributed revision control tool.
In February 2010, version 1.2.0 was released.
In July 2012, the MantisBT organization on GitHub became the official repository for
the Project's source code.
Features Plug-ins
An event-driven plug-in system was introduced with the release of version 1.2.0.
This plug-in system allows extension of MantisBT through both officially maintained and third
party plug-ins.
As of November 2013, there are over 50 plug-ins available on the MantisBT-plugins organization
on GitHub.
Prior to 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.
This system was not officially supported by the MantisBT project and is incompatible with
MantisBT 1.2.0 and later.
Notifications MantisBT supports the sending of e-mail notifications
upon changes being made to issues in 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 via a plugin, 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.
Revision control system integration Versions of MantisBT prior to 1.2.0 allowed
for limited integration with the CVS revision control system.
With the introduction of plug-in capabilities in MantisBT 1.2.0, revision control integration
was redeveloped by John Reese in the SourceIntegration plugin.
The initial release of the SourceIntegration plugin supported GitHub, GitWeb, SourceForge
and WebSVN.
Over time, two additional modules were added and as of November 2013, source integration
is supported for the following revision control tools and web-based providers:
cgit, a web interface for Git repositories, written in C
GitHub, an open-source software hosting facility that hosts Git repositories
Gitweb, a free and open source web interface for Git repositories
HgWeb, a cgi web front-end for Mercurial repositories SourceForge, an open-source software hosting
facility that hosts various types of software repositories
WebSVN, a free and open source web interface for Subversion repositories
RhodeCode, an open-source web interface to Mercurial and Git repositories
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.
SourceIntegration allows for issues within MantisBT to be automatically resolved when
a changeset message contains special strings such as "Fixes #12345", which are configurable
using regular expressions.
This also allows for relationships to be automatically created between changesets and corresponding
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.
Minor features In addition to the features mentioned above,
MantisBT also has support for: Full text search
Audit trails of changes made to issues Revision control of text fields and notes
Roadmaps Changelogs
Graphing of relationships between issues Sponsorship of issues
Wiki documentation integration for DokuWiki, MediaWiki, TWiki, WikkaWiki and XWiki
News Project Management & TimeTracking with CodevTT.
Localised dozens of languages on translatewiki.net.
Technical design Development Languages
MantisBT is mainly written in PHP and uses SQL to interface with databases.
The web-based user interface of MantisBT is written using HTML which is styled and presented
using CSS.
The UI also uses the jQuery client-side JavaScript library to provide optional features such
as Ajax and JSON powered dynamic page content.
Development tools and build scripts are written predominantly in Python with some Shell script
and PHP.
MantisBT's codebase dates back to a time when PHP's support for object-oriented programming
principles was in its infancy.
As of version 1.2.0, the majority of the MantisBT codebase still uses procedural programming
principles, however some sections have been converted to make use of PHP 5's new object
model.
Database storage Data is stored in a relational database management
system by means of the ADOdb database abstraction library.
MantisBT supports MySQL.
Support for other databases is known to be problematic.
The development team are looking to fix this for the 2.0 release.
MantisBT maintains a database upgrade path between versions by modifying the database
schema incrementally.
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,
the PHP programming language interpreter and a relational database management system supported
by MantisBT and ADOdb.
The stable branch of MantisBT requires PHP 5.1.0 or later.
For the development branch, the minimum PHP version is 5.3.2.
Several PHP extensions are required to enable specific functionality or for performance
reasons; the extension for the RDBMS being used is mandatory.
MantisBT bundles a number of dependencies with each release including:
ADOdb for abstraction of support for relational database management systems
Disposable for disposable e-mail checking functionality
eZ Components for plotting of statistics NuSOAP for SOAP web service support
PHPMailer for e-mail sending support Projax for Ajax capabilities in the user interface
RSS Builder for RSS feed support PHP UTF-8 wrapper library for internationalization
support in absence of PHP's mb_string extension 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.
See also
Comparison of issue-tracking systems References
External links Official website