Skip to content

Unify Xamarin.GoogleAndroid.* package IDs and strip Xamarin. prefix from Play.Core.Review namespaces#1466

Open
Copilot wants to merge 3 commits into
mainfrom
copilot/unify-xamarin-google-naming
Open

Unify Xamarin.GoogleAndroid.* package IDs and strip Xamarin. prefix from Play.Core.Review namespaces#1466
Copilot wants to merge 3 commits into
mainfrom
copilot/unify-xamarin-google-naming

Conversation

Copilot AI commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #1461. A handful of sibling packages still used the legacy Xamarin.GoogleAndroid.* NuGet ID form, and Play.Review/Play.Review.Ktx carried an anomalous Xamarin. prefix in their managed namespaces. This aligns them with the repo standard (Xamarin.Google.Android.* ID, Google.Android.* namespace).

⚠️ Breaking for consumers — package-ID renames break NuGet references and namespace changes break using statements; intended to ship together with release notes calling out the renames.

Package ID renames (Xamarin.GoogleAndroid.*Xamarin.Google.Android.*)

Namespaces also drop the Xamarin. prefix (→ Google.Android.*); revision bumped per package.

Package Version Namespace
Annotations 4.1.1.254.1.1.26 unchanged (Android.Annotation.*, no prefix)
Libraries.Identity.GoogleId 1.1.0.131.1.0.14 Google.Android.Libraries.Identity.GoogleId
Libraries.Places 5.2.05.2.0.1 Google.Android.Libraries.Places.*
Libraries.Places.Compat 2.6.0.172.6.0.18 Google.Android.Libraries.Places.*
TV.Ads 1.0.1.61.0.1.7 Google.Android.TV.Ads.*

Namespace cleanup (package ID unchanged)

  • Play.Review 2.0.2.72.0.2.8Xamarin.Google.Android.Play.Core.Review[.Model|.Testing]Google.Android.Play.Core.Review.*. The managedName for the com.google.android.play.core.review.internal package is renamed too, but that package emits no public types, so no Google.Android.Play.Core.Review.Internal namespace is published (only Review/.Model/.Testing).
  • Play.Review.Ktx 2.0.2.72.0.2.8Xamarin.Google.Android.Play.Core.KtxGoogle.Android.Play.Core.Ktx

Supporting files (per touched package)

  • config.json nugetId + nugetVersion; Metadata(.Namespaces).xml managedName; PublicAPI/PublicAPI.Unshipped.txt; cgmanifest.json; docs/artifact-list.md + artifact-list-with-versions.md; test ignore-list entry in TestAllIndividualPackages.cs.
  • published-namespaces.txt: added the new Google.Android.* entries while retaining Xamarin.Google.Android.Play.Core.Review*/.Ktx, which the unchanged Play.Core/Play.Core.Ktx packages still emit.

Merge with main

