Skip to content
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

[Mono.Android] Bind and enumify Android 13 Beta 1. #7105

Merged
merged 5 commits into from
Jun 28, 2022
Merged

Conversation

jpobst
Copy link
Contributor

@jpobst jpobst commented Jun 16, 2022

Context: https://developer.android.com/about/versions/13
Context: https://android-developers.googleblog.com/2022/06/android-13-beta-3-platform-stability.html

Android 13 Beta 3 has been released. The Android 13
Developer Preview Program Overview Timeline and updates section
suggests the following timeline:

  • Feb/Mar: Developer Previews
  • April/May: Unstable Betas
  • June/July: Stable Betas
  • ???: Final

Notes

Enumification Issue

The following methods look like they should be enumified, however the constants referenced by their documentation do not exist. Perhaps this will be fixed later and we should revisit them? For now, they are not enumified.

?,33,android/net/wifi/aware,PublishConfig,getInstantCommunicationBand,return,
?,33,android/net/wifi/aware,PublishConfig$Builder,setInstantCommunicationModeEnabled,band,
?,33,android/net/wifi/aware,SubscribeConfig,getInstantCommunicationBand,return,
?,33,android/net/wifi/aware,SubscribeConfig$Builder,setInstantCommunicationModeEnabled,band,
?,33,android/net/wifi,MloLink,getBand,return,

ApiCompat Changes

We now ignore [Android.Runtime.StringDefAttribute] and [Android.Runtime.IntDefAttribute] in ApiCompat. These attributes frequently churn on each preview and release, causing lots of noise in our acceptable-breakages* files. As we do not consume these attributes, we don't really need to track changes.

Relevant existing entries from acceptable-breakages* files were removed.

Ship in XA Classic

Revert change to build-tools/installers/create-installers.targets that kept API-33 from shipping in our Classic installer.

Update CodeDiffGen

The logic for running Microsoft.DotNet.GenAPI was failing with:

 /Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android/Mono.Android.targets(270,5): error MSB4018: System.ComponentModel.Win32Exception (8): An error occurred trying to start process '/Users/builder/.nuget/packages/microsoft.dotnet.genapi/7.0.0-beta.22103.1/tools/net472/Microsoft.DotNet.GenAPI.exe' with working directory '/Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android'. Exec format error

Run the netcoreapp3.1/Microsoft.DotNet.GenAPI.dll version instead when running on dotnet.

@jpobst jpobst changed the title [Mono.Android] Bind Android 13 Beta 1. [Mono.Android] Bind and enumify Android 13 Beta 1. Jun 16, 2022
@jpobst jpobst force-pushed the api-33-beta-1 branch 7 times, most recently from 391411f to df921f9 Compare June 23, 2022 19:00
@jpobst jpobst force-pushed the api-33-beta-1 branch 5 times, most recently from 1ed175c to 5bb439a Compare June 27, 2022 05:06
@jpobst jpobst marked this pull request as ready for review June 28, 2022 16:17
@jonpryor
Copy link
Member

jonpryor commented Jun 28, 2022

Context: https://developer.android.com/about/versions/13
Context: https://android-developers.googleblog.com/2022/06/android-13-beta-3-platform-stability.html

Android 13 Beta 3 has been released.

  * [API diff vs. API-32][0]
  * [API diff vs. API-Tiramisu Beta 2][1]

The Android 13 Developer Preview Program Overview
[Timeline and updates][2] section suggests the following timeline:

  * May: Beta 2
  * June: Beta 3: First Platform Stability milestone.
    Final APIs and behaviors.
  * July: Beta 4: Near-final build for final testing.
  * ???: Final

In particular, Beta 3 has "Final APIs".  We now have API-33!

Enumify API-33, and declare it stable.

API-33 will be available as:

  * Classic Xamarin.Android: `$(TargetFrameworkVersion)`=v13.0
  * .NET 6: `$(TargetFramework)`=net6.0-android33.0
  * .NET 7: `$(TargetFramework)`=net7.0-android33.0

The default API-level for `net6.0-android` remains API-31.
The default API-level for `net7.0-android` will be API-33.

~~ Enumification Issue ~~

