Skip to content

Remove overrideLibrary for XR dependencies#2924

Open
alexvanyo wants to merge 231 commits intomainfrom
av/remove-override-library
Open

Remove overrideLibrary for XR dependencies#2924
alexvanyo wants to merge 231 commits intomainfrom
av/remove-override-library

Conversation

@alexvanyo
Copy link
Owner

Fixes #2592

@alexvanyo alexvanyo enabled auto-merge (rebase) October 7, 2025 01:52
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @alexvanyo, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This PR removes tools:overrideLibrary declarations for XR dependencies from 8 AndroidManifest.xml files, addressing issue #2592. The change simplifies the manifest files by removing seemingly unnecessary or problematic overrides related to androidx.xr and com.google.ar.imp.apibindings libraries.

Highlights

  • Intent: This pull request aims to remove the tools:overrideLibrary declarations for XR dependencies from several AndroidManifest.xml files. This change is intended to fix issue Remove overrideLibrary for XR dependencies #2592, suggesting that these overrides were either no longer necessary or were causing build/runtime problems.
  • Changes: The PR modifies 8 AndroidManifest.xml files across different modules. In each file, the <uses-sdk tools:overrideLibrary="..." /> tag, which explicitly listed various androidx.xr.* and com.google.ar.imp.apibindings dependencies, has been removed. For app/src/androidMain/AndroidManifest.xml, only the uses-sdk tag was removed. For the other seven AndroidManifest.xml files (e.g., ui-app-screenshot-tests, ui-app, ui-cells, etc.), the entire content of the <manifest> tag, including the uses-sdk declaration, was replaced with a simplified <manifest /> tag.
  • Reviewer Activity: No specific reviewer activity has been recorded or provided in the context for this pull request.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request removes the tools:overrideLibrary attribute for XR dependencies across several AndroidManifest.xml files. The changes are correct and represent a good cleanup. For the library modules where this change results in an empty manifest file, I've suggested deleting the file entirely to simplify the project structure, as the Android Gradle Plugin can generate a default one.

<manifest xmlns:tools="http://schemas.android.com/tools">
<uses-sdk tools:overrideLibrary="androidx.xr.compose,androidx.xr.scenecore,com.google.ar.imp.apibindings" />
</manifest>
<manifest />
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Since this AndroidManifest.xml file is now effectively empty, you could consider deleting it. The Android Gradle Plugin will generate a default manifest for a library module if one isn't present. This would simplify the project by removing unnecessary files.

This suggestion applies to the following files, which have all become empty manifests in this PR:

  • ui-app-screenshot-tests/src/androidMain/AndroidManifest.xml
  • ui-app/src/androidMain/AndroidManifest.xml
  • ui-cells-screenshot-tests/src/androidMain/AndroidManifest.xml
  • ui-cells/src/androidMain/AndroidManifest.xml
  • ui-mobile/src/androidMain/AndroidManifest.xml
  • ui-settings-screenshot-tests/src/androidMain/AndroidManifest.xml
  • ui-settings/src/androidMain/AndroidManifest.xml

@codecov
Copy link

codecov bot commented Oct 7, 2025

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
3330 1 3329 0
View the full list of 1 ❄️ flaky test(s)
com.alexvanyo.composelife.model.TemporalGameOfLifeStateComposableTests::multiple_evolutions_is_correct

Flake rate in main: 28.06% (Passed 446 times, Failed 174 times)

