< Summary

Information
Class: DotNetApiDiff.Models.Configuration.BreakingChangeRules
Assembly: DotNetApiDiff
File(s): /home/runner/work/dotnet-api-diff/dotnet-api-diff/src/DotNetApiDiff/Models/Configuration/BreakingChangeRules.cs
Line coverage
100%
Covered lines: 25
Uncovered lines: 0
Coverable lines: 25
Total lines: 91
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

/home/runner/work/dotnet-api-diff/dotnet-api-diff/src/DotNetApiDiff/Models/Configuration/BreakingChangeRules.cs

#LineLine coverage
 1// Copyright DotNet API Diff Project Contributors - SPDX Identifier: MIT
 2using System.Text.Json.Serialization;
 3
 4namespace DotNetApiDiff.Models.Configuration;
 5
 6/// <summary>
 7/// Configuration for defining what constitutes breaking changes
 8/// </summary>
 9public class BreakingChangeRules
 10{
 11    /// <summary>
 12    /// Whether removing a public type is considered a breaking change
 13    /// </summary>
 14    [JsonPropertyName("treatTypeRemovalAsBreaking")]
 32815    public bool TreatTypeRemovalAsBreaking { get; set; } = true;
 16
 17    /// <summary>
 18    /// Whether removing a public member is considered a breaking change
 19    /// </summary>
 20    [JsonPropertyName("treatMemberRemovalAsBreaking")]
 32521    public bool TreatMemberRemovalAsBreaking { get; set; } = true;
 22
 23    /// <summary>
 24    /// Whether changing a member's signature is considered a breaking change
 25    /// </summary>
 26    [JsonPropertyName("treatSignatureChangeAsBreaking")]
 32827    public bool TreatSignatureChangeAsBreaking { get; set; } = true;
 28
 29    /// <summary>
 30    /// Whether reducing a member's accessibility is considered a breaking change
 31    /// </summary>
 32    [JsonPropertyName("treatReducedAccessibilityAsBreaking")]
 30833    public bool TreatReducedAccessibilityAsBreaking { get; set; } = true;
 34
 35    /// <summary>
 36    /// Whether adding an interface to a type is considered a breaking change
 37    /// </summary>
 38    [JsonPropertyName("treatAddedInterfaceAsBreaking")]
 30839    public bool TreatAddedInterfaceAsBreaking { get; set; } = false;
 40
 41    /// <summary>
 42    /// Whether removing an interface from a type is considered a breaking change
 43    /// </summary>
 44    [JsonPropertyName("treatRemovedInterfaceAsBreaking")]
 30845    public bool TreatRemovedInterfaceAsBreaking { get; set; } = true;
 46
 47    /// <summary>
 48    /// Whether changing a parameter name is considered a breaking change
 49    /// </summary>
 50    [JsonPropertyName("treatParameterNameChangeAsBreaking")]
 30851    public bool TreatParameterNameChangeAsBreaking { get; set; } = false;
 52
 53    /// <summary>
 54    /// Whether adding an optional parameter is considered a breaking change
 55    /// </summary>
 56    [JsonPropertyName("treatAddedOptionalParameterAsBreaking")]
 30857    public bool TreatAddedOptionalParameterAsBreaking { get; set; } = false;
 58
 59    /// <summary>
 60    /// Whether adding a new member is considered a breaking change
 61    /// </summary>
 62    [JsonPropertyName("treatAddedMemberAsBreaking")]
 32363    public bool TreatAddedMemberAsBreaking { get; set; } = false;
 64
 65    /// <summary>
 66    /// Whether adding a new type is considered a breaking change
 67    /// </summary>
 68    [JsonPropertyName("treatAddedTypeAsBreaking")]
 32669    public bool TreatAddedTypeAsBreaking { get; set; } = false;
 70
 71    /// <summary>
 72    /// Creates a default set of breaking change rules
 73    /// </summary>
 74    /// <returns>A default set of breaking change rules</returns>
 75    public static BreakingChangeRules CreateDefault()
 8276    {
 8277        return new BreakingChangeRules
 8278        {
 8279            TreatTypeRemovalAsBreaking = true,
 8280            TreatMemberRemovalAsBreaking = true,
 8281            TreatSignatureChangeAsBreaking = true,
 8282            TreatReducedAccessibilityAsBreaking = true,
 8283            TreatAddedInterfaceAsBreaking = false,
 8284            TreatRemovedInterfaceAsBreaking = true,
 8285            TreatParameterNameChangeAsBreaking = false,
 8286            TreatAddedOptionalParameterAsBreaking = false,
 8287            TreatAddedMemberAsBreaking = false,
 8288            TreatAddedTypeAsBreaking = false
 8289        };
 8290    }
 91}