The following methods look like they should be enumified, however the
constants referenced by their [documentation][3] do not exist.
Perhaps this will be fixed later and we should revisit them?  For now,
they are not enumified.

	?,33,android/net/wifi/aware,PublishConfig,getInstantCommunicationBand,return,
	?,33,android/net/wifi/aware,PublishConfig$Builder,setInstantCommunicationModeEnabled,band,
	?,33,android/net/wifi/aware,SubscribeConfig,getInstantCommunicationBand,return,
	?,33,android/net/wifi/aware,SubscribeConfig$Builder,setInstantCommunicationModeEnabled,band,
	?,33,android/net/wifi,MloLink,getBand,return,


~~ API Compat Changes ~~

We now ignore `[Android.Runtime.StringDefAttribute]` and
`[Android.Runtime.IntDefAttribute]` in `<CheckApiCompatibility/>`.
These attributes frequently churn on each preview and release, causing
lots of noise in our `acceptable-breakages*` files.  As we do not
consume these attributes, we don't really need to track changes.

Relevant existing entries from `acceptable-breakages*` files were removed.


~~ Update `CodeDiffGen` ~~

The logic for running `Microsoft.DotNet.GenAPI` was failing with:

	/Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android/Mono.Android.targets(270,5):
	error MSB4018: System.ComponentModel.Win32Exception (8): An error occurred trying to start process
	'/Users/builder/.nuget/packages/microsoft.dotnet.genapi/7.0.0-beta.22103.1/tools/net472/Microsoft.DotNet.GenAPI.exe'
	with working directory '/Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android'.
	Exec format error

Fix this by using the `netcoreapp3.1/Microsoft.DotNet.GenAPI.dll`
version when running under `dotnet`.

Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>

[0]: https://developer.android.com/sdk/api_diff/33/changes
[1]: https://developer.android.com/sdk/api_diff/33-incr/changes
[2]: https://web.archive.org/web/20220627195145/https://developer.android.com/about/versions/13/overview#platform_stability
[3]: https://developer.android.com/reference/kotlin/android/net/wifi/aware/PublishConfig#getinstantcommunicationband

@jonpryor jonpryor merged commit df6c716 into main Jun 28, 2022
@jonpryor jonpryor deleted the api-33-beta-1 branch June 28, 2022 16:49
jonathanpeppers pushed a commit to jonathanpeppers/xamarin-android that referenced this pull request Jun 30, 2022
Context: https://developer.android.com/about/versions/13
Context: https://android-developers.googleblog.com/2022/06/android-13-beta-3-platform-stability.html

Android 13 Beta 3 has been released.

  * [API diff vs. API-32][0]
  * [API diff vs. API-Tiramisu Beta 2][1]

The Android 13 Developer Preview Program Overview
[Timeline and updates][2] section suggests the following timeline:

  * May: Beta 2
  * June: Beta 3: First Platform Stability milestone.
    Final APIs and behaviors.
  * July: Beta 4: Near-final build for final testing.
  * ???: Final

In particular, Beta 3 has "Final APIs".  We now have API-33!

Enumify API-33, and declare it stable.

API-33 will be available as:

  * Classic Xamarin.Android: `$(TargetFrameworkVersion)`=v13.0
  * .NET 6: `$(TargetFramework)`=net6.0-android33.0
  * .NET 7: `$(TargetFramework)`=net7.0-android33.0

The default API-level for `net6.0-android` remains API-31.
The default API-level for `net7.0-android` will be API-33.

~~ Enumification Issue ~~

The following methods look like they should be enumified, however the
constants referenced by their [documentation][3] do not exist.
Perhaps this will be fixed later and we should revisit them?  For now,
they are not enumified.

	?,33,android/net/wifi/aware,PublishConfig,getInstantCommunicationBand,return,
	?,33,android/net/wifi/aware,PublishConfig$Builder,setInstantCommunicationModeEnabled,band,
	?,33,android/net/wifi/aware,SubscribeConfig,getInstantCommunicationBand,return,
	?,33,android/net/wifi/aware,SubscribeConfig$Builder,setInstantCommunicationModeEnabled,band,
	?,33,android/net/wifi,MloLink,getBand,return,

