Change of behavior of the search query `from@...` when a partial baseline was made on a deleted requirement
Activity
Show:
Resolved
Details
Details
Assignee
Reporter
Sprint
None
Labels
Release date
Feb 25, 2024
Requirement Yogi
Linked requirements
Requirement Yogi
Linked requirements
Created February 21, 2024 at 1:59 PM
Updated February 25, 2024 at 11:30 PM
Resolved February 21, 2024 at 2:32 PM
This is a change of behavior of the search query
from@... ~ ‘%'
andto@... ~ '%'
, but we believe no-one was using the former behavior.Original bug
In the original bug, a customer reported that they were seeing extraneous requirements which didn’t have a dependency, when searching for
from@... ~ '%'
.Context
Assume we have the following dependencies: REQ-001 → REQ-002 → REQ-003,
Create a baseline for REQ-002 only,
Delete REQ-002,
Search for
from ~ '%'
, which searches for all requirements which have children,It incorrectly returns REQ-001, even though it doesn’t have a child anymore.
New behavior
This search query will not return REQ-001 anymore in this situation.
Explanation
We keep ghost dependencies with a crossin/crossout flag.
In the example above, since REQ-002v1 is in a baseline, we want to display a popup showing that there was a dependency from REQ-001 and to REQ-003, even though 1 and 3 are outside of the baseline. Therefore, we have ghost dependencies, the first one is “cross-in”, the second is “cross-out”. They allow us to display the popup with the full information about the dependencies.
The upside of keeping flags for “cross-in” and “cross-out”, is that it allows us to avoid displaying, in REQ-001 or REQ-003 “current”, the dependencies towards the baselined REQ-002v1. We display it in REQ-002v1’s popup, but not in REQ-001 or REQ-003’s popup.
To remain consistent with the popup, we should have also changed the search criteria, to apply the same conditions on the “cross-in”/”cross-out” flags.