Content
View differences
Updated by Niels Lindenthal over 9 years ago
The following scenarios for work packages are not prevented:
A follows B follows C follows A
A follows B follows C blocks A
A has child B follows C follows A
There might be other scenarios not known yet.
As dates of work packages that are dependent of one another can influence each other, this can cause an infinite loop of trying to update the date of a following work package (which is only terminated with an exception by ruby).
When fixing this, we also need to take a look at the relationships existing in a given installation as they might already be corrupt.
There is a paper on an algorithm for determining circular dependencies http://www.cs.tufts.edu/comp/150GA/homeworks/hw1/Johnson%2075.PDF which we might want to follow.
A follows B follows C follows A
A follows B follows C blocks A
A has child B follows C follows A
There might be other scenarios not known yet.
As dates of work packages that are dependent of one another can influence each other, this can cause an infinite loop of trying to update the date of a following work package (which is only terminated with an exception by ruby).
When fixing this, we also need to take a look at the relationships existing in a given installation as they might already be corrupt.
There is a paper on an algorithm for determining circular dependencies http://www.cs.tufts.edu/comp/150GA/homeworks/hw1/Johnson%2075.PDF which we might want to follow.