November 14, 2008

Set Mantis to track your bugs

Author: Joseph Quigley

Mantis is that rare bug-tracking program for small projects that is neither too bloated nor too featureless. It's an excellent choice for developers who need a bug tracker that the average computer user can use. Its clean interface and numerous features make bug tracking fast and easy.

Mantis is written in PHP and localized in 68 different languages. Its database back end can run on MySQL, PostgreSQL, and Microsoft SQL Server. Developers and users can report bugs via a Web interface, WAP-enabled mobile devices (through the purchase of a third-party plugin), and custom HTML forms, with which you can give any Web page its own customized bug submission form. It can notify developers and normal users of reported bugs through email, RSS feeds, and even Twitter. Mantis also implements a PHP SOAP library, which allows programs like Eclipse and platforms like Java and Mono/.Net to interface with it too. With a bit of work, Mantis will also integrate with source control software or a wiki, allowing users and developers to investigate source files and discuss current bugs or future releases.

Mantis 1.1.2 provides all the expected features that more well-known bug tracking solutions such as Bugzilla and Trac offer, but without the bloat. It provides simple and detailed issue pages, and supports multiple projects, subprojects, and bug types (such as a user interface bug or a sound-related issue), which Mantis calls categories. It gives individual users roles and privileges, and displays a changelog and roadmap based on any bug's resolution state. It also allows users to monitor specific issues and organize bugs based on how they relate to a user -- for instance, displaying or not displaying certain bugs depending on whether the user is anything from administrator to an anonymous reporter.

Mantis is easy to install, especially in contrast with Bugzilla. After you uncompress the Mantis download, upload it to your server. From a browser, type the URL where you uploaded the Mantis folder to. That invokes a Web installer that asks for database information and creates an administrator account. It then tells you to delete the admin folder inside the Mantis project folder for security reasons.

Mantis is also easy to use for bug-tracking basics. The navigation panel is well laid out, and reporting a bug is a snap. Admins can change a bug's resolution state, assign a bug to a user, and modify a software project's settings with virtually no effort, and users don't need to go through a lengthy process just to report bugs.

But Mantis isn't always simple when it comes to advanced features. By default each bug's properties (such as which software version it affects) must be configured by hand for it to display in the changelog or the roadmap. You can change this behavior by creating a software version for the project (which unfortunately Mantis can't do automatically) in the Manage Projects administration panel. After that, click on the Update Issue link after selecting a bug, then click on Update Advanced. After this lengthy process, existing bugs appeared in the changelog and the roadmap automatically.

Mantis provides some features that Bugzilla lacks. For instance, Bugzilla does not generate changelogs except through a plugin. Mantis also color-codes the status of bugs (by default green for resolved, red for new, blue for assigned), which makes it easy to identify their status when you're quickly browsing through the list. While Trac gives bugs a few different shades to increase visibility (and Bugzilla just provides whitespace), neither automatically colors bugs based on their resolution state as strongly as Mantis does, allowing less-observant users to scroll through faster.

Mantis's search interface, which is perhaps its best feature, feels cleaner and more polished than those of Bugzilla and Trac. Its intuitive search capabilities allow users to search based on criteria such as severity, priority, version, resolution, reporter, product build, operating system, project, and date. Users can search for bugs by applying one filter or multiple ones.

Mantis goes one step further than Trac when it comes to browsing bugs by date, owner, and whether the tickets are active or not. Mantis lets you re-organize the list by clicking on the column you wish to sort by. One downside to Mantis's interface is that it is not possible to organize bugs by version. You can search for bugs based on a specific version with the advance search ability, but you cannot compare two bugs from two separate versions. Another minor drawback to deploying Mantis is that it doesn't integrate a wiki or source control software by default.

To integrate Mantis with a wiki, an admin must modify a few source files on both ends. The Mantis Project's wiki has a page with instructions and the PHP code required to install DokuWiki. Integrating the two is just a matter of copy and paste. If you prefer TikiWiki, you may run into trouble. While Mantis's feature page says it integrates with TikiWiki, I looked all over the Mantis and TikiWiki Web sites and couldn't find any information concerning either. Finally I found a CVS log on that said Mantis integration was removed from TikiWiki in 2004.

To integrate source control, such as SVN, the process is much simpler. An admin doesn't need to compile a special build of the source control to be integrated, but with SVN, for example, he does need to write a custom hook. Mantis can then automatically close tickets based on the SVN log.

While getting Mantis to work with more "exotic" features such as Twitter updates or reporting via email isn't drop-dead simple, features such as source control and wiki integration aren't difficult to set up. The Mantis team hopes to fix some of these inconveniences with its next major release, Mantis 1.2 (for which I couldn't find an expected release date), which will make plugin integration easier for both developers and administrators who want to use them.

Mantis is a great application for tracking bugs, and from the looks of its roadmap, the next major version will be even better.


  • Reviews
  • Tools & Utilities
  • Programming
  • Internet & WWW