Skip to content
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

Collision between new core 1.5.0 versions and fragment-testing library transitively requiring 1.4.0 #1587

Closed
mikehardy opened this issue Nov 11, 2022 · 7 comments

Comments

@mikehardy
Copy link

Description

androidx.fragment:fragment-testing requires androidx.test:core 1.4.0 - perhaps an uncoordinated release process between the dependent projects?

Steps to Reproduce

Have a project with fragments you want to test
Include androidx.fragment:fragment-testing dependency at their current stable version (1.5.4)
Include the new releases here (androidx.test:core:1.5.0)

Expected Results

Things work

Actual Results

If you run the dependencies target on your project you'll see that because fragment-testing needs to be on "debugImplementation" classpath (a quirk of that library https://developer.android.com/guide/fragments/test#declare-dependencies) you end up with a gradle dependency constraint failure where debugRuntime classpaths are on androidx.test:core 1.4.0 (from fragment-testing) but the test classpaths want 1.5.0

AndroidX Test and Android OS Versions

1.5.0 here (and espresso 3.5.0)

Link to a public git repo demonstrating the problem:

I'm working around it with this general strategy:

https://stackoverflow.com/a/56821518/9910298

    // debugImplementation required vs testImplementation: https://issuetracker.google.com/issues/128612536
    debugImplementation("androidx.fragment:fragment-testing:$fragments_version") {
        exclude group: 'androidx.test', module: 'core'
    }

I'm opening a PR with that change in a public repo and I'll update this after it is open (I want the link to this issue in the comment in the change I PR)

mikehardy added a commit to ankidroid/Anki-Android that referenced this issue Nov 11, 2022
…ve deps

fragment-testing wants to pull in androidx.test:core at versions different than
the ones we want to control, and it causes gradle dep resolution conflicts

See android/android-test#1587
mikehardy added a commit to ankidroid/Anki-Android that referenced this issue Nov 11, 2022
…ve deps

fragment-testing wants to pull in androidx.test:core at versions different than
the ones we want to control, and it causes gradle dep resolution conflicts

See android/android-test#1587
@mikehardy
Copy link
Author

ankidroid/Anki-Android#12817 from our dependency tracking branch shows the commit history where I handled this, for reference

mikehardy added a commit to ankidroid/Anki-Android that referenced this issue Nov 11, 2022
* Bump jackson-databind from 2.13.4.2 to 2.14.0

Bumps [jackson-databind](https://github.com/FasterXML/jackson) from 2.13.4.2 to 2.14.0.
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump kotlin_version from 1.7.20 to 1.7.21

Bumps `kotlin_version` from 1.7.20 to 1.7.21.

Updates `kotlin-gradle-plugin` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-stdlib` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-reflect` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test-junit5` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test-junit` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-stdlib
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-reflect
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test-junit5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test-junit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): parameterize androidx test/espresso/test-junit versions

These need to move as a block, and they don't offer a bill of materials,
this is the next best thing

* test(deps): exclude androidx.test:core from fragment-testing transitive deps

fragment-testing wants to pull in androidx.test:core at versions different than
the ones we want to control, and it causes gradle dep resolution conflicts

See android/android-test#1587

* build(deps): bump androidx test/espresso/test-junit deps

* Bump leakcanary-android from 2.9.1 to 2.10