~~ API Compat Changes ~~

We now ignore `[Android.Runtime.StringDefAttribute]` and
`[Android.Runtime.IntDefAttribute]` in `<CheckApiCompatibility/>`.
These attributes frequently churn on each preview and release, causing
lots of noise in our `acceptable-breakages*` files.  As we do not
consume these attributes, we don't really need to track changes.

Relevant existing entries from `acceptable-breakages*` files were removed.

~~ Update `CodeDiffGen` ~~

The logic for running `Microsoft.DotNet.GenAPI` was failing with:

	/Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android/Mono.Android.targets(270,5):
	error MSB4018: System.ComponentModel.Win32Exception (8): An error occurred trying to start process
	'/Users/builder/.nuget/packages/microsoft.dotnet.genapi/7.0.0-beta.22103.1/tools/net472/Microsoft.DotNet.GenAPI.exe'
	with working directory '/Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android'.
	Exec format error

Fix this by using the `netcoreapp3.1/Microsoft.DotNet.GenAPI.dll`
version when running under `dotnet`.

Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>

[0]: https://developer.android.com/sdk/api_diff/33/changes
[1]: https://developer.android.com/sdk/api_diff/33-incr/changes
[2]: https://web.archive.org/web/20220627195145/https://developer.android.com/about/versions/13/overview#platform_stability
[3]: https://developer.android.com/reference/kotlin/android/net/wifi/aware/PublishConfig#getinstantcommunicationband
jonathanpeppers pushed a commit to jonathanpeppers/xamarin-android that referenced this pull request Jun 30, 2022
Context: https://developer.android.com/about/versions/13
Context: https://android-developers.googleblog.com/2022/06/android-13-beta-3-platform-stability.html

Android 13 Beta 3 has been released.

  * [API diff vs. API-32][0]
  * [API diff vs. API-Tiramisu Beta 2][1]

The Android 13 Developer Preview Program Overview
[Timeline and updates][2] section suggests the following timeline:

  * May: Beta 2
  * June: Beta 3: First Platform Stability milestone.
    Final APIs and behaviors.
  * July: Beta 4: Near-final build for final testing.
  * ???: Final

In particular, Beta 3 has "Final APIs".  We now have API-33!

Enumify API-33, and declare it stable.

API-33 will be available as:

  * Classic Xamarin.Android: `$(TargetFrameworkVersion)`=v13.0
  * .NET 6: `$(TargetFramework)`=net6.0-android33.0
  * .NET 7: `$(TargetFramework)`=net7.0-android33.0

The default API-level for `net6.0-android` remains API-31.
The default API-level for `net7.0-android` will be API-33.

~~ Enumification Issue ~~

The following methods look like they should be enumified, however the
constants referenced by their [documentation][3] do not exist.
Perhaps this will be fixed later and we should revisit them?  For now,
they are not enumified.

	?,33,android/net/wifi/aware,PublishConfig,getInstantCommunicationBand,return,
	?,33,android/net/wifi/aware,PublishConfig$Builder,setInstantCommunicationModeEnabled,band,
	?,33,android/net/wifi/aware,SubscribeConfig,getInstantCommunicationBand,return,
	?,33,android/net/wifi/aware,SubscribeConfig$Builder,setInstantCommunicationModeEnabled,band,
	?,33,android/net/wifi,MloLink,getBand,return,

~~ API Compat Changes ~~

We now ignore `[Android.Runtime.StringDefAttribute]` and
`[Android.Runtime.IntDefAttribute]` in `<CheckApiCompatibility/>`.
These attributes frequently churn on each preview and release, causing
lots of noise in our `acceptable-breakages*` files.  As we do not
consume these attributes, we don't really need to track changes.

Relevant existing entries from `acceptable-breakages*` files were removed.

~~ Update `CodeDiffGen` ~~

The logic for running `Microsoft.DotNet.GenAPI` was failing with:

	/Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android/Mono.Android.targets(270,5):
	error MSB4018: System.ComponentModel.Win32Exception (8): An error occurred trying to start process
	'/Users/builder/.nuget/packages/microsoft.dotnet.genapi/7.0.0-beta.22103.1/tools/net472/Microsoft.DotNet.GenAPI.exe'
	with working directory '/Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android'.
	Exec format error

