-
Notifications
You must be signed in to change notification settings - Fork 564
Make sure merged api description has the latest platform level #1237
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
Conversation
When merging we process several API description files, each for a separate platform. The resulting file currently carries the *first* platform level in its `<api platform="">` root element attribute. This is a subtle issue that may cause problems when applying fixups from metadata (for instance) as the `api-since` and `api-until` attributes in fixups may apply to incorrect sets of API members. Fix the issue by putting the latest API description platform level as obtained from the files provided to api-merge (the files are sorted in platform level ascending order)
|
I don't quite get it. What if we have something like preview API and no platform identifier is provided, or something like Wear API which is basically diverged from some existing platform and therefore shouldn't be merged to previous level? With your changes anything in Android Wear API will appear as Kitkat API, which is definitely no-go. Could you provide more concrete use case / problematic case that let you create this change? |
|
build |
|
The problem is that the current <?xml version="1.0" encoding="utf-8"?>
<api platform="10">
<package name="android">Note the |
|
@atsushieno wrote:
We control that API generation, right? Couldn't we always insert an <api platform="O">
<package name="android"> ...However, I'm not sure what that would break, if anything. |
|
I thought that this fix is about replacing So as long as it is about explicitly-specified platform values I'm okay with the change. |
|
@jonpryor api-merge currently assumes platform levels are integers, it would break with |
Context: https://github.com/actions/virtual-environments/blob/5cdc2e5f50ec21dbac1d3b475ae0fe364f4a2d12/images/linux/Ubuntu2004-Readme.md#environment-variables-3 Context: https://github.com/actions/virtual-environments/blob/5cdc2e5f50ec21dbac1d3b475ae0fe364f4a2d12/images/win/Windows2022-Readme.md#environment-variables-2 Context: https://github.com/actions/virtual-environments/blob/5cdc2e5f50ec21dbac1d3b475ae0fe364f4a2d12/images/macos/macos-11-Readme.md#environment-variables-2 Changes: xamarin/monodroid@91b4ef9...297767f * xamarin/monodroid@297767fcc: [build] Use Azure Pipelines vars for Android SDK/NDK paths (#1238) * xamarin/monodroid@9e83ad1e1: Bump to xamarin/xamarin-android/main@6a177eaa (#1237) Build and test against Android SDK and NDK paths set by Azure Pipelines hosted images, if those paths exist. This should help reduce our disk space requirements on CI.
When merging we process several API description files, each for a separate
platform. The resulting file currently carries the first platform level in its
<api platform="">root element attribute. This is a subtle issue that maycause problems when applying fixups from metadata (for instance) as the
api-sinceandapi-untilattributes in fixups may apply to incorrect sets ofAPI members.
Fix the issue by putting the latest API description platform level as obtained
from the files provided to api-merge (the files are sorted in platform level
ascending order)