In Jira, issue links have no effect over the environment's structure and behaviour. That means you can create any type of dependency between them in various combinations. Even types of dependencies that would make no logical sense or would end up in a paradox can exist in a vanilla Jira environment (such as circular dependencies).
In our application though, strong links have a direct effect on the Start and End Dates, so some combinations of links are not allowed. This refers to what we call "loops". Let's imagine the following type of inter-dependency:
- Task A (Ends) → (Starts) Task B
- Task B (Ends) → (Starts) Task A
Such a combination of links on these two tasks would result in Task A rescheduling Task B, Task B rescheduling Task A, Task A rescheduling Task B, and so on and so forth.
This sort of paradox would create an infinitive number of data re-calculation and could possibly crush the environment. This is why the App will not allow it and will return a warning. For example, let's try to create a link between BPV-12 and BPV-10 (parent task):
Finding the source of constrains
Loops are very easy to detect if tasks belong to a single Box. However, at times when the same task is a component of various - multiple Boxes, each belonging to a different user, it might no be that easy.
We could cause a change that might reschedule their whole Gantt, sometimes even not realising it (i.e. if you can not view other Boxes due to security restrictions).
You can always go directly to the issue page and check the list of Boxes with that particular issue in scope. All dependencies will be listed and you will be able to edit/delete them.
In Gantt module, click the task on the timeline and a pop up will appear with all dependencies listed:
Dependencies outside the scope of a Box can't be edited within it (you can go to issue page to manage them). If the issue is not in scope you will see:
To delete a link on Gantt, make sure dependencies are expanded (otherwise, they will be displayed as non-interactive dots)
Then, right-click on a link to see context menu.