User Tools

  • Logged in as: anonymous (anonymous)
  • Log Out

Site Tools


This is an old revision of the document!


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


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.


Single Sign-on

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


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?

  • The issue view pages must have a link that points to the Wiki page that corresponds to the current issue. If the page doesn't exist and the user has the appropriate access level, then a page can be created.
  • It should be possible to add a Wiki column that has an icon that links directly to the Wiki page. This is similar to the pen icon that links directly to the update page.
  • string_display_links() should also detect wiki links and hyper link them.
  • Configuration items must be added to allow turning on/off Wiki integration, specify the engine, root of the wiki web, root of the wiki file path, etc.
  • wiki_api.php, an API that allows Mantis code-base to deal with the Wiki generically. When calling this API, the calling code must not need to know the wiki engine being used.
  • wiki_dokuwiki_api.php, there will be one of these per support Wiki engine (replace “dokuwiki” with the engine name). Such drivers will provide the necessary engine specific implementations that are used by wiki_api.php.
  • Each project should be associated with a wiki page. This page acts as the root for project documentation. Links to this page should be added in locations like proj_doc_page.php. It may even be useful to have “Wiki” as an option in the menu. Mantis administrators can decide whether to include in the menu the Docs, Wiki, none, or both.

How will this affect the Wiki engine?

The wiki engine will be changed as follows:

  • Use Mantis authentication.
  • Use Mantis authorisation (access control).
  • Support for adding a header and footer that integrates the Wiki into Mantis interface and potentially into the customer's website.
  • Ability to link to a Mantis issue (similar to #123 that is used within Mantis).
  • Support for Mantis specific fields, e.g. id, summary, reporter, developer, etc. Such fields will be replaced at rendering time with actual values supplied by Mantis.
  • Mantis Menu
  • The issue wiki page must have a link back to the view page of the issue.

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

  • Mantis should provide the flexibility to link with a Wiki that is installed in any location on the same server or network. The requirement is for Mantis to be able to include script files from the Wiki engine it is integrating with. This will typically be done in the wiki engine specific API.
  • In the case where the Wiki is used only by Mantis, then it would be placed under the Mantis folder (e.g. mantis/dokuwiki).
  • In the case where the Wiki will be used outside the scope of Mantis, then it would be placed in another location. This can be a sibling directory to Mantis root directory (e.g. htdocs/mantis and htdocs/dokuwiki).


  • Mantis will be distributed with the code necessary to integrate with the Wiki, but not with the code of the actual Wiki.
  • Enough documentation will be able to indicate the supported Wikis and whatever work necessary to get the integration working.
  • In the future, a default Wiki may be included as part of Mantis distribution.

Proposed Wiki Engines

mantisbt/7075.1147298407.txt.gz · Last modified: 2008/10/29 04:31 (external edit)