Edgewall Software

Opened 19 years ago

Closed 18 years ago

Last modified 16 years ago

#226 closed enhancement (duplicate)

Ticket Dependencies

Reported by: jon@… Owned by: Jonas Borgström
Priority: lowest Milestone:
Component: general Version: 0.6
Severity: normal Keywords:
Cc: trac@… david.balch@… Branch:
Release Notes:
API Changes:
Internal Changes:


I don't know if this is outside the idea of the Trac being simple, but it would be nice to be able to have tickets that depend on other tickets being completed, so that you can get an idea of what needs to be done.

Attachments (1)

ticket_dependency.patch (17.2 KB ) - added by trac@… 18 years ago.
Ticket Dependecy - First patch

Download all attachments as: .zip

Change History (7)

comment:1 by daniel, 19 years ago

Milestone: 2.0
Priority: normallowest

This is a big change… Maybe for post-1.0.

comment:2 by trac@…, 18 years ago

Cc: trac@… added

I would like to get the ball rolling on this one.

I'm not sure why daniel thinks this would have to be a bug change. I think it can implementing this can be pretty staight forward.

I'll just post the basic idea of what I'm working on, feedback would be much apreciated.

DB Schema: Add a table to record dependencies:

CREATE TABLE dependencies (
        blocks int,
        dependson int,

Ticket object: Add two methods .get_blocks_list() .get_dependson_list() that return a list of Tickets "blocked by this Ticket" and a list of Tickets "this Ticket depends on" respectively.

Change the .save_changes method to check/ act on these list on status change.

UI changes: Add the required fields to display and change these dependencies.

by trac@…, 18 years ago

Attachment: ticket_dependency.patch added

Ticket Dependecy - First patch

comment:3 by trac@…, 18 years ago

I just added a patch implementnig basic Ticket dependency functionality.

I had to rework the patch quite a bit as Ticket.py has seen some major chanegs since 0.7.1

I'm still a bit puzzled about how/ why some of Ticket.py works the way it does. So I expect some things could be handled cleaner than I did in this patch. I guess the main thing is getting something that works out there and get some feedback on the progress this far.

Things that should work:

All the basic stuff should work.

  • Adding/removing/editing Tickets "the current Ticket blocks" to existing bugs.
  • Adding/removing/editing Tickets "this Ticket Depends on" to existing bugs.
  • Reverse blocking/depending i.e. If Ticket #1 one blocks Ticket #2. Ticket #2 obviously 'depends on' Ticket #1
  • Adding 'blocks'/'depends on' to new tickets.

N.B. The 'Blocks' and 'Depends On' fields only display direct dependencies, it doesn't walk up or down the dependency graph to find all dependencies.

Stuff that might work:

  • Automatic update of the database. I haven't tested, but I think it should work. (If not use the CREATE TABLE from the previous comment if you want to test).

Things that don't work/ isn't done

  • Input validation
  • Sanity checks (a Ticket can depend on non-existing Tickets, Can both depend on and block the same Ticket, etc..)
  • Act when dependencies are violated. (I.e. prevent closing when blocknig Tickets are open, reopen when depending ticket is reopened, etc).
  • Display of fancy dependency graphs
  • probably a lot more.

Some of the things from this list probably should be done before this can be useful. But for now this should give a basic idea about how this could work.

comment:4 by anonymous, 18 years ago

Cc: trac@… added; trac@… removed

comment:5 by Christopher Lenz, 18 years ago

Resolution: duplicate
Status: newclosed

This is a duplicate of #31. Take any further comments there to avoid fragmentation.

comment:6 by Matthew Good, 18 years ago

Milestone: 2.0

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain Jonas Borgström.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Jonas Borgström to the specified user.

Add Comment

E-mail address and name can be saved in the Preferences .
Note: See TracTickets for help on using tickets.