Out of scope (audit notes)

  • ads-mobile-sdk — renamed on main via Fix ads-mobile-sdk binding: naming convention and missing AdView.LoadAd #1461 and merged in here, but not part of this issue's list.
  • Xamarin.Google.MLKit.TextRecognition.Bundled.Common still exposes Xamarin.GoogleAndroid.Libraries.Vision.VisionKit.* (separate package; its own breaking change).
  • Other com.google.android.play/* packages (Play.Core, App.Update, Asset.Delivery, Integrity, …) keep their Xamarin.Google.Android.Play.Core.* namespaces — not part of this release (no version bump requested).

Notes for reviewers

  • Docs rows were regenerated via dotnet cake utilities.cake -t=list-artifacts (correct fixed-width padding), then narrowed to only the target rows.
  • binderate / metadata-verify / namespace-check were not run here (require network access to Maven/externals); CI should exercise them against regenerated ./generated.
  • PublicAPI .Unshipped.txt edits mirror the rename and remain ordinal-sorted; they are auto-regenerated from the built assembly on the next maintainer build.

…ew namespaces

Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
Copilot AI changed the title [WIP] Unify naming for Xamarin.GoogleAndroid packages and Play.Core.Review namespace Unify Xamarin.GoogleAndroid.* package IDs and strip Xamarin. prefix from Play.Core.Review namespaces Jun 8, 2026
Copilot AI requested a review from jonathanpeppers June 8, 2026 20:12
@jonathanpeppers

Copy link
Copy Markdown
Member

@copilot fix merge conflicts and update namespace file:

----------------------------------------
Setup
----------------------------------------

========================================
verify-namespace-file
========================================
Removed Namespaces
------------------
Google.Android.Play.Core.Review.Internal
An error occurred when executing task 'verify-namespace-file'.

----------------------------------------
TearDown
----------------------------------------
     #TimingDataStopwatch,  20260608-230520.65,                   verify-namespace-file,         00:00:04.5723830
          #TimingDataCake,  20260608-230520.65,                   verify-namespace-file,         00:00:04.5720443
Error: Namespaces were added or removed.
please run:
    dotnet cake utilities.cake -t=generate-namespace-file

##[error]PowerShell exited with code '1'.
Finishing: Verify published namespaces

@jonathanpeppers jonathanpeppers marked this pull request as ready for review June 8, 2026 23:55
Copilot AI review requested due to automatic review settings June 8, 2026 23:55

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aligns several Google Android binding packages with the repository’s naming standard by (1) renaming legacy Xamarin.GoogleAndroid.* NuGet IDs to Xamarin.Google.Android.* and (2) removing the anomalous Xamarin. prefix from the managed namespaces for Play.Review / Play.Review.Ktx (and related renamed siblings), bringing them in line with the typical Xamarin.* NuGet ID → Google.* managed namespace pattern.

Changes:

  • Renamed NuGet package IDs in config.json (and mirrored in cgmanifest.json + docs) for a handful of Xamarin.GoogleAndroid.* packages to Xamarin.Google.Android.*, with revision bumps.
  • Updated Metadata.Namespaces.xml / Metadata.xml and PublicAPI.Unshipped.txt to reflect the new Google.Android.* managed namespaces for the affected bindings.
  • Updated published-namespaces.txt, docs artifact lists, and the all-packages test ignore list to match the renames.

Reviewed changes

Copilot reviewed 17 out of 18 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/allpackages/TestAllIndividualPackages.cs Updates ignored package ID to the renamed Places.Compat NuGet ID.
source/com.google.android.tv/tv-ads/Transforms/Metadata.Namespaces.xml Switches tv-ads managed namespaces to Google.Android.TV.Ads*.
source/com.google.android.tv/tv-ads/PublicAPI/PublicAPI.Unshipped.txt Updates public API surface to the new tv-ads namespaces.
source/com.google.android.play/review/Transforms/Metadata.Namespaces.xml Switches Play Review managed namespaces to Google.Android.Play.Core.Review*.
source/com.google.android.play/review/PublicAPI/PublicAPI.Unshipped.txt Updates Play Review public API surface to the new namespaces.
source/com.google.android.play/review-ktx/Transforms/Metadata.Namespaces.xml Switches Review KTX managed namespace to Google.Android.Play.Core.Ktx.
source/com.google.android.play/review-ktx/PublicAPI/PublicAPI.Unshipped.txt Updates Review KTX public API surface to the new namespaces.
source/com.google.android.libraries.places/places/Transforms/Metadata.Namespaces.xml Switches Places managed namespaces to Google.Android.Libraries.Places*.
source/com.google.android.libraries.places/places-compat/Transforms/Metadata.Namespaces.xml Switches Places.Compat managed namespaces to Google.Android.Libraries.Places*.
source/com.google.android.libraries.places/places-compat/PublicAPI/PublicAPI.Unshipped.txt Updates Places.Compat public API surface to the new namespaces.
source/com.google.android.libraries.identity.googleid/googleid/Transforms/Metadata.xml Switches GoogleId managed namespace to Google.Android.Libraries.Identity.GoogleId.
source/com.google.android.libraries.identity.googleid/googleid/PublicAPI/PublicAPI.Unshipped.txt Updates GoogleId public API surface to the new namespace.
published-namespaces.txt Adds new Google.Android.* namespaces while retaining existing Play.Core namespaces from other packages.
docs/artifact-list.md Updates listed NuGet IDs for the renamed packages.
docs/artifact-list-with-versions.md Updates listed NuGet IDs and NuGet versions for the renamed/bumped packages.
config.json Renames affected nugetIds and bumps nugetVersions accordingly.
cgmanifest.json Mirrors the nuGetId / nuGetVersion updates for component governance metadata.

…-google-naming

# Conflicts:
#	docs/artifact-list-with-versions.md
#	docs/artifact-list.md
#	published-namespaces.txt

Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>

Copilot AI commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

@copilot fix merge conflicts and update namespace file:

----------------------------------------

...

Fixed in fe31f47.

  • Merged origin/main and resolved the conflicts in published-namespaces.txt and both docs/artifact-list*.md files, keeping both Fix ads-mobile-sdk binding: naming convention and missing AdView.LoadAd #1461's ads-mobile-sdkXamarin.Google.Android.Libraries.Ads.Mobile.Sdk rename and this PR's Identity.GoogleId/Places/TV.Ads renames.
  • Removed Google.Android.Play.Core.Review.Internal from published-namespaces.txt. The com.google.android.play.core.review.internal package emits no public types, so the binding never produces that namespace — the original list only had Review/.Model/.Testing, which is what verify-namespace-file was flagging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unify naming for Xamarin.GoogleAndroid.* packages and Xamarin.Google.Android.Play.Core.Review namespace

3 participants