Mantis Bugtracker
Encyclopedia
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 insect
s, 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.
of the project. Version 1.0.0 was released in January 2006. Version 1.1.0 was released in December 2007. In November 2008, 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.
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 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. 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 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
).
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.
As of January 2010, SourceIntegration allows for integration with the following revision control tools and web-based
providers:
Upon committing
changeset
s 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". 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.
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
. 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. 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.
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
.
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.
, PHP
programming language interpreter and relational database management system
supported by ADOdb
.
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.
MantisBT bundles a number of dependencies with each release including:
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.
Free and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...
, web-based
World Wide Web
The World Wide Web is a system of interlinked hypertext documents accessed via the Internet...
bug tracking system
Bug tracking system
A bug tracking system is a software application that is designed to help quality assurance and programmers keep track of reported software bugs in their work. It may be regarded as a type of issue tracking system....
released under the terms of the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
version 2. The most common use of MantisBT is to track software defects
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...
. However, MantisBT is often configured by users to serve as a more generic issue tracking system
Issue tracking system
An issue tracking system is a computer software package that manages and maintains lists of issues, as needed by an organization...
and project management tool
Project management software
Project management software is a term covering many types of software, including estimation and planning, scheduling, cost control and budget management, resource allocation, collaboration software, communication, quality management and documentation or administration systems, which are used to...
.
The name Mantis and the logo
Logo
A logo is a graphic mark or emblem commonly used by commercial enterprises, organizations and even individuals to aid and promote instant public recognition...
of the project refer to the Mantidae
Mantidae
Mantidae is the largest family of the order Mantodea, commonly known as praying mantises; most are tropical or subtropical. Historically, this was the only family in the order, and many references still use the term "mantid" to refer to any mantis. Technically, however, "mantid" refers only to...
family of insect
Insect
Insects are a class of living creatures within the arthropods that have a chitinous exoskeleton, a three-part body , three pairs of jointed legs, compound eyes, and two antennae...
s, known for the tracking of and feeding on other insects, colloquially
Colloquialism
A colloquialism is a word or phrase that is common in everyday, unconstrained conversation rather than in formal speech, academic writing, or paralinguistics. Dictionaries often display colloquial words and phrases with the abbreviation colloq. as an identifier...
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 maintainerSoftware maintainer
In free and open source software, a software maintainer is usually one or more people who build source code into a binary package for distribution, commit patches, or organize code in a source repository....
of the project. Version 1.0.0 was released in January 2006. Version 1.1.0 was released in December 2007. In November 2008, the project switched from using the Subversion revision control
Revision control
Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...
tool to Git
Git (software)
Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...
, a distributed revision control tool. In February 2010, version 1.2.0 was released.
Plug-ins
An event-drivenEvent-driven programming
In computer programming, event-driven programming or event-based programming is a programming paradigm in which the flow of the program is determined by events—i.e., sensor outputs or user actions or messages from other programs or threads.Event-driven programming can also be defined as an...
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 January 2010, there are over 20 plug-ins available on the MantisBT community Git
Git (software)
Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...
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. 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-mailE-mail
Electronic mail, commonly known as email or e-mail, is a method of exchanging digital messages from an author to one or more recipients. Modern email operates across the Internet or other computer networks. Some early email systems required that the author and the recipient both be online at the...
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
RSS
-Mathematics:* Root-sum-square, the square root of the sum of the squares of the elements of a data set* Residual sum of squares in statistics-Technology:* RSS , "Really Simple Syndication" or "Rich Site Summary", a family of web feed formats...
feeds are available for users who wish to keep track of issues that have been resolved. Additionally, MantisBT has integration with Twitter
Twitter
Twitter is an online social networking and microblogging service that enables its users to send and read text-based posts of up to 140 characters, informally known as "tweets".Twitter was created in March 2006 by Jack Dorsey and launched that July...
to allow a notification to be tweeted when an issue is resolved.
Via MantisBT's event-driven
Event-driven programming
In computer programming, event-driven programming or event-based programming is a programming paradigm in which the flow of the program is determined by events—i.e., sensor outputs or user actions or messages from other programs or threads.Event-driven programming can also be defined as an...
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
SMS
SMS is a form of text messaging communication on phones and mobile phones. The terms SMS or sms may also refer to:- Computer hardware :...
messages or updating statuses in external project management systems
Project management software
Project management software is a term covering many types of software, including estimation and planning, scheduling, cost control and budget management, resource allocation, collaboration software, communication, quality management and documentation or administration systems, which are used to...
).
Revision control system integration
Versions of MantisBT prior to 1.2.0 allowed for limited integrationSystem integration
In engineering, system integration is the bringing together of the component subsystems into one system and ensuring that the subsystems function together as a system...
with the CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...
revision control
Revision control
Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...
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.
As of January 2010, SourceIntegration allows for integration with the following revision control tools and web-based
Web application
A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...
providers:
- Gitweb, a free and open source web interface for GitGitGit may refer to:* Git , a British English term of abuse* Git , a distributed version control system* Git , by Skeletons & The Girl-Faced Boys...
repositories - GitHubGithubGitHub is a web-based hosting service for software development projects that use the Git revision control system. GitHub offers both commercial plans and free accounts for open source projects...
, an open-source software hosting facility that hosts Git repositories - WebSVN, a free and open source web interface for Subversion repositories
- SourceForgeSourceForgeSourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications .While originally itself...
(for Subversion integration only), an open-source software hosting facility that hosts various types of software repositories
Upon committing
Commit (data management)
In the context of computer science and data management, commit refers to the idea of making a set of tentative changes permanent. A popular usage is at the end of a transaction. A commit is an act of committing.-Data management:...
changeset
Changeset
In revision control, a changeset is a way to group a number of modifications that are relevant to each other in one atomic package, that may be canceled or propagated as needed. This is one synchronization model....
s 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
Job scheduler
A job scheduler is a software application that is in charge of unattended background executions, commonly known for historical reasons as batch processing....
such as cron
Cron
Cron is a time-based job scheduler in Unix-like computer operating systems. Cron enables users to schedule jobs to run periodically at certain times or dates...
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". This also allows for relationships
Entity-relationship model
In software engineering, an entity-relationship model is an abstract and conceptual representation of data. Entity-relationship modeling is a database modeling method, used to produce a type of conceptual schema or semantic data model of a system, often a relational database, and its requirements...
to be automatically created between changesets and issues recorded in MantisBT. Multiple issue IDs
Identification (information)
The function of identification is to map a known quantity to an unknown entity so as to make it known. The known quantity is called the identifier and the unknown entity is what needs identification. A basic requirement for identification is that the Id be unique. Ids may be scoped, that is, they...
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 searchFull text searchIn text retrieval, full text search refers to techniques for searching a single computer-stored document or a collection in a full text database...
- Audit trailAudit trailAudit trail is a sequence of steps supported by proof documenting the real processing of a transaction flow through an organization, a process or a system.....
s of changes made to issues - Revision controlRevision controlRevision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...
of text fields and notes - RoadmapsTechnology roadmapA technology roadmap is a plan that matches short-term and long-term goals with specific technology solutions to help meet those goals. It is a plan that applies to a new product or process, or to an emerging technology. Developing a roadmap has three major uses...
- ChangelogChangelogA changelog is a log or record of changes made to a project, such as a website or software project, usually including such records as bug fixes, new features, etc...
s - Graphing of relationships between issues
- Sponsorship of issues
- WikiWikiA wiki is a website that allows the creation and editing of any number of interlinked web pages via a web browser using a simplified markup language or a WYSIWYG text editor. Wikis are typically powered by wiki software and are often used collaboratively by multiple users. Examples include...
documentation integration for DokuWikiDokuWikiDokuWiki is a wiki application aimed at small companies’ documentation needs. DokuWiki is licensed under GPL 2 and written in the programming language PHP. It works on plain text files and thus needs no database. Its syntax is similar to the one used by MediaWiki.-History:DokuWiki was created by...
, MediaWikiMediaWikiMediaWiki is a popular free web-based wiki software application. Developed by the Wikimedia Foundation, it is used to run all of its projects, including Wikipedia, Wiktionary and Wikinews. Numerous other wikis around the world also use it to power their websites...
, TWikiTWikiTWiki is a Perl-based structured wiki application, typically used to run a collaboration platform, knowledge or document management system, a knowledge base, or team portal...
, WikkaWikiWikkaWikiWikkaWiki is a free, lightweight, and standards-compliant wiki engine. Written in PHP, it uses MySQL to store pages. WikkaWiki is a fork of Wakka Wiki to which a number of new features have been added...
and XWikiXWikiXWiki is a free wiki software platform written in Java with a design emphasis on extensibility. XWiki Enterprise, the enterprise wiki edition, includes WYSIWYG editing, OpenOffice based document import/export, semantic annotations and tagging, and advanced permissions management.As an application... - News
Development Languages
MantisBT is written in PHPPHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
and uses SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....
to interface with databases. The web-based user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
of MantisBT is written using XHTML
XHTML
XHTML is a family of XML markup languages that mirror or extend versions of the widely-used Hypertext Markup Language , the language in which web pages are written....
which is styled and presented using CSS
Cascading Style Sheets
Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...
. jQuery
JQuery
jQuery is a cross-browser JavaScript library designed to simplify the client-side scripting of HTML. It was released in January 2006 at BarCamp NYC by John Resig...
is a client-side JavaScript
Client-side JavaScript
Client-side JavaScript is JavaScript that runs on the client-side. While JavaScript was originally created to run this way, the term was coined because the language is no longer limited to just client-side, since server-side JavaScript is now available.-Environment:The most common Internet media...
library that MantisBT uses to provide optional features to clients such as Ajax
Ajax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
and JSON
JSON
JSON , or JavaScript Object Notation, is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects...
powered dynamic page content. Development tools and build scripts are written predominantly in Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
.
MantisBT's codebase
Codebase
The term codebase, or code base, is used in software development to mean the whole collection of source code used to build a particular application or component. Typically, the codebase includes only human-written source code files, and not, e.g., source code files generated by other tools or...
dates back to a time when PHP's support for object-oriented programming principles
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
was in its infancy. As of version 1.2.0, the majority of the MantisBT codebase still uses procedural programming principles
Procedural programming
Procedural programming can sometimes be used as a synonym for imperative programming , but can also refer to a programming paradigm, derived from structured programming, based upon the concept of the procedure call...
. Some sections of the MantisBT codebase have been converted to make use of PHP 5's new object model.
Database storage
Data is stored in a relational database management systemRelational database management system
A relational database management system is a database management system that is based on the relational model as introduced by E. F. Codd. Most popular databases currently in use are based on the relational database model....
by means of the ADOdb
ADOdb
ADOdb is a database abstraction library for PHP and Python based on the same concept as Microsoft's ActiveX Data Objects. It allows developers to write applications in a fairly consistent way regardless of the underlying database system storing the information...
database abstraction
Abstraction (computer science)
In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...
library. Popular database servers supported by the ADOdb
ADOdb
ADOdb is a database abstraction library for PHP and Python based on the same concept as Microsoft's ActiveX Data Objects. It allows developers to write applications in a fairly consistent way regardless of the underlying database system storing the information...
library and MantisBT include MySQL
MySQL
MySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...
, PostgreSQL
PostgreSQL
PostgreSQL, often simply Postgres, is an object-relational database management system available for many platforms including Linux, FreeBSD, Solaris, MS Windows and Mac OS X. It is released under the PostgreSQL License, which is an MIT-style license, and is thus free and open source software...
, Microsoft SQL
Microsoft SQL Server
Microsoft SQL Server is a relational database server, developed by Microsoft: It is a software product whose primary function is to store and retrieve data as requested by other software applications, be it those on the same computer or those running on another computer across a network...
, IBM DB2
IBM DB2
The IBM DB2 Enterprise Server Edition is a relational model database server developed by IBM. It primarily runs on Unix , Linux, IBM i , z/OS and Windows servers. DB2 also powers the different IBM InfoSphere Warehouse editions...
and Oracle
Oracle Database
The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....
.
MantisBT maintains a database upgrade path between versions by modifying the database schema
Database schema
A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed...
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 serverWeb server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....
, PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
programming language interpreter and relational database management system
Relational database management system
A relational database management system is a database management system that is based on the relational model as introduced by E. F. Codd. Most popular databases currently in use are based on the relational database model....
supported by ADOdb
ADOdb
ADOdb is a database abstraction library for PHP and Python based on the same concept as Microsoft's ActiveX Data Objects. It allows developers to write applications in a fairly consistent way regardless of the underlying database system storing the information...
.
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.
MantisBT bundles a number of dependencies with each release including:
- ADOdbADOdbADOdb is a database abstraction library for PHP and Python based on the same concept as Microsoft's ActiveX Data Objects. It allows developers to write applications in a fairly consistent way regardless of the underlying database system storing the information...
for abstractionAbstraction (computer science)In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...
of support for relational database management systems - Disposable for disposable e-mailDisposable e-mail addressDisposable email addressing refers to an alternative way of sharing and managing email addressing. DEA aims to set up a new, unique email address for every contact or entity, making a point-to-point connection between the sender and the recipient...
checking functionality - eZ ComponentsEZ publish-External links:* * * * * *...
for plottingPlot (graphics)A plot is a graphical technique for representing a data set, usually as a graph showing the relationship between two or more variables. The plot can be drawn by hand or by a mechanical or electronic plotter. Graphs are a visual representation of the relationship between variables, very useful for...
of statistics - NuSOAP for SOAPSOAPSOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks...
web serviceWeb serviceA Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...
support - PHPMailer for e-mailE-mailElectronic mail, commonly known as email or e-mail, is a method of exchanging digital messages from an author to one or more recipients. Modern email operates across the Internet or other computer networks. Some early email systems required that the author and the recipient both be online at the...
sending support - ProjaxProjaxProjax stands for Prototype and Ajax. This is a port of RoR prototype and script.aculo.us helpers to standalone PHP classes. This port allows you to use most Ajax functions of Prototype and simplifies user interface design using script.aculo.us. It has a small footprint and is PHP4 and PHP5...
for AjaxAjax (programming)Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
capabilities in the user interfaceUser interfaceThe user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the... - RSS Builder for RSSRSS-Mathematics:* Root-sum-square, the square root of the sum of the squares of the elements of a data set* Residual sum of squares in statistics-Technology:* RSS , "Really Simple Syndication" or "Rich Site Summary", a family of web feed formats...
feed support - PHP UTF-8 wrapper libraryWrapper libraryIn computer programming, a library is a collection of subroutines or classes used to develop software. Libraries expose interfaces which clients of the library use to execute library routines. Wrapper libraries consist of a thin layer of code which translates a library's existing interface into a...
for internationalizationInternationalization and localizationIn computing, internationalization and localization are means of adapting computer software to different languages, regional differences and technical requirements of a target market...
support in absence of PHP's mb_string extension
For drawing graphs
Graph (mathematics)
In mathematics, a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected objects are represented by mathematical abstractions called vertices, and the links that connect some pairs of vertices are called edges...
of relationships between issues, GraphViz
Graphviz
Graphviz is a package of open-source tools initiated by AT&T Labs Research for drawing graphs specified in DOT language scripts. It also provides libraries for software applications to use the tools...
is required. MantisBT also has an alternative dependency upon the commercial JpGraph graphics library for plotting of statistics.