devDept (Temporary Newer) (analysis done Today 13:51 most recent)

WARNING: This code rule is violated. 2 types on 4549 tested match the condition.
// <Name>API Breaking Changes: Interfaces and Abstract Classes</Name>
warnif count > 0 from tNewer in Application.Types where 
 
(tNewer.IsInterface || tNewer.IsClass && tNewer.IsAbstract) && 
  
tNewer.IsPubliclyVisible && 
  
tNewer.IsPresentInBothBuilds()

let tOlder = tNewer.OlderVersion() where tOlder.IsPubliclyVisible

let methodsRemoved = tOlder.Methods.Where(m => m.IsAbstract && m.WasRemoved())
let methodsAdded = tNewer.Methods.Where(m => m.IsAbstract && m.WasAdded())

where methodsAdded.Count() > 0 || methodsRemoved.Count() > 0
select new { 
   
tNewer, 
   
methodsAdded, 
   
methodsRemoved,
   
Debt = 10.ToMinutes().ToDebt(),
   
Severity = Severity.High
}

//<Description>
// This rule is executed only if a *baseline for comparison* is defined (*diff mode*).
//
// This rule warns if a publicly visible interface or abstract class 
// has been changed and contains new abstract methods or 
// if some abstract methods have been removed.
//
// Clients code that implement such interface or derive from 
// such abstract class will be broken.
//</Description>

//<HowToFix>
// Make sure that the public contracts of interfaces and abstract classes
// that used to be presented to clients, remain stable now, and in the future.
//
// If a public contract must really be changed, you can tag 
// abstract methods that will be removed with *System.ObsoleteAttribute*  
// with a *workaround message* during a few public releases, until it gets 
// removed definitely.
//
// Issues of this rule have a severity equal to **High**
// because an API Breaking change can provoque significant
// friction with consummers of the API.
// The severity is not set to **Critical** because an interface 
// is not necessarily meant to be implemented by the consummer
// of the API.
//</HowToFix>
2 types methodsAdded methodsRemoved Debt Severity Full Name
IEntity 2 methods 2 methods 10min High devDept.Eyeshot.Entities.IEntity
IFace 3 methods no method 10min High devDept.Eyeshot.Entities.IFace
Sum: 5 2 20min -
Average: 2.5 1 10min -
Minimum: 2 0 10min -
Maximum: 3 2 10min -
Standard deviation: 0.5 1 0min 0s -
Variance: 0.25 1 0min 0s -