Stack Traces | 0.741s run time
java.lang.AssertionError: Expected value to be false.
at org.junit.Assert.fail(Assert.java:89)
at kotlin.test.junit.JUnitAsserter.fail(JUnitSupport.kt:56)
at kotlin.test.Asserter$-CC.$default$assertTrue(Assertions.kt:766)
at kotlin.test.junit.JUnitAsserter.assertTrue(JUnitSupport.kt:30)
at kotlin.test.Asserter$-CC.$default$assertTrue(Assertions.kt:776)
at kotlin.test.junit.JUnitAsserter.assertTrue(JUnitSupport.kt:30)
at kotlin.test.AssertionsKt__AssertionsKt.assertFalse(Assertions.kt:58)
at kotlin.test.AssertionsKt.assertFalse(Unknown Source:1)
at kotlin.test.AssertionsKt__AssertionsKt.assertFalse$default(Assertions.kt:56)
at kotlin.test.AssertionsKt.assertFalse$default(Unknown Source:1)
at com.alexvanyo.composelife.model.TemporalGameOfLifeStateComposableTests$multiple_evolutions_is_correct$1.invokeSuspend(TemporalGameOfLifeStateComposableTests.kt:518)
at com.alexvanyo.composelife.model.TemporalGameOfLifeStateComposableTests$multiple_evolutions_is_correct$1.invoke(Unknown Source:8)
at com.alexvanyo.composelife.model.TemporalGameOfLifeStateComposableTests$multiple_evolutions_is_correct$1.invoke(Unknown Source:4)
at androidx.compose.ui.test.v2.ComposeUiTest_androidKt$runAndroidComposeUiTest$1.invokeSuspend(ComposeUiTest.android.kt:199)
at androidx.compose.ui.test.v2.ComposeUiTest_androidKt$runAndroidComposeUiTest$1.invoke(Unknown Source:12)
at androidx.compose.ui.test.v2.ComposeUiTest_androidKt$runAndroidComposeUiTest$1.invoke(Unknown Source:10)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1$1.invokeSuspend(ComposeUiTest.android.kt:676)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1$1.invoke(Unknown Source:12)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1$1.invoke(Unknown Source:7)
at androidx.compose.ui.test.EspressoLink.withStrategy(EspressoLink.android.kt:69)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1.invokeSuspend(ComposeUiTest.android.kt:673)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1.invoke(Unknown Source:12)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1.invoke(Unknown Source:10)
at kotlinx.coroutines.test.TestBuildersKt__TestBuildersKt$runTest$2$1$1.invokeSuspend(TestBuilders.kt:317)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.test.TestDispatcher.processEvent$kotlinx_coroutines_test(TestDispatcher.kt:24)
at kotlinx.coroutines.test.TestCoroutineScheduler.tryRunNextTaskUnless$kotlinx_coroutines_test(TestCoroutineScheduler.kt:99)
at kotlinx.coroutines.test.TestBuildersKt__TestBuildersKt$runTest$2$1$workRunner$1.invokeSuspend(TestBuilders.kt:326)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
at kotlinx.coroutines.test.TestBuildersJvmKt.createTestResult(TestBuildersJvm.kt:10)
at kotlinx.coroutines.test.TestBuildersKt__TestBuildersKt.runTest-8Mi8wO0(TestBuilders.kt:309)
at kotlinx.coroutines.test.TestBuildersKt.runTest-8Mi8wO0(Unknown Source:1)
at kotlinx.coroutines.test.TestBuildersKt__TestBuildersKt.runTest-8Mi8wO0(TestBuilders.kt:167)
at kotlinx.coroutines.test.TestBuildersKt.runTest-8Mi8wO0(Unknown Source:1)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.runTest(ComposeUiTest.android.kt:652)
at androidx.compose.ui.test.v2.ComposeUiTest_androidKt.runAndroidComposeUiTest-zkXUZaI(ComposeUiTest.android.kt:194)
at androidx.compose.ui.test.v2.ComposeUiTest_androidKt.runComposeUiTest-exY8QGI(ComposeUiTest.android.kt:83)
at com.alexvanyo.composelife.test.RunComposeUiTest_androidKt.runComposeUiTest-exY8QGI(RunComposeUiTest.android.kt:32)
at com.alexvanyo.composelife.test.RunComposeUiTest_androidKt.runComposeUiTest-exY8QGI$default(RunComposeUiTest.android.kt:27)
at com.alexvanyo.composelife.model.TemporalGameOfLifeStateComposableTests.multiple_evolutions_is_correct(TemporalGameOfLifeStateComposableTests.kt:413)

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

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.

Remove overrideLibrary for XR dependencies

1 participant