Open Testware Reviews

Mantis

Copyright 2004 by Tejas Software Consulting - All rights reserved.

Contents

Overview -- Observations -- Maturity -- Project activity -- Platforms -- Support -- Documentation -- Installation -- Implementation -- Performance -- Similar tools -- Limitations

Overview

Reviewer: Danny R. Faught
Date reviewed: 2004-05-31
Version reviewed: 0.18.2
Maintainer: Kenzaburo Ito and a team of 10 other developers
URL: http://www.mantisbt.org/
Testingfaqs.org category:
Defect Tracking Tools
License: GNU GPL v. 2
User interface: web

Mantis is a web-based bug tracking tool that can run on many different platforms. It's written in PHP and uses the MySQL database. It was written by Kenzaburo Ito and was handed off to a team of volunteer developers around 2002. Here's a screen shot:

Mantis screen shot

Observations

Mantis includes a basic set of bug tracking features for a software project. Its main appeal is its simplicity.

Bug reporting is fairly straightforward. A simple form comes up by default. The simple form doesn't include the "Product Version" field, which is something that I always like to see in a bug report. You can switch to the advanced report, which adds fields for product version, operating system, plus several others that I wouldn't typically use. You can add custom fields, but the options for customizing built-in fields are limited. Some basic features, such as searching, aren't available for custom fields.

Browsing existing bugs is not difficult. There are several filters at the top of the View Bugs page that can help you focus on the bugs you want to look at. But more sophisticated searching is not supported, like listing bugs opened or closed within a certain date range. There is a CSV export feature that could allow you to use another program to do more sophisticated reporting, but it doesn't include enough of the fields to be very useful. You might find yourself directly querying the database to get decent reports (it's not unusual to resort to this when using a commercial bug tracking tool, too).

I had trouble getting email notifications to work. There are several ways to customize email delivery, including replacing PHP's standard mail function with PHPMailer (which I didn't try). Questions about email notification problems were fairly frequent on the mantisbt-help mailing list. In my case, I was using a server that is not normally used to deliver email, and that compounded the problem. Given enough time to properly configure the server and Mantis's email options, it looks like the email problems can be solved.

I noticed several nifty features.

Version 0.18.3 was released during the course of my review. According to the release notes, the changes focus on fixing security vulnerabilities and improving the CSV export feature.


While Mantis didn't have all the features I'd want for a hard-core bug tracking tool, I've had similar frustrations with some of the commercial tools I've used. In fact, I don't think I've ever seen a bug tracking tool that really made a good first impression. If your needs are simple and you can tolerate some quirks, Mantis could be a good choice. If you're wanting to implement your own bug tracking system, you'd do well to start with a code base like Mantis instead of starting from scratch.

Maturity

4 - Beta (on a scale of 1-5)

SourceForge says production quality, but the "0" release number and the Mantis documentation indicate that it is still in the beta stage. I give it a beta rating primarily because of difficulties in configuring email notification, incomplete documentation, and robustness problems.

Project activity

5 - Very active (on a scale of 1-5)

Five releases in the past year, counting one beta release. Releases have been decelerating over the past few years, so an "Active" rating may not be too far away.

There is a good level of community activity. Traffic on the mantisbt-help user-level mailing list is fairly light but consistent. Traffic on the mantisbt-dev mailing list for developers seems to be bursty, with no messages some months and a peak of 240 messages in February 2003.

Platforms

Mantis requires a web server (Apache, IIS, and others will work), PHP 4.0.2+ and MySQL 3.23.2+. Several different operating systems can run Mantis, including Windows, MacOS, OS/2, Linux, Solaris, and BSD. Disk usage requirements are fairly light if users don't upload large attachments. I did not find any limitations on the client platforms that can be used to access the web interface.

Support

A few people offer consulting services for Mantis setup, customization, and maintenance.

There are five mailing lists for Mantis - mantisbt-announce, mantisbt-cvs, mantisbt-dev, mantisbt-help, mantisbt-lang. The mantisbt-help list is the place to start.

Oddly enough, there are also five web forums for Mantis, and several of them also have a good deal of activity, though not quite as much as on the mailing lists. It seems strange to splinter the discussions across two different types of discussion mechanisms. SourceForge does not list the forums where it usually does, but you can get to them through the Mantis home page. There is also an IRC channel dedicated to Mantis. You can watch for news on the "Latest News" section on the SourceForge summary page, and also a somewhat different new listing on the Mantis home page.

The change log for Mantis releases is available using the tool's web interface if your account has administrator privileges (go to Manage->Documentation->ChangeLog). This is a nice feature. The README file and other text files from the installation package are also available using this interface.

Like most SourceForge projects, version control is handled via SourceForge's CVS server. Bugs are not tracked using SourceForge's bug tracker, but instead with Mantis itself. It's a good sign when a development team uses their own tool.

Documentation

