Project of the Month, April 2010

Mantis Bug Tracker

Victor:
MantisBT is a web-based issue tracking system originally designed for use by software development teams and their customers. However users have been using MantisBT for issue tracking and project management in a variety of environments including help desks, project management, TODO list management and others. MantisBT is unique in that it finds the delicate balance between richness in features while maintaining simplicity of usage, deployment and customization..

Why and how did you get started?

Victor:
MantisBT was started about 10 years ago by Kenzaburo Ito and a friend as a bugtracker for their pet project. A search for good, free packages came up with nothing suitable so they wrote their own. After a rewrite and cleanup it was made available to the public via the GNU General Public License (GPL) and hosted on SourceForge. The official starting date was 2000-11-21 08:38:14.

Who is the software’s intended audience?

Victor:
MantisBT was designed with a focus on software development for use by development teams and their customers. The user experience had to scale all the way from power users (developers and project managers) to end users who are after a frictionless and simple interface. Due to the simplicity of the interface users have started using MantisBT in several other domains.

What are a couple of notable examples of how people are using your software?

Victor:
In addition to software development, website development and general IT audiences we have seen MantisBT used as a generalized ticketing system, project management tool and shared TODO list manager for non-IT related projects. These users have been able to use MantisBT in vastly different ways because of the high level of customization that is offered by MantisBT.

What are the system requirements for your software, and what do people need to know about getting it set up and running?

David:MantisBT is developed in PHP and stores data in a database server (of which MantisBT supports many different database servers). All you need is a supported database server (usually MySQL or PostgreSQL) and a web server (Apache, Lighttpd, IIS, etc) that can execute PHP scripts. It is strongly advised that a PHP accelerator such as APC or XCache is used to dramatically speed up the execution of PHP scripts. Thus MantisBT can be used equally well on Windows, Mac OS X, Linux, and BSD based operating systems.

Installation is simple and instructions are available within the user manual if required. The administrator manual will be of assistance to more advanced users who wish to dramatically customize or extend MantisBT for their individual needs.

What gave you an indication that your project was becoming successful?

Victor:
Over the lifetime of the project you hit aspects that reflect the success of the project. These include:

·        Active user and developer community.

·        Localization of MantisBT into 50 languages.

·        Positive reviews by well respected publishers like Linux Journal and Linux.com

·        Selection by Zend and IBM as one of five apps to port to IBM i5/db2.

·        Winning Linux Journal Editors’ Choice 2006 for Management or Admin software.

·        Great team of developers that are passionate about MantisBT.

·        Constant increase in popularity via page hits, downloads, and references on the Internet.

What has been your biggest surprise?

Victor: I never expected that a bug tracker reach downloads per month exceeding 20,000 per month (our record is 33,500 downloads in one month), for a bug tracker where there is one instance per company, that was a shocking for me.

Glenn: I have been amazed as to where MantisBT shows up. I have arrived at several projects to find it in place and customized in some cases.

What has been your biggest challenge?

Victor: The biggest challenge that we’ve faced (and which is a common challenge to open source projects in general) is the development of documentation and a project web site. It’s generally more exciting for contributors to build features than to document them. However there is a lot of passion about developing features and localizing MantisBT.

Giallu: One ongoing challenge is to improve community participation by providing an easy path for starting developing for MantisBT. Plugins support goes somewhat in this direction but contributors to core development are still sparse. Reviewing and accepting patches should be be simpler and faster to grow a larger contributor base.

Why do you think your project has been so well received?

Victor: The positive feedback that I’ve noticed repeating over and over again is simplicity. Users find MantisBT easy to install, use, and customize. They also find it very powerful in terms of features and customization without the software being over complicated and bloated.

What advice would you give to a project that’s just starting out?

Victor: Rather than starting your project from scratch, find if there is a project that is closest to what you need and help make it better. This is what I’ve done back in 2002 by joining MantisBT rather than starting my own bug tracker. Once you get started, you have to allocate a good portion of your time focusing on the community and not just coding. This involves building the right tools for others to contribute, answering questions in emails and forums, focusing on stability and upgrade paths, use a platform that maximizes your pool of users (LAMP stack is a good example), etc.

