You've already forked linux-packaging-mono
Imported Upstream version 5.10.0.132
Former-commit-id: a9e918d5dd4e43efde300d26074ebd475b9927ef
This commit is contained in:
parent
65dc56118c
commit
4373cb63d5
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Linq;
|
||||
|
||||
@@ -12,6 +13,12 @@ namespace Xamarin.ApiDiff
|
||||
public bool Breaking;
|
||||
public bool AnyChange;
|
||||
public bool HasIgnoredChanges;
|
||||
public string SourceDescription;
|
||||
|
||||
public ApiChange (string sourceDescription)
|
||||
{
|
||||
SourceDescription = sourceDescription;
|
||||
}
|
||||
|
||||
public ApiChange Append (string text)
|
||||
{
|
||||
@@ -69,6 +76,11 @@ namespace Xamarin.ApiDiff
|
||||
return;
|
||||
}
|
||||
|
||||
var changeDescription = $"{State.Namespace}.{State.Type}: {change.Header}: {change.SourceDescription}";
|
||||
State.LogDebugMessage ($"Possible -r value: {changeDescription}");
|
||||
if (State.IgnoreRemoved.Any (re => re.IsMatch (changeDescription)))
|
||||
return;
|
||||
|
||||
List<ApiChange> list;
|
||||
if (!TryGetValue (change.Header, out list)) {
|
||||
list = new List<ApiChange> ();
|
||||
|
@@ -82,6 +82,15 @@ namespace Xamarin.ApiDiff {
|
||||
|
||||
public static bool Lax;
|
||||
public static bool Colorize = true;
|
||||
|
||||
public static int Verbosity;
|
||||
|
||||
public static void LogDebugMessage (string value)
|
||||
{
|
||||
if (Verbosity == 0)
|
||||
return;
|
||||
Console.WriteLine (value);
|
||||
}
|
||||
}
|
||||
class Program {
|
||||
|
||||
@@ -122,7 +131,10 @@ namespace Xamarin.ApiDiff {
|
||||
},
|
||||
{ "c|colorize:", "Colorize HTML output", v => State.Colorize = string.IsNullOrEmpty (v) ? true : bool.Parse (v) },
|
||||
{ "x|lax", "Ignore duplicate XML entries", v => State.Lax = true },
|
||||
{ "ignore-nonbreaking", "Ignore all nonbreaking changes", v => State.IgnoreNonbreaking = true }
|
||||
{ "ignore-nonbreaking", "Ignore all nonbreaking changes", v => State.IgnoreNonbreaking = true },
|
||||
{ "v|verbose:", "Verbosity level; when set, will print debug messages",
|
||||
(int? v) => State.Verbosity = v ?? (State.Verbosity + 1)},
|
||||
new ResponseFileSource (),
|
||||
};
|
||||
|
||||
try {
|
||||
|
@@ -70,7 +70,9 @@ namespace Xamarin.ApiDiff {
|
||||
public override void Added (XElement target, bool wasParentAdded)
|
||||
{
|
||||
string name = target.Attribute ("name").Value;
|
||||
if (State.IgnoreNew.Any (re => re.IsMatch (name)))
|
||||
var addedDescription = $"{State.Namespace}.{name}: Added type";
|
||||
State.LogDebugMessage ($"Possible -n value: {addedDescription}");
|
||||
if (State.IgnoreNew.Any (re => re.IsMatch (addedDescription)))
|
||||
return;
|
||||
Output.WriteLine ("<div> <!-- start type {0} -->", name);
|
||||
Output.WriteLine ("<h3>New Type {0}.{1}</h3>", State.Namespace, name);
|
||||
@@ -220,9 +222,13 @@ namespace Xamarin.ApiDiff {
|
||||
|
||||
var sb = source.GetAttribute ("base");
|
||||
var tb = target.GetAttribute ("base");
|
||||
if (sb != tb && !(State.IgnoreNonbreaking && IsBaseChangeCompatible (sb, tb))) {
|
||||
var rm = $"{State.Namespace}.{State.Type}: Modified base type: '{sb}' to '{tb}'";
|
||||
State.LogDebugMessage ($"Possible -r value: {rm}");
|
||||
if (sb != tb &&
|
||||
!State.IgnoreRemoved.Any (re => re.IsMatch (rm)) &&
|
||||
!(State.IgnoreNonbreaking && IsBaseChangeCompatible (sb, tb))) {
|
||||
Output.Write ("Modified base type: ");
|
||||
Output.WriteLine (new ApiChange ().AppendModified (sb, tb, true).Member.ToString ());
|
||||
Output.WriteLine (new ApiChange ($"{State.Namespace}.{State.Type}").AppendModified (sb, tb, true).Member.ToString ());
|
||||
}
|
||||
|
||||
ccomparer.Compare (source, target);
|
||||
@@ -254,6 +260,8 @@ namespace Xamarin.ApiDiff {
|
||||
{
|
||||
string name = State.Namespace + "." + GetTypeName (source);
|
||||
|
||||
var memberDescription = $"{name}: Removed type";
|
||||
State.LogDebugMessage ($"Possible -r value: {memberDescription}");
|
||||
if (State.IgnoreRemoved.Any (re => re.IsMatch (name)))
|
||||
return;
|
||||
|
||||
|
@@ -68,7 +68,7 @@ namespace Xamarin.ApiDiff {
|
||||
if (base.Equals (source, target, changes))
|
||||
return true;
|
||||
|
||||
var change = new ApiChange ();
|
||||
var change = new ApiChange (GetDescription (source));
|
||||
change.Header = "Modified " + GroupName;
|
||||
RenderMethodAttributes (source, target, change);
|
||||
RenderReturnType (source, target, change);
|
||||
|
@@ -45,7 +45,7 @@ namespace Xamarin.ApiDiff {
|
||||
if (base.Equals (source, target, changes))
|
||||
return true;
|
||||
|
||||
var change = new ApiChange ();
|
||||
var change = new ApiChange (GetDescription (source));
|
||||
change.Header = "Modified " + GroupName;
|
||||
change.Append ("public event ");
|
||||
|
||||
|
@@ -97,7 +97,7 @@ namespace Xamarin.ApiDiff {
|
||||
var name = source.GetAttribute ("name");
|
||||
var srcValue = source.GetAttribute ("value");
|
||||
var tgtValue = target.GetAttribute ("value");
|
||||
var change = new ApiChange ();
|
||||
var change = new ApiChange (GetDescription (source));
|
||||
change.Header = "Modified " + GroupName;
|
||||
|
||||
if (State.BaseType == "System.Enum") {
|
||||
|
@@ -122,8 +122,10 @@ namespace Xamarin.ApiDiff {
|
||||
{
|
||||
bool a = false;
|
||||
foreach (var item in elements) {
|
||||
var memberDescription = $"{State.Namespace}.{State.Type}: Added {GroupName}: {GetDescription (item)}";
|
||||
State.LogDebugMessage ($"Possible -a value: {memberDescription}");
|
||||
SetContext (item);
|
||||
if (State.IgnoreAdded.Any (re => re.IsMatch (GetDescription (item))))
|
||||
if (State.IgnoreAdded.Any (re => re.IsMatch (memberDescription)))
|
||||
continue;
|
||||
if (!a) {
|
||||
BeforeAdding (elements);
|
||||
@@ -159,7 +161,9 @@ namespace Xamarin.ApiDiff {
|
||||
{
|
||||
bool r = false;
|
||||
foreach (var item in elements) {
|
||||
if (State.IgnoreRemoved.Any (re => re.IsMatch (GetDescription (item))))
|
||||
var memberDescription = $"{State.Namespace}.{State.Type}: Removed {GroupName}: {GetDescription (item)}";
|
||||
State.LogDebugMessage ($"Possible -r value: {memberDescription}");
|
||||
if (State.IgnoreRemoved.Any (re => re.IsMatch (memberDescription)))
|
||||
continue;
|
||||
SetContext (item);
|
||||
if (State.IgnoreNonbreaking && !IsBreakingRemoval (item))
|
||||
@@ -597,7 +601,7 @@ namespace Xamarin.ApiDiff {
|
||||
if (srcObsolete == null) {
|
||||
if (tgtObsolete == null)
|
||||
return; // neither is obsolete
|
||||
var change = new ApiChange ();
|
||||
var change = new ApiChange (GetDescription (source));
|
||||
change.Header = "Obsoleted " + GroupName;
|
||||
change.Append (string.Format ("<span class='obsolete obsolete-{0}' data-is-non-breaking>", ElementName));
|
||||
change.Append ("[Obsolete (");
|
||||
|
@@ -58,7 +58,9 @@ namespace Xamarin.ApiDiff {
|
||||
public override void Added (XElement target, bool wasParentAdded)
|
||||
{
|
||||
string name = target.Attribute ("name").Value;
|
||||
if (State.IgnoreNew.Any (re => re.IsMatch (name)))
|
||||
var namespaceDescription = $"{name}: Added namespace";
|
||||
State.LogDebugMessage ($"Possible -n value: {namespaceDescription}");
|
||||
if (State.IgnoreNew.Any (re => re.IsMatch (namespaceDescription)))
|
||||
return;
|
||||
|
||||
Output.WriteLine ("<!-- start namespace {0} --> <div> ", name);
|
||||
@@ -92,7 +94,9 @@ namespace Xamarin.ApiDiff {
|
||||
{
|
||||
var name = source.Attribute ("name").Value;
|
||||
|
||||
if (State.IgnoreRemoved.Any (re => re.IsMatch (name)))
|
||||
var namespaceDescription = $"{name}: Removed namespace";
|
||||
State.LogDebugMessage ($"Possible -r value: {namespaceDescription}");
|
||||
if (State.IgnoreRemoved.Any (re => re.IsMatch (namespaceDescription)))
|
||||
return;
|
||||
|
||||
Output.WriteLine ("<!-- start namespace {0} --> <div>", name);
|
||||
|
@@ -185,7 +185,7 @@ namespace Xamarin.ApiDiff {
|
||||
isIndexer = srcIndexers != null && srcIndexers.Count > 0;
|
||||
}
|
||||
|
||||
var change = new ApiChange ();
|
||||
var change = new ApiChange (GetDescription (source));
|
||||
change.Header = "Modified " + GroupName;
|
||||
RenderMethodAttributes (GetMethodAttributes (srcGetter, srcSetter), GetMethodAttributes (tgtGetter, tgtSetter), change);
|
||||
RenderPropertyType (source, target, change);
|
||||
|
Reference in New Issue
Block a user