Keep Xamarin.GooglePlayServices.Ads.Lite frozen at 24.0.0 to preserve Android.Gms.Ads namespaces#1431
Keep Xamarin.GooglePlayServices.Ads.Lite frozen at 24.0.0 to preserve Android.Gms.Ads namespaces#1431Copilot wants to merge 5 commits into
Conversation
Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
|
@copilot can you actually attempt to "unfreeze" this, and update to latest? |
Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
Done in 7864b94. I unfroze the entry and bumped it to the latest stable, One thing to flag before merging: I verified the upstream AARs and
25.0.0's |
Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
|
@copilot do we need to add |
Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
No — there's no You're right that the namespaces shouldn't disappear. I dug into why CI flagged them: the Since there's no upstream artifact that still carries those classes, the only way to keep |
|
Closing in favor of #1435 (binding the new GMA Next-Gen SDK artifact). Xamarin.GooglePlayServices.Ads.Lite will remain frozen at 24.0.0 since upstream play-services-ads-lite became an empty stub from 24.3.0 onward. |
Xamarin.GooglePlayServices.Ads.Liteis pinned/frozen atplay-services-ads-lite:24.0.0while full Ads is on25.3.0. An attempt was made to unfreeze and update it to the latest upstream stable version, but doing so removes public API namespaces that consumers depend on, so this PR keeps the entry frozen at 24.0.0 and documents why.Upstream emptied the
play-services-ads-liteartifact at 24.3.0 and moved its implementation intoplay-services-ads-api. There is no-androidsuffixed variant —play-services-ads-lite-androidreturns 404 on Google Maven at every version. So updating the entry to 25.0.0 would ship an empty package and drop theAndroid.Gms.Ads.*namespaces entirely (theverify-namespace-fileCI check fails with those namespaces listed as Removed).Those
Android.Gms.Ads.*namespaces are produced only by the frozenXamarin.GooglePlayServices.Ads.Lite24.0.0 binding.Xamarin.GooglePlayServices.Ads.Apibinds the same upstream types but deliberately under theGoogle.Android.Gms.Ads.*namespace (both prefixes are present inpublished-namespaces.txt) to avoid duplicate-type collisions. Because no upstream artifact still carries those classes under the original namespace, the only way to preserveAndroid.Gms.Ads.*is to keep Lite frozen at 24.0.0 — which is why it was pinned in the first place.Upstream AAR class counts (verified by downloading the AARs):
play-services-ads-lite:24.0.0play-services-ads-lite:24.3.0play-services-ads-api)play-services-ads-lite:25.0.0play-services-ads-api)Changes
config.json— Kept theplay-services-ads-liteentry frozen at24.0.0(frozen: true,nugetVersion 124.0.0.5), retaining itsextraDependenciesand theplay-services-ads-base:24.0.0dependency-only entry required by the frozen lite POM.config.json— Added acommentsfield documenting that the entry is intentionally frozen because upstream became an empty stub from 24.3.0 onward, and that consumers needing newer Ads APIs should useXamarin.GooglePlayServices.AdsorXamarin.GooglePlayServices.Ads.Api.The net change relative to
mainis just this documentation comment; the binding stays frozen so the namespaces are preserved and CI passes.Notes
config.json), soconfig.jsonis the only source of truth changed here.Android.Gms.Ads.*in favor ofGoogle.Android.Gms.Ads.*fromXamarin.GooglePlayServices.Ads.Api; this has been flagged on the PR for author confirmation.