David: Setup a solid and modern infrastructure including a distributed version control system such as git and a bug tracker (integrated with the version control system). You should make it as open and easy as possible for contributors to submit patches, suggestions and bug reports. Try to make your contributors feel like they’re in control of the project just as much as yourself.

Communication channels for help and support such as IRC, mailing lists and a blog or website will help build a community of users. A strong supportive community of users is invaluable for the testing they perform on your software and for the feedback and suggestions they provide.

It’s a good idea to continually look to other successful open source projects for inspiration. What can you learn from them? How could they further improve their infrastructure and level of community involvement?

Where do you see your project going?

Victor:

·        MantisBT is the development hub – Most of the development teams use a source control system, a bug tracker, and a wiki. The bug tracker is well positioned to be the hub or main tool that glues everything together. MantisBT through its rich functionality and plugins can provide integration with: source control, chat, micro-blogging, wiki, development methodology, build system, testing framework, continuous integration and others.

·        Mobility – Current solution is based on MantisWAP which uses WAP protocol to provide a light weight web interface. As smart phones are becoming more common, we should provide richer native interface for such phones on platforms like iPhone, Android and Windows Phone.

·        Multi-tenant – As more hosts like SourceForge start offering MantisBT as a service, it makes a lot of sense for the team to invest in making MantisBT provide a rich multi-tenant experience even with more advanced features like plugins.

David: I think we will see a lot of interest from third parties in developing plugins for MantisBT. Hopefully this will result in more interest being placed in developing the core of MantisBT with enhanced subsystem API’s. Areas in which I predict the largest degree of change are:

·        User interface design (HTML5, CSS3).

·        Dropping dependencies that are no longer maintained in favor of modern equivalents.

·        Continued conversion of the codebase to use the latest PHP object orientated programming techniques.

What’s on your project wish list?

Victor: In the short term our wish list includes:

·        Getting contributors for owning documentation for users and developers.

·        Getting contributors for improving user experience and web design.

·        Seeing new developers come up with many new plugins for MantisBT.

·        Developing plugins for software development processes like SCRUM.

·        Developing mobile clients for iPhone, Android and Windows Mobile.

What are you most proud of?

Victor: I feel great pride when I meet people through friends, work or in conferences and find that they are familiar with MantisBT and either are currently using it or have used it in the past. Also seeing MantisBT ranking as one of the top bug trackers on the web is such a great honor to everyone on the team. I also get very motivated when users report that their team’s productivity and customer experience have improved by moving to MantisBT.

David: The MantisBT project has a significant capability to change the way software developers run their own projects. Our users are exposed and captive to the operation of the MantisBT project itself. The reason they’re visiting our web site is that their job is typically one that requires them to setup development infrastructure for a project. They see us using Git for version control and MantisBT to manage the project. Thus I think many of our users (sometimes unknowingly) look up to the MantisBT project as a role model for their own projects.

MantisBT uses the Bazaar model approach to software development as made popular by Eric S. Raymond’s in his well known essay “The Cathedral and the Bazaar”. I’m particularly proud of moments when MantisBT users realise the benefits of the Bazaar software development model based on their involvement with the MantisBT project. Instead of maintaining their own patches for improvements they’ve made to MantisBT, they see the benefit of sharing those patches with as many other MantisBT users as possible.

With a plugin system recently introduced we’ve already seen a surge of activity from users seeking to extend the functionality of MantisBT. One recent example that impressed me was seeing a small team of developers from Ethiopia produce a number of plugins and patches for MantisBT. It is my hope that more software development teams will consider becoming involved in the MantisBT project not just as users but as developers (even if it’s just a few small patches, translations or additions to the documentation).

If you could change something about the project, what would it be?

Victor:

·        Use a PHP framework (e.g Zend Framework).

·        In addition to SOAP webservice API, offer REST web service APIs.

·        More unit testing.

John:

·        Move to a proper MVC-style separation of code, and related, implement some sort of output templates.

·        Extend the new plugin system to cover more of the core functionality, and allow more possibilities for further expansion (e.g. authentication extensions).

