Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Aug 22, 2025

This PR resolves critical dependency resolution issues that were preventing the successful build of the stable updates for August 22, 2025. The main fix addresses the com.google.j2objc:j2objc-annotations version issue identified in previous builds.

Key Fixes

Dependency Resolution Issues

  • Fixed com.google.j2objc:j2objc-annotations version from "3.1.0" to "3.1" - The 3.1.0 version doesn't exist in Maven Central, causing 404 errors during artifact downloads
  • Added missing Compose 1.9.0 dependencies - Added androidx.compose.runtime:runtime-annotation* packages required by the updated Compose libraries
  • Added missing SavedState dependency - Added androidx.savedstate:savedstate-compose package for proper SavedState integration
  • Fixed Android.Gms.Ads APIs loss - Reverted play-services-ads-lite from version 24.3.0 to 24.0.0 as version 24.3.0 was an empty stub library

Build Process Improvements

  • Successfully resolved all dependency conflicts during the binderate step
  • Enabled successful processing of 600+ Maven artifacts
  • Generated and committed PublicAPI changes for updated libraries
  • Updated namespace verification file to reflect new package structure
  • Completed full library build to regenerate all PublicAPI.*.txt files

Generated PublicAPI Changes

The fix enables successful generation of API surface documentation for major version updates:

  • gRPC API 1.75.0: New Xamarin.Grpc.Attributes, CallCredentials, BinaryLog APIs
  • AndroidX Core: New notification side channel interfaces and Kotlin extensions
  • Google MediaPipe: Updated task-genai APIs
  • Protocol Buffers: Updated JavaLite APIs
  • Android.Gms.Ads: Restored 1,474+ API entries that were lost due to empty stub library

Major Version Updates Now Building Successfully

  • AndroidX Compose Libraries: 1.8.3 → 1.9.0
  • gRPC Libraries: 1.74.0 → 1.75.0
  • Kotlin Libraries: 2.2.0 → 2.2.10

Namespace Updates

The published-namespaces.txt file has been updated to reflect the current package structure, including the addition of new AndroidX.Core.Flagging namespace and restoration of all Android.Gms.Ads namespaces after reverting play-services-ads-lite to the working version.

This resolves the build failures and dependency resolution issues that were blocking the stable updates process.

Addressing #1261.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@Copilot Copilot AI changed the title [WIP] Stable Updates 20250822 Stable Updates 20250822 - Update Android Libraries to Latest Versions Aug 22, 2025
@Copilot Copilot AI requested a review from jonathanpeppers August 22, 2025 14:54
Copilot finished work on behalf of jonathanpeppers August 22, 2025 14:54
Copy link
Member

@jonathanpeppers jonathanpeppers left a comment

Choose a reason for hiding this comment

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

@copilot can you build the repo and commit any PublicApi.*.txt file changes?

Copy link
Contributor Author

Copilot AI commented Aug 22, 2025

@copilot can you build the repo and commit any PublicApi.*.txt file changes?

I'm attempting to build the repository to generate PublicAPI changes, but encountering dependency resolution issues during the binderate step (404 errors when fetching some Maven artifacts). The current configuration update included newer versions that may not be fully available yet.

I can see that many PublicAPI.Unshipped.txt files already contain API changes from previous builds, but the repository needs a successful build to update these files with any new changes from the latest version updates.

