Mantis Bug Tracker

Last updated

Mantis Bug Tracker
Original author(s) Kenzaburo Ito
Developer(s) Various (Open-source contributors)
Initial release2000;24 years ago (2000)
Stable release
2.26.1 [1]   OOjs UI icon edit-ltr-progressive.svg (2024-02-20) [±]
Preview release
2.25.0-dev (February 23, 2021;3 years ago (2021-02-23)) [±]
Repository
Written in PHP
Operating system Cross-platform
Available in49 languages
List of languages
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 www.mantisbt.org

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.

Contents

The name Mantis and the logo of the project refer to the insect family Mantidae, known for tracking 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 the 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. [2] Version 1.0.0 was released in February 2006. [3] Version 1.1.0 was released in December 2007. [4] In November 2008, after a long discussion, [5] the project switched [6] from using the Subversion revision control tool to Git, a distributed revision control tool. In February 2010, version 1.2.0 was released. [7] In July 2012, the MantisBT organization on GitHub became the official repository for the Project's source code. [8]

Features

Plug-ins

An event-driven plug-in system was introduced with the release of version 1.2.0. [9] 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. [10] 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 (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. [11] With the introduction of plug-in capabilities in MantisBT 1.2.0, revision control integration was redeveloped by Amethyst Reese in the SourceIntegration plugin.

The initial release of the SourceIntegration plugin supported GitHub, GitWeb, SourceForge and WebSVN. [12] 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:

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. [12]

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. [14]

Minor features

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

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. [16] 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. [17] 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. [18] [19]

Database storage

Data is stored in a relational database management system by means of the ADOdb database abstraction library. MantisBT supports MySQL, MariaDB and PostgreSQL. It has experimental support for Microsoft SQL and Oracle. [20]

MantisBT maintains a database upgrade path between versions by modifying the database schema incrementally. [21] 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 [11] and ADOdb. [22]

As of June 2022, the stable branch of MantisBT requires PHP 7.0 or later. [20]

Several PHP extensions are required [11] 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: [23]

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

Related Research Articles

<span class="mw-page-title-main">Apache Subversion</span> Free and open-source software versioning and revision control system

Apache Subversion is a software versioning and revision control system distributed as open source under the Apache License. Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS).

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

Trac is an open-source, web-based project management and bug tracking system. It has been adopted by a variety of organizations for use as a bug tracking system for both free and open-source software and proprietary projects and products. Trac integrates with major version control systems including Subversion and Git. Trac is used, among others, by the Internet Research Task Force, Django, FFmpeg, jQuery UI, WebKit, 0 A.D., and WordPress.

<span class="mw-page-title-main">Quicksilver (software)</span>

Quicksilver is a utility app for macOS. Originally developed as proprietary freeware by Nicholas Jitkoff of Blacktree, Inc., it is now an open-source project hosted on GitHub.

<span class="mw-page-title-main">Mercurial</span> Distributed revision-control tool for software developers

Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows, Linux, and other Unix-like systems, such as FreeBSD and macOS.

Notable issue tracking systems, including bug tracking systems, help desk and service desk issue tracking systems, as well as asset management systems, include the following. The comparison includes client-server application, distributed and hosted systems.

In software development, version control is a class of systems responsible for managing changes to computer programs or other collections of information such that revisions have a logical and consistent organization. The following tables include general and technical information on notable version control and software configuration management (SCM) software. For SCM software not suitable for source code, see Comparison of open-source configuration management software.

A comparison of Subversion clients includes various aspects of computer software implementations of the client role using the client–server model of the Subversion revision control system.

Azure DevOps Server, formerly known as Team Foundation Server (TFS) and Visual Studio Team System (VSTS), is a Microsoft product that provides version control, reporting, requirements management, project management, automated builds, testing and release management capabilities. It covers the entire application lifecycle and enables DevOps capabilities. Azure DevOps can be used as a back-end to numerous integrated development environments (IDEs) but is tailored for Microsoft Visual Studio and Eclipse on all platforms.

ikiwiki

ikiwiki is a free and open-source wiki application, designed by Joey Hess. It is licensed under the terms of the GNU General Public License, version 2 or later. ikiwiki is written in Perl, although external plugins can be implemented in any language.

In FOSS development communities, a forge is a web-based collaborative software platform for both developing and sharing computer applications.

Fisheye is a revision-control browser and search engine owned by Atlassian, Inc. Although Fisheye is a commercial product, it is freely available to open source projects and non-profit institutions. In addition to the advanced search and diff capabilities, it provides:

<span class="mw-page-title-main">Jenkins (software)</span> Open source automation server

Jenkins is an open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration, and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat. It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase, and RTC, and can execute Apache Ant, Apache Maven, and sbt based projects as well as arbitrary shell scripts and Windows batch commands.

<span class="mw-page-title-main">RhodeCode</span> German software company

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 management. RhodeCode allows forking, pull requests, and code reviews via a web interface.

Springloops is a web-based Git and Subversion version control and hosting service with integrated deploy and code collaboration features for web and software developers. Springloops was also the name of the company behind the service until it rebranded to 84kids in May 2013.

References

  1. "Release 2.26.1". February 20, 2024. Retrieved March 22, 2024.
  2. "team of MantisBT. This marks a new era in MantisBT lifetime where it is now a team project". GitHub . November 19, 2021.
  3. "Mantis 1.0.0 (stable) Released". MantisBT announcements mailing list. SourceForge.net. February 4, 2006.
  4. "Mantis 1.1.0 Released". Mantis Bug Tracker Blog. Mantisbt.org. December 20, 2007.
  5. "Moving from SVN to Git". Mantisbt-dev mailing list. Sourceforge.net. November 4, 2008.
  6. Amethyst Reese (November 10, 2008). "First MantisBT Git commit". Github.com.
  7. "MantisBT 1.2.0 Released". Mantis Bug Tracker Blog. Mantisbt.org. February 22, 2010.
  8. "MantisBT Moving to Github". MantisBT announcements mailing list. SourceForge.net. July 12, 2011.
  9. "MantisBT 1.2.0rc1 Release Candidate 1". Mantis Bug Tracker Blog. Mantisbt.org. June 23, 2009.
  10. "Mantis bugtracker plugins". Deboutv.free.fr. Retrieved July 14, 2010.
  11. 1 2 3 4 5 "Mantis Bug Tracker Administration Guide". Archived from the original on December 2, 2013. Retrieved November 11, 2013.
  12. 1 2 Reese, Amethyst (January 7, 2009). "Integrating Git and SVN with the Mantis Bug Tracker". NoSwap.com. Retrieved November 11, 2013.
  13. "Ton on LabVIEW: Connecting Mantis with Rhodecode". July 6, 2011.
  14. "Subversion Best Practices" . Retrieved August 22, 2012.
  15. "Mantis Feature List". MantisBT wiki. Mantisbt.org. September 25, 2012. Retrieved November 11, 2013.
  16. "Languages". Ohloh.net. Archived from the original on December 8, 2013. Retrieved November 12, 2013.
  17. "History of PHP". PHP.net. November 8, 2013. Retrieved November 12, 2013.
  18. "MantisBT source code". GitHub.com. June 11, 2009.
  19. "MantisBT source code". GitHub.com. February 6, 2008.
  20. 1 2 "Admin Guide". mantisbt.org. Retrieved June 7, 2022.
  21. "MantisBT source code - admin/schema.php". GitHub.com. Retrieved November 12, 2013.
  22. "ADODB Manual". Phplens.com. Retrieved November 12, 2013.
  23. "MantisBT source code - library/README.libs". GitHub.com. Retrieved November 12, 2013.