·        Implement better isolation of core API’s with test cases of some fashion to help prevent regressions.

How do you coordinate the project?

Victor: At the beginning of a release we identify the big areas of investments that we have developers that are passionate about. The core team then works on these themes of functional areas in addition to lots of other feature and bug requests that are submitted by the community. We use MantisBT as the main tool for tracking our roadmap, change log and active issues. We also use the Wiki integration feature for drafting specifications and we recently started using Google Wave for brainstorming.

David:We use our own software to manage the project, assign tasks, create roadmaps, keep track of regressions and so forth. The MantisBT community plays a large role in coordinating the project as well by contributing to the issue reports on our official issue tracker. As MantisBT uses the Bazaar method of project management, individual developers choose what they want to work on. We have a collective idea of which direction we want MantisBT to head towards but ultimately it is the needs and interests of each developer that dictate what aspect of MantisBT they want to improve.

Other communication channels used for discussing and planning development work include an official IRC channel and mailing lists. Recently we’ve experimented with using Google Wave as a means for developers to write our specifications and present ideas in a collaborative way. Good old fashioned email is also used at times to discuss matters that would be off-topic (and of limited use) to the wider community via our mailing lists.

How many hours a month do you and/or your team devote to the project?

Usually developers contribute to MantisBT in bursts rather than on a regular basis. Large changes tend to occur when someone has a need within one of their projects to improve or extend MantisBT to meet new objectives. Installation of a new instance of MantisBT with different objectives also tends to result in short bursts of activity.

Victor:
It varies a lot, typically somewhere between 10-30 hrs/month. I spend this time triaging bugs, going through the forums, responding to emails and writing code.

David:
Approximately 15hrs/month in spare time which primarily includes triaging issue reports on our issue tracker, fixing small bugs, responding on IRC and responding on the mailing list. When more spare time has been available I have implemented more major changes that are up to 20hrs or work each (about 40hrs/month at most).

What is your development environment like?

Victor: I use notebooks for development with dual core and 4GB RAM. I switch between Windows 7 and Mac OS X as my development platform. At one point, I was using Linux Fedora in a VirtualBox virtual machine running on Windows with 1GB of RAM dedicated to the VM. I use Eclipse or Textmate as my editor. For a long time, I used to use Notepad++ (a recent SourceForge project of the month) and similar tools as my editor.

David: The machine is a few years old now – two LCD monitors, dual core CPU, 2GB RAM and a few terrabytes worth of hard disks setup with Linux software RAID 1. The operating system is Gentoo Linux (arch: ~amd64) running the Gnome desktop environment. Software used for developing MantisBT includes Lighttpd, Apache, PostgreSQL, MySQL, PHP (FastCGI), XCache, Git, Vim, Firefox (Gecko), Chromium (WebKit) and Epiphany (WebKit).

Glenn: One of the beauties of developing on a LAMP system is that you can develop anywhere. I have done deployment on several Mac laptops and deployed on machines from 2GHz P3 with 1G RAM to quad-core 3GHz Xeon servers with 8G RAM.

Giallu: My main work machine is a 2,6Ghz Core 2 Duo Toshiba Laptop with 4Gb RAM, powered by the Fedora Linux distribution (I’m the maintainer for the mantis RPM packageO). I code using the vim editor and use regularly debugging tools like Firebug and Xdebug.

Milestones:

Version / Date Milestone
Apr 2010 Sourceforge Project of the Month :)
Mar 2010 1 million total downloads
Feb 2010 First 1.2.x release
Dec 2007 First 1.1.x release
Nov 2006 Zend and IBM choose MantisBT as one of five projects to port to System i
Nov 2006 Winning Linux Journal Editors’ Choice 2006 for Management or Admin software
Feb 2006 First 1.x.x release (note that 1.0.0 was the 65th release — MantisBT was using a 0.x.x versioning scheme till 0.19.x)
May 2002 Victor Boctor and Jeroen Latour joined Ken and MantisBT became no longer a one man show.
Nov 2000 Project started by Kenzaburo Ito

How can others contribute?

David: We’re always on the lookout for new contributors to the project. Some ways in which you could get involved include:

·        Translating MantisBT at translatewiki.net