Fix this by using the `netcoreapp3.1/Microsoft.DotNet.GenAPI.dll`
version when running under `dotnet`.

Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>

[0]: https://developer.android.com/sdk/api_diff/33/changes
[1]: https://developer.android.com/sdk/api_diff/33-incr/changes
[2]: https://web.archive.org/web/20220627195145/https://developer.android.com/about/versions/13/overview#platform_stability
[3]: https://developer.android.com/reference/kotlin/android/net/wifi/aware/PublishConfig#getinstantcommunicationband
jonathanpeppers pushed a commit to jonathanpeppers/xamarin-android that referenced this pull request Jul 5, 2022
Context: https://developer.android.com/about/versions/13
Context: https://android-developers.googleblog.com/2022/06/android-13-beta-3-platform-stability.html

Android 13 Beta 3 has been released.

  * [API diff vs. API-32][0]
  * [API diff vs. API-Tiramisu Beta 2][1]

The Android 13 Developer Preview Program Overview
[Timeline and updates][2] section suggests the following timeline:

  * May: Beta 2
  * June: Beta 3: First Platform Stability milestone.
    Final APIs and behaviors.
  * July: Beta 4: Near-final build for final testing.
  * ???: Final

In particular, Beta 3 has "Final APIs".  We now have API-33!

Enumify API-33, and declare it stable.

API-33 will be available as:

  * Classic Xamarin.Android: `$(TargetFrameworkVersion)`=v13.0
  * .NET 6: `$(TargetFramework)`=net6.0-android33.0
  * .NET 7: `$(TargetFramework)`=net7.0-android33.0

The default API-level for `net6.0-android` remains API-31.
The default API-level for `net7.0-android` will be API-33.

~~ Enumification Issue ~~

The following methods look like they should be enumified, however the
constants referenced by their [documentation][3] do not exist.
Perhaps this will be fixed later and we should revisit them?  For now,
they are not enumified.

	?,33,android/net/wifi/aware,PublishConfig,getInstantCommunicationBand,return,
	?,33,android/net/wifi/aware,PublishConfig$Builder,setInstantCommunicationModeEnabled,band,
	?,33,android/net/wifi/aware,SubscribeConfig,getInstantCommunicationBand,return,
	?,33,android/net/wifi/aware,SubscribeConfig$Builder,setInstantCommunicationModeEnabled,band,
	?,33,android/net/wifi,MloLink,getBand,return,

~~ API Compat Changes ~~

We now ignore `[Android.Runtime.StringDefAttribute]` and
`[Android.Runtime.IntDefAttribute]` in `<CheckApiCompatibility/>`.
These attributes frequently churn on each preview and release, causing
lots of noise in our `acceptable-breakages*` files.  As we do not
consume these attributes, we don't really need to track changes.

Relevant existing entries from `acceptable-breakages*` files were removed.

~~ Update `CodeDiffGen` ~~

The logic for running `Microsoft.DotNet.GenAPI` was failing with:

	/Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android/Mono.Android.targets(270,5):
	error MSB4018: System.ComponentModel.Win32Exception (8): An error occurred trying to start process
	'/Users/builder/.nuget/packages/microsoft.dotnet.genapi/7.0.0-beta.22103.1/tools/net472/Microsoft.DotNet.GenAPI.exe'
	with working directory '/Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android'.
	Exec format error

Fix this by using the `netcoreapp3.1/Microsoft.DotNet.GenAPI.dll`
version when running under `dotnet`.

Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>

[0]: https://developer.android.com/sdk/api_diff/33/changes
[1]: https://developer.android.com/sdk/api_diff/33-incr/changes
[2]: https://web.archive.org/web/20220627195145/https://developer.android.com/about/versions/13/overview#platform_stability
[3]: https://developer.android.com/reference/kotlin/android/net/wifi/aware/PublishConfig#getinstantcommunicationband
@github-actions github-actions bot locked and limited conversation to collaborators Jan 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants