Provides ticket dependencies and master tickets.
Adds basic ticket dependencies for Trac.
Note: MasterTickets 3.0 requires Trac 0.12 or higher.
What is it?
This plugin adds “blocking” and “blockedby” fields to each ticket, enabling you to express dependencies between tickets. It also provides a graphviz-based dependency-graph feature for those tickets having dependencies specified, allowing you to visually understand the dependency tree. The dependency graph is viewable by clicking ‘depgraph’ in the context (in the upper right corner) menu when viewing a ticket that blocks or is blocked by another ticket.
What is it not?
- It does not provide ticket-hiding for sub-tasks of a top-level ticket.
- There is no orthogonal parent/child relationship possible
- You cannot view the descriptions of tickets depending on the current ticket
- In fact, there are no explicit features that can assist you with sub-task management
- Although it would be cool.
- It does not allow you to create a dependent ticket from the current ticket
- It does not include reporting features to show how tasks are interrelated (other than the dependency graph already described above).
To use this plugin you must configure two custom fields named blocking and blockedby.
All other configuration options go in the [mastertickets] section.
- dot_path : optional, default: dot
- Path to the dot executable. This is only used for the dependency graph.
- use_gs : optional, default: False
- If enabled, use ghostscript to produce a nicer dependency graph.
- gs_path : optional, default: gs
- Path to the ghostscript executable.
- closed_color : optional, default: green
- Color of closed tickets
- opened_color : optional, default: red
- Color of opened tickets
- graph_direction : optional, default: TD
- Direction of the dependency graph (TD = Top Down, DT = Down Top, LR = Left Right, RL = Right Left)
To enable the plugin:
[components] mastertickets.* = enabled [ticket-custom] blocking = text blocking.label = Blocking blockedby = text blockedby.label = Blocked By
While the two field names must be blocking and blocked_by, you are free to use any text for the field labels.
To use a locally-built graphviz:
[mastertickets] dot_path = /usr/local/bin/dot [components] mastertickets.* = enabled [ticket-custom] blocking = text blocking.label = Blocking blockedby = text blockedby.label = Blocked By
To only show the tickets that are currently not blocked by other non-closed tickets, use this SQL (eg in a new report):
SELECT p.value AS __color__, id AS ticket, summary, component, version, milestone, t.type AS type, owner, status, time AS created, changetime AS _changetime, description AS _description, reporter AS _reporter, (SELECT COUNT(*) FROM mastertickets m, ticket t2 WHERE t.id=m.dest AND m.source=t2.id AND t2.status <> 'closed') AS _blocked FROM ticket t LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority' WHERE status <> 'closed' AND _blocked = 0 ORDER BY CAST(p.value AS integer), milestone, t.type, time
Basically it is the default report, with an aditional, hidden field (the sub query), named _blocked. The value of this field is checked to be zero.
Using this method, other reports can be modified as well, eg to show the number of tickets blocking a ticket and/or the number of tickets that the ticked is blocking itself.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size TracMasterTickets-4.0.3-py2-none-any.whl (23.1 kB)||File type Wheel||Python version py2||Upload date||Hashes View|
|Filename, size TracMasterTickets-4.0.3.tar.gz (19.7 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for TracMasterTickets-4.0.3-py2-none-any.whl