Mantis Bug Tracker is a
free and open source,
web-based bug tracking system. 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
insect family
Mantidae, 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, Kenzaburo was joined by Jeroen Latour, Victor Boctor and Julian Fitzell to be the administrators and it became a team 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
Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to transform the established social order and its structures of power, authority, hierarchy, and social norms. Sub ...
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
Plug-in, plug in or plugin may refer to:
* Plug-in (computing) is a software component that adds a specific feature to an existing computer program.
** Audio plug-in, adds audio signal processing features
** Photoshop plugin, a piece of softwar ...
system was introduced with the release o
version1.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
RSS ( RDF Site Summary or Really Simple Syndication) is a web feed that allows users and applications to access updates to websites in a standardized, computer-readable format. Subscribing to RSS feeds can allow a user to keep track of many di ...
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
Plug-in, plug in or plugin may refer to:
* Plug-in (computing) is a software component that adds a specific feature to an existing computer program.
** Audio plug-in, adds audio signal processing features
** Photoshop plugin, a piece of softwar ...
system, it is possible to extend the built in notification support to run advanced scripts that perform additional notification actions (such as sending
SMS
Short Message/Messaging Service, commonly abbreviated as SMS, is a text messaging service component of most telephone, Internet and mobile device systems. It uses standardized communication protocols that let mobile devices exchange short text ...
messages or updating statuses in external
project management systems).
Revision control system integration
Versions
Version may refer to:
Computing
* Software version, a set of numbers that identify a unique evolution of a computer program
* VERSION (CONFIG.SYS directive), a configuration directive in FreeDOS
Music
* Cover version
* Dub version
* Remix
* ''Ve ...
of MantisBT prior to 1.2.0 allowed for limited
integration
Integration may refer to:
Biology
*Multisensory integration
*Path integration
* Pre-integration complex, viral genetic material used to insert a viral genome into a host genome
*DNA integration, by means of site-specific recombinase technology, ...
with the
CVS
CVS may refer to:
Organizations
* CVS Health, a US pharmacy chain
** CVS Pharmacy
** CVS Caremark, a prescription benefit management subsidiary
* Council for Voluntary Service, England
* Cable Video Store, former US pay-per-view service
* CVS F ...
revision control system.
With the introduction of
plug-in
Plug-in, plug in or plugin may refer to:
* Plug-in (computing) is a software component that adds a specific feature to an existing computer program.
** Audio plug-in, adds audio signal processing features
** Photoshop plugin, a piece of softwar ...
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 (for Subversion integration only), an open-source software hosting facility that hosts various types of software repositories
* WebSVN, a free and open source web interface for
Subversion
Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to transform the established social order and its structures of power, authority, hierarchy, and social norms. Sub ...
repositories
*
RhodeCode
RhodeCode is an open source self-hosted platform for behind-the-firewall source code management. It provides centralized control over Git, Mercurial, and Subversion repositories within an organization, with common authentication and permission man ...
, an OpenSource web interface to Mercurial, Git and Subversion 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
The cron command-line utility is a job scheduler on Unix-like operating systems. Users who set up and maintain software environments use cron to schedule jobs (commands or shell scripts), also known as cron jobs, to run periodically at fixed ti ...
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
IDS may refer to:
Computing
* IBM Informix Dynamic Server, a relational database management system
* Ideographic Description Sequence, describing a Unihan character as a combination of other characters
* Integrated Data Store, one of the first da ...
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
*
Changelog
A changelog is a log or record of all notable changes made to a project. The project is often a website or software project, and the changelog usually includes records of changes such as bug fixes, new features, etc. Some open-source projects i ...
s
* Graphing of relationships between issues
* Sponsorship of issues
*
Wiki documentation integration for
DokuWiki
DokuWiki is a wiki application licensed under GPLv2 and written in the PHP programming language. It works on plain text files and thus does not need a database. Its syntax is similar to the one used by MediaWiki. It is often recommended as a more ...
,
MediaWiki,
TWiki, WackoWiki, WikkaWiki and
XWiki
* News
* Project Management & TimeTracking with CodevTT.
* Localised dozens of languages on
translatewiki.net
translatewiki.net, formerly named Betawiki, is a web-based translation platform powered by the Translate extension for MediaWiki. It can be used to translate various kinds of texts but is commonly used for creating localisations for software ...
.
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
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
. The UI also uses the
jQuery client-side JavaScript library to provide optional features such as
Ajax and
JSON
JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
powered dynamic page content.
Development tools and build scripts are written predominantly in
Python with some
Shell script
A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter. The various dialects of shell scripts are considered to be scripting languages. Typical operations performed by shell scripts include file manip ...
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
A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
by means of the
ADOdb
ADOdb is a database abstraction library for PHP, originally based on the same concept as Microsoft's ActiveX Data Objects. It allows developers to write applications in a consistent way regardless of the underlying database system storing the in ...
database
abstraction library. MantisBT supports
MySQL,
MariaDB and
PostgreSQL
PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
. It has experimental support for
Microsoft SQL
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
and
Oracle
An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination.
Description
The word '' ...
.
MantisBT maintains a database upgrade path between
versions
Version may refer to:
Computing
* Software version, a set of numbers that identify a unique evolution of a computer program
* VERSION (CONFIG.SYS directive), a configuration directive in FreeDOS
Music
* Cover version
* Dub version
* Remix
* ''Ve ...
by modifying the
database schema
The database schema is the structure of a database described in a formal language supported by the database management system (DBMS). The term "schema" refers to the organization of data as a blueprint of how the database is constructed (divide ...
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
A web server is computer software and underlying hardware that accepts requests via HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initiate ...
, the
PHP programming language interpreter and a
relational database management system
A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
supported by MantisBT
and
ADOdb
ADOdb is a database abstraction library for PHP, originally based on the same concept as Microsoft's ActiveX Data Objects. It allows developers to write applications in a consistent way regardless of the underlying database system storing the in ...
.
As of June 2022, the stable branch of MantisBT requires PHP 7.0 or later.
Several PHP
extensions are required
to enable specific functionality or for performance reasons; the extension for the RDBMS being used (i.e. ''mysqli'') is mandatory.
MantisBT bundles a number of dependencies with each release including:
*
ADOdb
ADOdb is a database abstraction library for PHP, originally based on the same concept as Microsoft's ActiveX Data Objects. It allows developers to write applications in a consistent way regardless of the underlying database system storing the in ...
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
RSS ( RDF Site Summary or Really Simple Syndication) is a web feed that allows users and applications to access updates to websites in a standardized, computer-readable format. Subscribing to RSS feeds can allow a user to keep track of many di ...
feed support
* PHP UTF-8
wrapper library for
internationalization support in absence of PHP's mb_string extension
For drawing
graphs
Graph may refer to:
Mathematics
*Graph (discrete mathematics), a structure made of vertices and edges
**Graph theory, the study of such graphs and their properties
*Graph (topology), a topological space resembling a graph in the sense of discre ...
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
*
{{Bug tracking systems
Free project management software
Bug and issue tracking software
PHP software