Edgewall Software

Ticket #226 (closed enhancement: duplicate)

Opened 5 years ago

Last modified 2 years ago

Ticket Dependencies

Reported by: jon@… Owned by: jonas
Priority: lowest Milestone:
Component: general Version: 0.6
Severity: normal Keywords:
Cc: trac@…

Description

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

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

Change History

Changed 5 years ago by daniel

  • priority changed from normal to lowest
  • milestone set to 2.0

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

Changed 4 years ago by trac@…

  • 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,
        UNIQUE(blocks,dependson)
);

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.

Changed 4 years ago by trac@…

Ticket Dependecy - First patch

Changed 4 years ago by trac@…

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.

Changed 4 years ago by anonymous

  • cc trac@… added; trac@… removed

Changed 4 years ago by cmlenz

  • status changed from new to closed
  • resolution set to duplicate

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

Changed 3 years ago by mgood

  • milestone 2.0 deleted

Add/Change #226 (Ticket Dependencies)

Author



Change Properties
<Author field>
Action
as closed
Next status will be 'reopened'
to The owner will change from jonas. Next status will be 'closed'
 
Note: See TracTickets for help on using tickets.