I am currently using 0.11.4 with MasterTickets and TimingAndEstimation.
We use blocking/blocked-by for two separate meanings:

  Can't do X until Y is done.

  Ticket A comprises subtasks AA AB AC AD AE.

The second case is exactly what you need to represent a Work Breakdown
Structure in trac.  I propose to use blocking/blocked-by for the first,
and parent/child for the second, with edges pointing from a ticket to
each child.

I would like to be able to view (somehow) and export to other tools the
total estimates for Ticket A, which is the sum of AA-AE (plus A's hours,
although probably there's a rule that tickets that have children have
zero hours.

So when displaying A, hours would be the sum over all tickets that are
descendents, which means reachable via parent/child edges.

Has what I want already been done?  I've looked at most of the plugins
on trac-hacks and didn't find something that does this.

Assuming not, I am looking for advice and design review.  I would like
to end up with any code I write integrated to existing plugins or a new
one on trac-hacks.

My first thought is that MasterTickets fundamentally is a way to add
edges between tickets, and currently those edges are untyped.  It seems
fairly easy to extend the table to have an enum which is "dependency" or
"child".  Here's the current schema:

# \d mastertickets;
Table "public.mastertickets"
 Column | Type | Modifiers 
--------+------+-----------
 source | text | not null
 dest   | text | not null
Indexes:
    "mastertickets_pk" PRIMARY KEY, btree (source, dest)

I would add ticket fields for parent/child, and have those
display/manipulate child edges, and enhance the depgraph to have two
colors of lines.

Then TimingAndEstimation would have a config option to use
mastertickets, and look for these edges and present rolled up (read
only) numbers.  And perhaps a report just obtained directly from pgsql
for getting the data to other tools.

Attachment: pgpk1HCJZBZ10.pgp
Description: PGP signature

Reply via email to