User story #6471
openDo not start a policy generation if changes don't require it (dependency graph analysis)
Description
In #6012, we implemented a trivial oracle which say if there is a need to regenerate promises or not.
The only changes taken in account for that first oracle where chances who didn't require any analysis on the dependency graph of object, so that we could say if the change will lead to a modification in isolation from anything else.
On that user story, we want to upgrade the oracle so that it can look for simple dependencies and don't generate promises on these cases:
Modification on a rule where both the starting and final state lead to a not applied rule
- modification add / remove directive or change rule parameters when no groups on target
- modification add / remove group or change rule parameters when no directives on target
Change on group not used as target of an applied rule
i.e: any change to a group which is not used to generate promises is free
Change on group where both the starting and final state leads to 0 nodes
Because, well, that doesn't matter much
Change on directive not used as target of an applied rule
same reason than for group
Change in parameter not used
This one may be tricky to decide and may require a full directive parameter analysis.