Subsystem co-failure graph
subsystem_couplingAnswer "what else tends to fail when a merge request touches this core subsystem" from CI history over about 9,000 core merge requests. With issue_nid: "which subsystems does this issue touch, and what co-fails with them". No arguments: the list of subsystems, the same one core_symbol.subsystem and list_symbol_users subsystem= use.
subsystem: a name (Views, case-insensitive) or a bucket (module:views, core_lib:Entity). An unknown one is refused, with the nearest matches.
Edge: touched_bucket → failing_bucket (+ subsystem), lift, co_fail_count, touched_count, failed_count, total_mrs. lift = P(fail | touched) − P(fail | any MR). Self edges are left out.
Floors min_lift (0.05) and min_co_fail (3) drop noise. count: edges above them. edges: up to limit (≤ 50), by lift. When nothing clears the floors, the strongest edges are listed with a note.
issue_nid: touched_subsystems first. A note explains an issue with no MR file data.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Edges to return, 1 to 50 (default 20). count says how many pass the floors. | |
| min_lift | No | Keep edges with lift at or above this (default 0.05). | |
| issue_nid | No | A drupal.org core issue nid: reports the subsystems its merge request touches, then the coupling edges from each. | |
| subsystem | No | A core subsystem (Views, Entity API) or a path bucket (module:views, core_lib:Entity). Leave both subsystem and issue_nid empty to get the list of subsystems. | |
| min_co_fail | No | Keep edges seen in at least this many merge requests (default 3). |