This repository was archived by the owner on Mar 8, 2021. It is now read-only.
Commit ad38fd3
committed
Inter-API & Reference API changes for mono:2018-04
Context: dotnet/android#1503
Context: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/1126/
Context: mono/mono@ca9cbdc
The [bump to mono:2018-04][0] introduced two "incompatible" changes
which impact our API Compatibility checks:
1. `mono-api-html.exe` behavior has changed, and
2. `System.String.Concat(object, object, object, object)` was
removed.
`mono-api-html.exe` from mono:2018-02 and before had a bug wherein it
didn't properly handle nested types. The immediate affect of this was
that the `Android.App.Notification.Icon` property change which was
handled/ignored in `inter-api-extra-v5.1-v6.0.txt` was seemingly
ignored, resulting in an API compatibility failure:
<h1>### API BREAK BETWEEN v5.1 and v6.0</h1>
<h3>Type Changed: Android.App.Notification.Action.Action</h3>
<p>Modified properties:</p>
<pre>
<div data-is-breaking> public <span class='removed removed-inline removed-breaking-inline'>int</span> <span class='added '>Android.Graphics.Drawables.Icon</span> Icon { get; <span class='removed removed-inline removed-breaking-inline'>set;</span>
}
</div></pre>
Note that the `mono-api-html` output here is still somewhat buggy:
*there is no* `Android.App.Notification.Action.Action` type -- nested
type names appear to be duplicated now, instead of skipped entirely --
so it's possible that future `mono-api-html` changes may break us.
Other errors were being reported as well [^0], all of which are
*reasonable and correct* but weren't needed with mono:2018-02's
`mono-api-html`, which is...worrying, but ¯\_(ツ)_/¯.
The `System.String.Concat(object, object, object, object)` removal is
a bit of a misnomer: *there is no* `String.Concat()` method which
takes four `object` parameters. There *was* a `String.Concat()`
method which took *three* `object` parameters and an `__arglist`
parameter, and the `__arglist`-including overload was removed because
[it was deemed safe to remove][1]:
> @mark-safar: I let the change in because it believe it's safe to
> remove (I don't think our AOT compiler support that fully either).
[^0]: Brief summary of most "new" changes which `mono-api-html` from
mono:2018-02 didn't need but are reported with mono:2018-04:
<h1>### API BREAK BETWEEN v4.3 and v4.4</h1>
<h3>Type Changed: Android.Media.RemoteControlClient.MetadataEditor</h3>
<p>Modified base type:</p>
<pre>
<div data-is-breaking> <span class='removed removed-inline removed-breaking-inline'>Java.Lang.Object</span> <span class='added '>Android.Media.MediaMetadataEditor</span>
</div></pre>
<h3>Type Changed: Android.Views.Surface.OutOfResourcesException</h3>
<p>Modified base type:</p>
<pre>
<div data-is-breaking> <span class='removed removed-inline removed-breaking-inline'>Java.Lang.Exception</span> <span class='added '>Java.Lang.RuntimeException</span>
</div></pre>
<h3>Type Changed: Java.Lang.ClassNotFoundException</h3>
<p>Modified base type:</p>
<pre>
<div data-is-breaking> <span class='removed removed-inline removed-breaking-inline'>Java.Lang.Exception</span> <span class='added '>Java.Lang.ReflectiveOperationException</span>
</div></pre>
<h3>Type Changed: Java.Lang.IllegalAccessException</h3>
<p>Modified base type:</p>
<pre>
<div data-is-breaking> <span class='removed removed-inline removed-breaking-inline'>Java.Lang.Exception</span> <span class='added '>Java.Lang.ReflectiveOperationException</span>
</div></pre>
<h3>Type Changed: Java.Lang.InstantiationException</h3>
<p>Modified base type:</p>
<pre>
<div data-is-breaking> <span class='removed removed-inline removed-breaking-inline'>Java.Lang.Exception</span> <span class='added '>Java.Lang.ReflectiveOperationException</span>
</div></pre>
<h3>Type Changed: Java.Lang.NoSuchFieldException</h3>
<p>Modified base type:</p>
<pre>
<div data-is-breaking> <span class='removed removed-inline removed-breaking-inline'>Java.Lang.Exception</span> <span class='added '>Java.Lang.ReflectiveOperationException</span>
</div></pre>
<h3>Type Changed: Java.Lang.NoSuchMethodException</h3>
<p>Modified base type:</p>
<pre>
<div data-is-breaking> <span class='removed removed-inline removed-breaking-inline'>Java.Lang.Exception</span> <span class='added '>Java.Lang.ReflectiveOperationException</span>
</div></pre>
<h3>Type Changed: Java.Lang.Reflect.InvocationTargetException</h3>
<p>Modified base type:</p>
<pre>
<div data-is-breaking> <span class='removed removed-inline removed-breaking-inline'>Java.Lang.Exception</span> <span class='added '>Java.Lang.ReflectiveOperationException</span>
</div></pre>
<h1>### API BREAK BETWEEN v4.4.87 and v5.0</h1>
<h3>Type Changed: Android.OS.Bundle</h3>
<p>Modified base type:</p>
<pre>
<div data-is-breaking> <span class='removed removed-inline removed-breaking-inline'>Java.Lang.Object</span> <span class='added '>Android.OS.BaseBundle</span>
</div></pre>
<h1>### API BREAK BETWEEN v5.1 and v6.0</h1>
<h3>Type Changed: Android.App.Notification.Action.Action</h3>
<p>Modified properties:</p>
<pre>
<div data-is-breaking> public <span class='removed removed-inline removed-breaking-inline'>int</span> <span class='added '>Android.Graphics.Drawables.Icon</span> Icon { get; <span class='removed removed-inline removed-breaking-inline'>set;</span> }
</div></pre>
[0]: dotnet/android#1503
[1]: dotnet/android#2051 (comment)1 parent 74bcc72 commit ad38fd3
File tree
4 files changed
+11
-17
lines changed- reference
4 files changed
+11
-17
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18995 | 18995 | | |
18996 | 18996 | | |
18997 | 18997 | | |
18998 | | - | |
18999 | | - | |
19000 | | - | |
19001 | | - | |
19002 | | - | |
19003 | | - | |
19004 | | - | |
19005 | | - | |
19006 | | - | |
19007 | | - | |
19008 | | - | |
19009 | | - | |
19010 | | - | |
19011 | | - | |
19012 | | - | |
19013 | 18998 | | |
19014 | 18999 | | |
19015 | 19000 | | |
| |||
114855 | 114840 | | |
114856 | 114841 | | |
114857 | 114842 | | |
114858 | | - | |
| 114843 | + | |
0 commit comments