Feature Suggestion: Issue Chains

Submitted by clavileno on 2007-06-18

It would be lovely to have a "depends upon" attribute for issues.

Here's an example. We have a software product called "NewProg", so we create a project called "NewProg" and a folder of type "Feature Requests" within it. A user requests a new feature called, say, "Reporting".

So a member of the NewProg project adds the Reporting Issue to the Feature Requests folder of the project NewProg. Some discussion takes place using comments as to how to implement that feature. A plan is arrived at, and a list of actions is determined. So now we need to staff out those actions. We'll assume that we work out the order of battle in some other way (perhaps we have a separate project planning tool to do that?) so we know what needs implementing and in what order.

So now we'd like to create new issues in the New Feature Implementation folder. And then we'd like to create new issues in the New Feature Testing folder. However we know that each of these issues will in turn depend upon the completion of some other step or steps.

What I'd like to do is to be able to create each "issue" in turn, with a "depends upon" reference to the previous "issue" in the chain. Then issues would only appear to be needing attention in the order in which they are possible to deliver. Otherwise the list of open issues for each user just gets too great to process efficiently, and there is no mechanism (save for lots of clicking about) to work out whether it is time to start something or not.

Clearly we could write some code for this. So we add the "depends upon" attribute anyhow, populate it with the issue ID of the preceding issue, set the status to "Not Ready to Start Yet", and have a server cron job running periodically to decide whether to update the satus of the later issues. But just a thought for "proper" development.

It is possible to put a reference to another issue (or multiple issues) in an attribute by writing its identifier preceded by a '#' character. This creates a clickable link to the referenced issue. Obviously that means you don't see the status of the referenced issue until you open it. To modify the attribute of an issue when another issue changes its status, you will need some kind of server-side logic.

The idea of creating a script running as a cron job is very good. Implementing this kind of function directly inside WebIssues (in a generic way) is almost impossible. Things like synchronization with external data sources or between various issues are always specific to the given environment, so they should be implemented as "custom" solutions.

The new upcoming version of the server will include a user's manual including the description of the database schema and some kind of "integration manual". I can also assist you with creating such script if you want.


Thank you again for another super-quick reply!!

OK, that looks interesting. However, to reiterate what others have said, it would be good to have some way of locking attributes so they are only editable by the original creator of the issue - that way this "linkage" doesn't get lost with some, err, "misplaced" clicking.

I agree about the difficulty of implementation, but I think it might be possible to create a more generic solution which wasn't an absolute nightmare. I'll have a think about it! Quite happy to get my hands dirty and propose some changes instead of just asking for things to be done!