·        Helping with user interface design

·        Developing plugins for MantisBT.

·        Helping with documentation.

·        Helping users with questions on IRC, the mailing lists and the forums.

·        Web site design for mantisbt.org

·        Testing nightly builds of MantisBT and reporting bugs found.

·        Submitting patches (bug fixes, new features) to mantisbt.org/bugs (for those starting out, look through the issues to find easy bugs to fix first).

·        Spreading the word about MantisBT on personal blogs, software engineering/programming websites and forums.

·        Triaging issues at mantisbt.org/bugs

Please feel free to contact MantisBT developers via the developer mailing list or on IRC with any questions you need answered. We’re more than happy to help you with understanding the internals of MantisBT as well as ways you can contribute to the project that don’t involve programming.

Ten years of SourceForge.net


Ten-year badge

This month and for the rest of 2010, we’re highlighting some of our most venerable projects. This month’s Project of the Month is one of about 1,000 that began hosting on SourceForge.net in the site’s first year of existence, beginning in November 1999.


More projects of the month

Project name: Mantis Bug Tracker

Date founded: November 2000

Project page: http://sourceforge.net/projects/mantisbt/

Project Leader


Victor Boctor

Victor Boctor

Occupation:Software Architect

Location: United States

Education:Computer Science

Key Developers


John Reese

John Reese

Occupation:Software Engineer

Education:BS in Software Engineering, Rochester Institute of Technology, NY

Location: Cincinnati, OH


David Hicks

Occupation:Student

Education:Bachelor of Engineering (Robotics and Mechatronics)/Bachelor of Science (Computer Science and Software Engineering)
Location: Melbourne, Australia


Gianluca Sforna

Gianluca Sforna

Occupation: Lead sysadmin, programmer, Fedora Project contributor
Education:Bachelor in Chemistry
Location: Perugia, Italy


Paul Richards


Glenn Henshaw

Occupation:Consulting Engineer, Embedded Software
Education:Bachelor of Applied Science (Electrical Engineering)
Location:Ottawa, Canada


Siebrand Mazeland

Siebrand Mazeland

Occupation:Freelance IT consultant, translatewiki.net community manager, FOSS i18n aficionado
Location:The Netherlands


Robert Munteanu

Why did you place the project on SourceForge.net?

Victor: SourceForge has always been one of the main players in the open source hosting community, especially if you go back 10 years. Hosting the project on SourceForge provided us with the infrastructure we need to be productive while focusing on the development of MantisBT.

We also got peace of mind knowing that SourceForge is doing backups and maintaining the servers. Being hosted on SourceForge also increased our chances for being discovered by users before we started ranking pretty high on search engines on our own.

Originally we were using release distribution, web hosting, mailing lists, statistics and source control. As the project matured and we wanted more control over our environment, we moved to our own host. Later we decided to go with distributed source control by hosting Git and Gitweb on our own server (that was before SourceForge started offering distributed source control options).

How has SourceForge.net helped your project succeed?

Victor: In earlier years SourceForge was used to provide a CVS and then Subversion repository for the project. In 2008 the project switched to hosting a Git repository externally. This was started before SourceForge actually started to offer Git based hosting so we may revise this choice in the future.

We’ve been using mailing lists provided by SourceForge since the start of the project. SourceForge makes archives of these lists (dating back to 2000) available to all.

SourceForge has also been invaluable as a content distribution network for distributing new releases of MantisBT to users.

What is the number one benefit of using SourceForge.net?

Victor: If I have to pick one, I would say making MantisBT available to all its projects by integrating it into SourceForge infrastructure. However, since this is not a benefit that is applicable to all other projects hosted at SourceForge, I would also include content distribution and source control specially after support for distributed source control.

David: We’ve been using SourceForge’s content distribution network to distribute releases to users since the first release of MantisBT. On our own this level of quality and reliability in distributing releases would not be possible. This further extends to the reliability and performance of the mailing lists and other SourceForge infrastructure we’ve used over the years.

Giallu: I guess it also adds up to our project’s visibility; I think I originally found MantisBT around 2003 by looking for bug trackers in SourceForge.