Class BowireBreakingChanges
- Namespace
- Kuestenlogik.Bowire.Linting
- Assembly
- Kuestenlogik.Bowire.dll
Breaking changes against a baseline, as lint findings (#583).
public static class BowireBreakingChanges
- Inheritance
-
BowireBreakingChanges
- Inherited Members
Remarks
bowire diff --fail-on breaking already answers "would a consumer
break?". This does not answer it a second time: it takes the same
BowireSchemaDelta and the same line HasBreakingChanges
draws — a removed service, a removed method, a signature change — and
reports each one the way every other rule reports, so one lint run, one
report and one gate cover design smells and compatibility together.
Additions, deprecations and prose edits are not breaking and produce
nothing.
It is not an ordinary IBowireLintRule, because a rule sees
one service and this needs two surfaces. It still has a rule id, so
.bowire/rules.json can switch it off or re-grade it like any other,
and the reports that list rules (JUnit, SARIF) can name it.
Fields
RuleId
public const string RuleId = "BWR-LINT-BREAKING-CHANGE"
Field Value
Properties
Rule
The rule's identity for reports that list rules. It finds nothing on its own.
public static IBowireLintRule Rule { get; }
Property Value
Methods
Find(IReadOnlyList<BowireServiceInfo>, IReadOnlyList<BowireServiceInfo>, BowireLintConfig?)
Diff baseline → current and report what breaks.
public static IReadOnlyList<BowireLintFinding> Find(IReadOnlyList<BowireServiceInfo> baseline, IReadOnlyList<BowireServiceInfo> current, BowireLintConfig? config = null)
Parameters
baselineIReadOnlyList<BowireServiceInfo>currentIReadOnlyList<BowireServiceInfo>configBowireLintConfig
Returns
ToFindings(BowireSchemaDelta, BowireLintConfig?)
The breaking part of a delta, as findings.
public static IReadOnlyList<BowireLintFinding> ToFindings(BowireSchemaDelta delta, BowireLintConfig? config = null)
Parameters
deltaBowireSchemaDeltaconfigBowireLintConfig