6.2.7.2. CycleDetection-IncludeCycles

Find cycles in the graph of #includes and report them as violations

Required inputs: RFG

This rule identifies cycles in the graph of #includes.

A cycle in the include graph bears the risk of mutual dependencies between files and thus build problems. At the same time, cycles impede understandability of the code for a developer.

If you need more advanced cycle detection features, use the rules inside the Graph-based Analyses/Cycles section in the Architecture group.

Possible Messages

This rule has no predefined messages.

Options

base_view_name

base_view_name : str = 'Include'

View to calculate the include cycles from.
 

generate_violation_previews

generate_violation_previews : bool = True

Whether to generate images of the cycle violations to be shown in the dashboard. This is an expensive operation and can be skipped to shorten the runtime of this rule.
 

pre_excludes

pre_excludes : set[bauhaus.analysis.config.GlobPattern] = set()

Set of globbing patterns of directories/filenames to exclude before the analysis is performed, i.e. no cycle is reported if the only connecting path goes through a node matching at least one pre_exclude entry
 

preview_edge_limit

preview_edge_limit : int = 1000

Maximum number of edges in a cycle for which a preview image should be generated.
 

preview_node_limit

preview_node_limit : int = 1000

Maximum number of nodes in a cycle for which a preview image should be generated.
 

selfloops

selfloops : bool = False

Whether only directly recursive elements should be reported as well.