Bumps [leakcanary-android](https://github.com/square/leakcanary) from 2.9.1 to 2.10.
- [Release notes](https://github.com/square/leakcanary/releases)
- [Changelog](https://github.com/square/leakcanary/blob/main/docs/changelog.md)
- [Commits](square/leakcanary@v2.9.1...v2.10)

---
updated-dependencies:
- dependency-name: com.squareup.leakcanary:leakcanary-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@brettchabot
Copy link
Collaborator

Similar to #1585 (comment) I think either the constraint that fragments-testing needs to be in debugImplementation needs to be removed, or gradle should just build a single self instrumented apk for tests. The latter would be a huge change so the former is probably more tractable.

Looks like the former issue is tracked here issuetracker.google.com/128612536. I'm going to close this bug in favor of tracking there.

@mikehardy
Copy link
Author

Reasonable, but maybe a cross-pollinating nudge to the fragment team would be nice, such that they issue a release with a transitive dep on androidx.testing:core:1.5.0 perhaps ?

@mikehardy
Copy link
Author

(especially given that holding our breaths on resolution of the now-2.5-year-old https://issuetracker.google.com/128612536 seems like waiting in vain...)

@mikehardy
Copy link
Author

With apologies as I understand this generates another notification: but I was too hasty in my last comment - I've been personally tracking that issue on issuetracker for a long time and had lost hope, I assumed it was dead since last state was wontfix. I see you've reopened and proposed a real path forward. I have hope again! Sincere thanks.

@brettchabot
Copy link
Collaborator

See https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:fragment/fragment-testing/build.gradle and https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:gradle/libs.versions.toml;bpv=1. The AOSP androidx repo has already been globally updated to androidx.test:core:1.5.0, so fragment-testing should pick up this new version on their next release.

criticalAY added a commit to criticalAY/Anki-Android that referenced this issue Nov 11, 2022
Dependency updates 20221111 (ankidroid#12817)

* Bump jackson-databind from 2.13.4.2 to 2.14.0

Bumps [jackson-databind](https://github.com/FasterXML/jackson) from 2.13.4.2 to 2.14.0.
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump kotlin_version from 1.7.20 to 1.7.21

Bumps `kotlin_version` from 1.7.20 to 1.7.21.

Updates `kotlin-gradle-plugin` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-stdlib` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-reflect` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test-junit5` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test-junit` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-stdlib
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-reflect
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test-junit5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test-junit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): parameterize androidx test/espresso/test-junit versions

These need to move as a block, and they don't offer a bill of materials,
this is the next best thing

* test(deps): exclude androidx.test:core from fragment-testing transitive deps

fragment-testing wants to pull in androidx.test:core at versions different than
the ones we want to control, and it causes gradle dep resolution conflicts

See android/android-test#1587

* build(deps): bump androidx test/espresso/test-junit deps

* Bump leakcanary-android from 2.9.1 to 2.10

Bumps [leakcanary-android](https://github.com/square/leakcanary) from 2.9.1 to 2.10.
- [Release notes](https://github.com/square/leakcanary/releases)
- [Changelog](https://github.com/square/leakcanary/blob/main/docs/changelog.md)
- [Commits](square/leakcanary@v2.9.1...v2.10)

---
updated-dependencies:
- dependency-name: com.squareup.leakcanary:leakcanary-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
criticalAY pushed a commit to criticalAY/Anki-Android that referenced this issue Nov 21, 2022
* Bump jackson-databind from 2.13.4.2 to 2.14.0

Bumps [jackson-databind](https://github.com/FasterXML/jackson) from 2.13.4.2 to 2.14.0.
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump kotlin_version from 1.7.20 to 1.7.21

Bumps `kotlin_version` from 1.7.20 to 1.7.21.

Updates `kotlin-gradle-plugin` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-stdlib` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-reflect` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test-junit5` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test-junit` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-stdlib
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-reflect
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test-junit5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test-junit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): parameterize androidx test/espresso/test-junit versions

These need to move as a block, and they don't offer a bill of materials,
this is the next best thing

* test(deps): exclude androidx.test:core from fragment-testing transitive deps

fragment-testing wants to pull in androidx.test:core at versions different than
the ones we want to control, and it causes gradle dep resolution conflicts

See android/android-test#1587

* build(deps): bump androidx test/espresso/test-junit deps

* Bump leakcanary-android from 2.9.1 to 2.10

Bumps [leakcanary-android](https://github.com/square/leakcanary) from 2.9.1 to 2.10.
- [Release notes](https://github.com/square/leakcanary/releases)
- [Changelog](https://github.com/square/leakcanary/blob/main/docs/changelog.md)
- [Commits](square/leakcanary@v2.9.1...v2.10)

---
updated-dependencies:
- dependency-name: com.squareup.leakcanary:leakcanary-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@brettchabot
Copy link
Collaborator

See update here https://issuetracker.google.com/issues/128612536#comment22

KendallPark pushed a commit to KendallPark/Anki-Android that referenced this issue May 30, 2023
* Bump jackson-databind from 2.13.4.2 to 2.14.0

Bumps [jackson-databind](https://github.com/FasterXML/jackson) from 2.13.4.2 to 2.14.0.
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump kotlin_version from 1.7.20 to 1.7.21

Bumps `kotlin_version` from 1.7.20 to 1.7.21.

Updates `kotlin-gradle-plugin` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-stdlib` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-reflect` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test-junit5` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

Updates `kotlin-test-junit` from 1.7.20 to 1.7.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v1.7.20...v1.7.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-stdlib
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-reflect
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test-junit5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlin:kotlin-test-junit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): parameterize androidx test/espresso/test-junit versions

These need to move as a block, and they don't offer a bill of materials,
this is the next best thing

* test(deps): exclude androidx.test:core from fragment-testing transitive deps

fragment-testing wants to pull in androidx.test:core at versions different than
the ones we want to control, and it causes gradle dep resolution conflicts

See android/android-test#1587

* build(deps): bump androidx test/espresso/test-junit deps

* Bump leakcanary-android from 2.9.1 to 2.10

Bumps [leakcanary-android](https://github.com/square/leakcanary) from 2.9.1 to 2.10.
- [Release notes](https://github.com/square/leakcanary/releases)
- [Changelog](https://github.com/square/leakcanary/blob/main/docs/changelog.md)
- [Commits](square/leakcanary@v2.9.1...v2.10)

---
updated-dependencies:
- dependency-name: com.squareup.leakcanary:leakcanary-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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

No branches or pull requests

2 participants