Would you like me to:

  1. Try a different approach to resolve the dependency issues
  2. Check if there's a way to work around the missing artifacts
  3. Or should this be built in the CI environment instead?

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • repo.gradle.org
    • Triggering command: /opt/hostedtoolcache/Java_Microsoft_jdk/21.0.2/x64/bin/java --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.xml/javax.xml.namespace=ALL-UNNAMED -Xmx1536m -Dfile.encoding=UTF-8 -Duser.country -Duser.language=en -Duser.variant -cp /home/REDACTED/.gradle/wrapper/dists/gradle-8.14.3-bin/cv11ve7ro1n3o1j4so8xd9n66/gradle-8.14.3/lib/gradle-daemon-main-8.14.3.jar -javaagent:/home/REDACTED/.gradle/wrapper/dists/gradle-8.14.3-bin/cv11ve7ro1n3o1j4so8xd9n66/gradle-8.14.3/lib/agents/gradle-instrumentation-agent-8.14.3.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 8.14.3 (dns block)
    • Triggering command: /opt/hostedtoolcache/Java_Microsoft_jdk/21.0.2/x64/bin/java --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.xml/javax.xml.namespace=ALL-UNNAMED -Xmx2048m -Dfile.encoding=UTF-8 -Duser.country -Duser.language=en -Duser.variant -cp /home/REDACTED/.gradle/wrapper/dists/gradle-8.14.3-bin/cv11ve7ro1n3o1j4so8xd9n66/gradle-8.14.3/lib/gradle-daemon-main-8.14.3.jar -javaagent:/home/REDACTED/.gradle/wrapper/dists/gradle-8.14.3-bin/cv11ve7ro1n3o1j4so8xd9n66/gradle-8.14.3/lib/agents/gradle-instrumentation-agent-8.14.3.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 8.14.3 (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@Copilot Copilot AI requested a review from jonathanpeppers August 22, 2025 15:44
Copilot finished work on behalf of jonathanpeppers August 22, 2025 15:44
@jonathanpeppers
Copy link
Member

@copilot is the problem related to one of your previous findings:

Fixed the dependency errors. The issue was caused by incorrect version numbers for two artifacts:
com.google.j2objc:j2objc-annotations was configured as "3.1.0" but should be "3.1"

- Fix com.google.j2objc:j2objc-annotations version from "3.1.0" to "3.1" (resolves 404 errors)
- Add missing androidx.compose.runtime:runtime-annotation dependencies for Compose 1.9.0
- Add missing androidx.savedstate:savedstate-compose dependency
- Successfully completed binderate step and partial build with PublicAPI updates

Co-authored-by: jonathanpeppers <[email protected]>
Copy link
Contributor Author

Copilot AI commented Aug 22, 2025

@copilot is the problem related to one of your previous findings:

...

Yes, exactly! The issue was the same dependency problem identified in PR #1255. I've fixed it along with related missing dependencies:

  • Fixed com.google.j2objc:j2objc-annotations version from "3.1.0" to "3.1"
  • Added missing Compose 1.9.0 annotation dependencies that were causing the binderate failures
  • Successfully completed binderate step and started building libraries
  • PublicAPI changes are being generated and committed

The dependency resolution issues have been resolved and the build process is now working correctly. Commit: 72d3e2c

- Generated PublicAPI tracking files for androidx.savedstate.savedstate-compose package
- Build process successfully generating bindings and API surface documentation
- Progress on major version updates continues successfully

Co-authored-by: jonathanpeppers <[email protected]>
@Copilot Copilot AI changed the title Stable Updates 20250822 - Update Android Libraries to Latest Versions Fix dependency resolution issues for Stable Updates 20250822 Aug 22, 2025
Copilot finished work on behalf of jonathanpeppers August 22, 2025 20:33
@sheiksyedm
Copy link
Contributor

@copilot An error occurred when executing task 'verify-namespace-file'.
please run:
dotnet cake utilities.cake -t=generate-namespace-file

Copy link
Contributor Author

Copilot AI commented Aug 25, 2025

@copilot An error occurred when executing task 'verify-namespace-file'.
please run:
dotnet cake utilities.cake -t=generate-namespace-file

I've successfully run the generate-namespace-file task and updated the published-namespaces.txt file. The namespace verification error has been resolved. The updated file includes new namespaces from the dependency updates and removes some outdated ones. Commit: f384d4e

@Copilot Copilot AI requested a review from sheiksyedm August 25, 2025 14:12
Copilot finished work on behalf of sheiksyedm August 25, 2025 14:12
@Copilot Copilot AI requested a review from jonathanpeppers August 25, 2025 22:18
Copilot finished work on behalf of jonathanpeppers August 25, 2025 22:18
@sheiksyedm
Copy link
Contributor

@jonathanpeppers I've confirmed that the .nupkg file for the Xamarin.AndroidX.Core, including its version and associated C# APIs, has been updated properly.

image image

@jonathanpeppers jonathanpeppers marked this pull request as ready for review August 26, 2025 13:25
@jonathanpeppers jonathanpeppers merged commit eb048f1 into main Aug 26, 2025
2 checks passed
@jonathanpeppers jonathanpeppers deleted the copilot/fix-1261 branch August 26, 2025 13:27
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.

3 participants