Table of Contents

Introduction

This pages outlines the approach to be taken in order for Mantis to support integration with a Wiki.

Why?

Mantis covers very well the area of bugtracker, however, when developers are implementing features that require some sort of upfront brain storming, documentation, and design, the notes approach may become a bit overwhelming. I find that notes are very good for people to provide their thoughts. However, eventually the developer needs to put these thoughts together into one artifact that reflects what exactly will be implemented. This then becomes the basis for documentation, testing, etc.

For agile environments the use of Wiki to manage such documentation is a good option. This can include a description of the feature, some implementation notes, and even some testing notes.

Integration

Single Sign-on

Mantis users must not need to login into the Wiki. The wiki must automatically recognise the logged in Mantis user.

Authorisation

What a user can do must depend on their Mantis access level. For example, viewers and reporters may only be able to view the wiki, updaters may be able to edit it, developers/managers/administrators to create pages. The authorisation must also take into consideration the project and whether the issue is private/public.

Integration with Multiple Engines

The integration must be implemented in a way where it is possible to integrate multiple wiki engines with Mantis. The choice may be based on the preference of the company that is using Mantis. However, the Mantis development team will probably only support one integration. At the moment this is the integration with DokuWiki.

How will this affect Mantis?

How will this affect the Wiki engine?

The wiki engine will be changed as follows:

Wiki Storage

Ideally the Wiki data should be stored in the same database as Mantis. If for some reason the Wiki engine doesn't support all the DBMSes supported by Mantis, then file based storage should be used.

Directory Structure

Notifications

Notifications related to Wiki page changes will be handled by the Wiki engine. Wiki engines typically provide an RSS or email support for providing users with such modifications. In the case where the Wiki engine supports email notifcations, the integration should allow making user email addresses stored in Mantis available to the Wiki engine.

Wiki Namespaces

There are several approaches for how the Wiki is to be structured. Each approach has its advantages and disadvantages.

Templates

There should be some support for Wiki page templates. Each project may have a set of templates associated with it. The user may then choose which template to use when creating a new page. It is also possible to auto-select the template based on a custom function. The default implementation can be driven by some database configuration, however, custom implementations will be able to provide more complex criteria for the selection of the template to be used. The scope of this feature will be refine once the availability fo such feature in Wikis is researched. The idea is to avoid having to modify Wiki code, the solution should depend on out-of-the-box functionality or functionality that is implemented as a plug-in.

Gotchas

Distribution

Proposed Wiki Engines

Related Links