realvizu/NsDepCop

Feature ideas - Adding cyclic namespace dependency check

Opened this issue · 2 comments

Hi Frenec,

Thanks for the awesome tool. One thing I would love to see implemented here is a cyclic/circular namespace dependency check with an option of warning/error/silent.

Thanks for submitting it. Sounds like a useful feature.
Notes:

  • Requires #2 (build graph of dependencies)
  • Requires a graph cycle detection algorithm (eg. QuickGraph DFS yields no back-edge?)

I am not familiar with QuickGraph but DFS is simple enough to implement instead of referencing an external library and keeps the analyzer more portable. We would expect the flagged violations to be deterministic. So ideally the graph would have to be pre-built before the code inspections and remain cached until a project rebuild occurs (or a code change for live inspections). This is going to be a challenging one.