The user documentation is maintained on manual.mantisbt.org and is not available in the local installation. This means that the documentation you're reading might not match the version of Mantis that you have installed. Furthering the confusion is the note in the manual that says the documentation is for version 0.18.0, which is older than the version I had installed. I was told by one of the developers that the documentation is intended to apply to all 0.18.x releases.

While a good deal of work has obviously gone into the documentation, it still only gives sparse coverage of most of the features, and it's not hard to find corners of the application that aren't documented at all. One nice feature of the documentation is that users are allowed to post comments (with a moderator's approval) on any page. It would be interesting to see how many of these comments lead to improvements in the core documentation.

On the local installation, administrators can upload additional "Project Documentation" that will be visible to everyone who can access the project.

The Google search feature on the documentation pages is broken. A workaround is to go to Google yourself and add "site:manual.mantisbt.org" to your search terms. (bug 3742)

Installation

Mantis installs from a compressed tar file that's just over half a megabyte, expanding to about 2.5 megabytes when installed. I later saw that Mantis is also available as a Debian package using apt-get. Installing Mantis requires some administrator-level knowledge of the MySQL database, the PHP scripting language, and your web server.

The documentation doesn't offer any help in installing MySQL or creating the database for Mantis, though I found these steps fairly simple when I installed the Debian package for MySQL and found the appropriate documentation for creating a database. I had no experience with MySQL or PHP before I started. The most confusing part was setting up MySQL user accounts, which I still don't quite understand. After this point, the Mantis installation documentation was very helpful.

PHP was easy to install on Linux along with the Apache web server. I did have to install an extra extension so PHP could connect to the database (the php4-mysql package).

I tried to install Mantis on a Windows XP box that's also running Apache, accessing the database on the Linux server. But installing PHP was more difficult than it was on Linux, and I lost interest before I got it working.

There's an "Upgrade your installation" link on the administration page that updates the database schema when you upgrade to a newer version of Mantis.

Implementation

Mantis is about 18,000 lines of PHP code, according to SLOCCount. Some files are well-commented, but other files are commented only sparsely. I did not see any test cases, though there is a diagnostic page in the admin directory that provides useful information and an email delivery test.

Performance

I tested Mantis on my old 450 MHz machine running Debian Linux 3.0 as the server, with 384 MB memory. I used a 1.4 GHz Windows XP machine as the client, connecting over a 100 megabit network.

The Summary page was slow for me. It took 14 seconds for the Summary page to load for a project with one bug. For a project with more than 16,000 bugs (which shared a database with the small project), it took 43 seconds to load the Summary page. It takes about 10 seconds to load one of the "View Bugs" pages on that larger project. Using the browser's Back button could similarly result in long delays, so I often would view a bug in a new browser window in order to avoid waiting for a large page to reload when I want to go back to it.

The bug database for Mantis itself was faster than this, which leads me to believe that they have a faster machine and have probably tuned the database and web server better than I have. Another factor is that there are only about 2000 total bugs in their database.

I noticed very little disk access during my performance testing, so the database is probably fitting within the buffer cache. Mantis seems to be CPU bound on my antiquated system, with Apache (running the PHP module) and MySQL taking turns hogging the CPU.

Performance can be slow if there are a lot of comments attached to the bugs, according to bug 2921.

Similar tools

The most popular free bug tracking software is Bugzilla. I chose to review Mantis instead because two subscribers specifically requested it. Mantis is generally considered to be a simpler tool to set up and maintain than Bugzilla. The Mantis user interface is also less cluttered than Bugzilla's, which has always struck me as ugly. You can see Bugzilla in action at its original home, the Mozilla project. If Mantis provides all the features you need, it might be worth choosing it in favor of Bugzilla.

There are a few dozen other free bug tracking tools, and several ticket tracking and project management tools that can be used for bug tracking. Thirteen are mentioned in the Defect tracking tools survey from last year.

Limitations

The bug database for Mantis shows 744 bugs open, 104 of which are marked as resolved, plus 1263 closed bugs. So it appears that users of a bug tracking tool are quick to volunteer to report bugs against the tool itself. I reported 15 new bugs during the course of my review (summarized below), and I also ran into several bugs that were already filed in the database. These items are the most serious limitations and clusters of problems that I encountered:
The bugs I reported are listed below, which may give you a sample of the character of previously unexplored problems in the tool and mantisbt.org:

3780 - Misspelling in doc/README - "administraton"
3781 - Bad link to php.net on admin/check.php
3782 - Inconsistent documentation of register_globals
3783 - Labels overflow table boundary on View Bugs page
3784 - Mangled news display on stylesheet admin page
3785 - Typos on faq item 9.16
3786 - Deleting a category that is in use should issue a warning
3787 - Stale reference in doc/INSTALL
3793 - Enumeration values might be impossible to select
3794 - Fields can quietly take on unintended values after enumerations are modified
3799 - Race condition in summary calculations causes inconsistent totals
3798 - Locked out of View Bugs page after large query
3899 - Bogus error when adding a documentation file without drive spec
3907 - Bad RSS link on http://bugs.mantisbt.org/
3908 - Summary page doesn't show total number of bugs