Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Mantis Plugin to prioritize backlog items in a Scrum / Agile process
JavaScript PHP CSS
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
classes
files
lang
pages
templates
tests
COPYING
ComsolitBacklog.php
ComsolitBacklogScreenshot.png
GPL
README.org

README.org

Mantis Scrum backlog

Overview

This plugin allows to prioritize Issues of a project relative to each other and thus to manage a Scrum/Agile backlog of user stories.

The plugin adds the menu item “backlog”. The view of the backlog is separated in prioritized (at the top) and unprioritized Issues (at the bottom). The top area is the “backlog”. Items in the bottom area have not yet been added to the backlog. Issues can be moved from the bottom area to the backlog either by the action buttons in each line or by drag-and-drop.

Inside the backlog the items can be moved around by drag-and-drop.

ComsolitBacklogScreenshot.png

Installation

Place the content of this plugin inside your mantis installation under plugins/ComsolitBacklog. You also need to configure three global variables in your config_inc.php:

  • $g_comsolitBacklog_prioritizedStatus - (int) status to give to prioritized issues
  • $g_comsolitBacklog_unprioritizedStatus - (int) status of items that may appear in the unprioritized area
  • $g_comsolitBacklog_categories - (array of string) names of categories that may appear in either area

Implementation

The plugin adds an additional decimal (float) column ‘backlog_position’ to the mantis_bug_table. This value indicates the position of the Issue in the backlog with lower values indicating higher priority or position.

When an item is moved in the backlog, the new backlog_position value is calculated to be in the middle of the item before and after it, i.e.:

backlog_position=.5*(issue_before.backlog_position + issue_after.backlog_position)

If the item is moved to the top of the list than issue_before.backlog_position is assumed ot be zero.

If the item is moved to the bottom of the list than

backlog_position=issue_before.backlog_position + pow(2,16)

After enough movement operations it can happen that the limit of the databases floating point precision is reached. Therefor a ‘rebalance’ operation is performed when the minimum distance between two items falls below one. During rebalancing all Issues in the backlog get new backlog_position numbers which are multiples of pow(2,16).

Requirements, Development Status and Disclaimer

  • Minimum PHP version is 5.3
  • The code has only been tested against MySQL.
  • The code adds the core mantis table mantis_bug_table. This may harm your ability to update mantis.

Third party libraries

The plugin uses AngularJS as the only JavaScript library and Jasmine 2 for testing.

Something went wrong with that request. Please try again.