-
Notifications
You must be signed in to change notification settings - Fork 526
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Android API-29 enumification and stabilization #3305
Conversation
The GIT issue appears to be gone, however the Azure build now fails on macOS with:
There are also test failures which may have to do with the PR. |
80c0d73
to
77a051e
Compare
fa6621f
to
5f675b4
Compare
Context: e956107 Context: #3305 When `Mono.Android-Test.Library.csproj` was added in e956107 it did not import our `Configuration.props` file which contains default paths to the Android tooling that we provision. This recently caused a breakage when bumping the `$(TargetFrameworkVersion)` of this project to v10.0 (within PR #3305) and building against a system install of XA, as the Android SDK path which was automatically resolved did not contain `platforms/android-29/android.jar`. Importing `Configuration.props` file should fix this build failure.
5f675b4
to
52aa73d
Compare
44021bd
to
aedc4c6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah looks like the changes for: https://github.com/xamarin/xamarin-android/pull/3305/files#diff-c740831c14f44e704a255b944359df01R25
Will be required because the previous app was built with v9.0 and VS 2017. We'll have to make this test check for the presence of v9.0 going forward.
84bde1e
to
55be351
Compare
40bfc0a
to
5564de8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks ok. There are however allot of white space changes in the various file which are just adding noise to the PR. Might be nice to clean those up a bit if possible.
When will this be merged? I would like to get access to BiometricManager ;) |
dfc0096
to
a9be149
Compare
@artur-malendowicz-gain As soon as we are able to get a good build. API Level 29 has some breakages that I am working on to fix it. |
I looked into the crash in the XF test today. The cause of this is that XF assembly, built against API 28, calls to
And because API 29 has breaking change in the The inheritance change: API 28:
API 29:
So when XF code calls to It looks like the methods tables are wrong here and so we end up in
ends up in |
d59b6d1
to
f7b57b1
Compare
fa1ffaf
to
c48623d
Compare
Added the full-mono-integration-build label and restarted the Jenkins build: https://jenkins.mono-project.com/job/xamarin-android-pr-pipeline-release/1705/ |
1d20d1e
to
98b2a33
Compare
Update assemblies for API-29, mono/mono@761220d9 Context: dotnet/android#3305 Commit xamarin/xamarin-android/master@0c9f83b7 included a bump to mono/mono@761220d9, which [broke API compatibility][0], removing `System.Diagnostics.Tracing.EventCounter.Dispose()`: <h3>Type Changed: System.Diagnostics.Tracing.EventCounter</h3> <p>Removed method:</p> <pre> <span class='removed removed-method breaking' data-is-breaking>public virtual void Dispose ();</span> </pre> This was introduced by [dotnet/standard@af001b83][1] and the introduction of a new `System.Diagnostics.Tracing.DiagnosticCounter` base class. This is thus an API-compatible change. Meanwhile, [xamarin-android PR 3305][2] adds support for [Android 10.0 (API-29)][3], adding several new types & members. API-29 requires a new `inter-api-extra-v9.0-v10.0.txt` file for inter-API comparisons due to "compatible" changes which `mono-api-html` reports as errors. These include * Changing the base class of `Android.App.ActivityManager.RecentTaskInfo` and `Android.App.ActivityManager.RecentTaskInfo.RunningTaskInfo` to `Android.App.TaskInfo`, from `Java.Lang.Object`. * The base class of `Java.Util.Concurrent.Atomic.DoubleAccumulator`, `DoubleAdder`, `LongAccumulator`, and `LongAdder` was changed from `Java.Util.Concurrent.Atomic.Striped64` to `Java.Lang.Number`. This *is* a breaking change, but `Striped64` inherited from `Number`, so all method invocations were already "based on" `Number` method invocations. This change should only alter compatibility when performing a reference conversion to `Striped64`: Java.Util.Concurrent.Atomic.Striped64 = new Java.Util.Concurrent.Atomic.DoubleAccumulator(); // Previously valid, now a CS0029 We believe that this change shouldn't actually impact anyone. * `Android.Text.SpannableStringInternal` methods were changed from non-`virtual` to `virtual`, because on the Java side the `android.text.SpannableStringInternal` class was removed, which resulted in a [runtime crash][4]. The chosen fix was to make these methods `virtual`, so that they could be appropriately overridden and dispatched to the correct Java-side type. [0]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/668/API_20Compatibility_20Checks/ [1]: dotnet/standard@af001b8#diff-5d9a22f9ff5db529e1ea22efb9858d01 [2]: dotnet/android#3305 [3]: https://web.archive.org/web/20190726091025/https://developer.android.com/preview/features [4]: dotnet/android#3305 (comment)
Update assemblies for API-29, mono/mono@761220d9 Context: dotnet/android#3305 Commit xamarin/xamarin-android/master@0c9f83b7 included a bump to mono/mono@761220d9, which [broke API compatibility][0], removing `System.Diagnostics.Tracing.EventCounter.Dispose()`: <h3>Type Changed: System.Diagnostics.Tracing.EventCounter</h3> <p>Removed method:</p> <pre> <span class='removed removed-method breaking' data-is-breaking>public virtual void Dispose ();</span> </pre> This was introduced by [dotnet/standard@af001b83][1] and the introduction of a new `System.Diagnostics.Tracing.DiagnosticCounter` base class. This is thus an API-compatible change. Meanwhile, [xamarin-android PR 3305][2] adds support for [Android 10.0 (API-29)][3], adding several new types & members. API-29 requires a new `inter-api-extra-v9.0-v10.0.txt` file for inter-API comparisons due to "compatible" changes which `mono-api-html` reports as errors. These include * Changing the base class of `Android.App.ActivityManager.RecentTaskInfo` and `Android.App.ActivityManager.RecentTaskInfo.RunningTaskInfo` to `Android.App.TaskInfo`, from `Java.Lang.Object`. * The base class of `Java.Util.Concurrent.Atomic.DoubleAccumulator`, `DoubleAdder`, `LongAccumulator`, and `LongAdder` was changed from `Java.Util.Concurrent.Atomic.Striped64` to `Java.Lang.Number`. This *is* a breaking change, but `Striped64` inherited from `Number`, so all method invocations were already "based on" `Number` method invocations. This change should only alter compatibility when performing a reference conversion to `Striped64`: Java.Util.Concurrent.Atomic.Striped64 = new Java.Util.Concurrent.Atomic.DoubleAccumulator(); // Previously valid, now a CS0029 We believe that this change shouldn't actually impact anyone. * `Android.Text.SpannableStringInternal` methods were changed from non-`virtual` to `virtual`, because on the Java side the `android.text.SpannableStringInternal` class was removed, which resulted in a [runtime crash][4]. The chosen fix was to make these methods `virtual`, so that they could be appropriately overridden and dispatched to the correct Java-side type. [0]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/668/API_20Compatibility_20Checks/ [1]: dotnet/standard@af001b8#diff-5d9a22f9ff5db529e1ea22efb9858d01 [2]: dotnet/android#3305 [3]: https://web.archive.org/web/20190726091025/https://developer.android.com/preview/features [4]: dotnet/android#3305 (comment)
59d8d59
to
cd18b80
Compare
cd18b80
to
714c356
Compare
API-29/v10.0 is now stable. Bumps to xamarin/xamarin-android-api-compatibility@da270b88. Bump Targets/`$(TargetSdkVersion)` to v10.0 (API-29). Add `src/Mono.Android/Profiles/api-29.params.txt` for parameter names. Add new enums and fix method signatures (`map.csv`, `methodmap.csv`). Fix metadata whitespace formatting. Update Android Emulator to use 29 image Bump test timeouts. Fix test issues: * [build-tools] Update the logcat timing patterns for API-29 * [logcat processing] Update activity displayed detection * Fixing some deploy/undeploy apks to emulator * Ignore exit code for `adb logcat -c` * Allow BuildTest.BuildHasNoWarnings to have up to 1 warning due to be incompatible with Api level 29 Remove `#if !ANDROID_29` condition from `StringBuffer.cs` and `StringBuilder.cs`, added in 2cace0b, to preserve API compatibility.
@jonpryor any ETA when it will be available in stable/preview release? |
Context: e956107 Context: #3305 When `Mono.Android-Test.Library.csproj` was added in e956107 it did not import our `Configuration.props` file which contains default paths to the Android tooling that we provision. This recently caused a breakage when bumping the `$(TargetFrameworkVersion)` of this project to v10.0 (within PR #3305) and building against a system install of XA, as the Android SDK path which was automatically resolved did not contain `platforms/android-29/android.jar`. Importing `Configuration.props` file should fix this build failure.
API-29 is now Final.
Android API-29 enumification and stabilization
On these changes:
[build-tools] Update the logcat timing patterns for API-29
[logcat processing] Update activity displayed detection
Fixing some deploy/undeploy apks to emulator
Ignore exit code for logcat -c
Allow BuildTest.BuildHasNoWarnings to have up to 1 warning due to be incompatible with Api level 29