Mantis Bugtracker
Encyclopedia
Mantis Bug Tracker is a free and open source
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 maintainer
Software 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-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 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-mail
E-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 integration
System 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 Git
    Git
    Git may refer to:* Git , a British English term of abuse* Git , a distributed version control system* Git , by Skeletons & The Girl-Faced Boys...

     repositories
  • GitHub
    Github
    GitHub 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
  • SourceForge
    SourceForge
    SourceForge 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 search
    Full text search
    In text retrieval, full text search refers to techniques for searching a single computer-stored document or a collection in a full text database...

  • Audit trail
    Audit trail
    Audit 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 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...

     of text fields and notes
  • Roadmaps
    Technology roadmap
    A 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...

  • Changelog
    Changelog
    A 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
  • Wiki
    Wiki
    A 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 DokuWiki
    DokuWiki
    DokuWiki 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...

    , MediaWiki
    MediaWiki
    MediaWiki 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...

    , TWiki
    TWiki
    TWiki 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...

    , WikkaWiki
    WikkaWiki
    WikkaWiki 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 XWiki
    XWiki
    XWiki 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 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...

 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 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....

 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 server
Web 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:
  • 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...

     for 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...

     of support for relational database management systems
  • Disposable for disposable e-mail
    Disposable e-mail address
    Disposable 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 Components
    EZ publish
    -External links:* * * * * *...

     for plotting
    Plot (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 SOAP
    SOAP
    SOAP, 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 service
    Web service
    A 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-mail
    E-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...

     sending support
  • Projax
    Projax
    Projax 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 Ajax
    Ajax (programming)
    Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...

     capabilities in the 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...

  • RSS Builder for 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...

     feed support
  • PHP UTF-8 wrapper library
    Wrapper library
    In 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 internationalization
    Internationalization and localization
    In 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.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK