Skip to content

Conversation

@irfano
Copy link
Contributor

@irfano irfano commented Jan 14, 2025

Closes: #13299

Description

This fixes the crash occurring on take photo screen. This was introduced in the latest version with #13125 when we upgraded Dagger version from 2.50 to 2.53.1.

The cause should be this change from the version 2.51:

Fixed google/dagger#3197: Used the new @LazyClassKey Dagger feature to remove the keep rule for @hiltviewmodel class names. This allows obfuscation of @hiltviewmodel annotated ViewModel class names with R8. (google/dagger@0786d0a)

Steps to reproduce

  1. Launch app and lo g in.
  2. Go to product details.
  3. Add a new photo.
  4. Ensure it doesn't crash.

The tests that have been performed

Reproduced the crash on the release branch and tested the fix on the debug and release variants.

  • I have considered if this change warrants release notes and have added them to RELEASE-NOTES.txt if necessary. Use the "[Internal]" label for non-user-facing changes.

Reviewer (or Author, in the case of optional code reviews):

Please make sure these conditions are met before approving the PR, or request changes if the PR needs improvement:

  • The PR is small and has a clear, single focus, or a valid explanation is provided in the description. If needed, please request to split it into smaller PRs.
  • Ensure Adequate Unit Test Coverage: The changes are reasonably covered by unit tests or an explanation is provided in the PR description.
  • Manual Testing: The author listed all the tests they ran, including smoke tests when needed (e.g., for refactorings). The reviewer confirmed that the PR works as expected on big (tablet) and small (phone) in case of UI changes, and no regressions are added.

@irfano irfano added type: crash The worst kind of bug. dependency update labels Jan 14, 2025
@irfano irfano added this to the 21.4 ❄️ milestone Jan 14, 2025
@dangermattic
Copy link
Collaborator

dangermattic commented Jan 14, 2025

1 Warning
⚠️ This PR is assigned to the milestone 21.4 ❄️. The due date for this milestone has already passed.
Please assign it to a milestone with a later deadline or check whether the release for this milestone has already been finished.

Generated by 🚫 Danger

@irfano irfano changed the base branch from trunk to release/21.4 January 14, 2025 14:24
@wpmobilebot
Copy link
Collaborator

Project dependencies changes

The following changes in project dependencies were detected (configuration vanillaReleaseRuntimeClasspath):

list
Removed Dependencies
jakarta.inject:jakarta.inject-api:2.0.1
org.jspecify:jspecify:1.0.0

Upgraded Dependencies
com.google.dagger:dagger:2.51.1, (changed from 2.53.1)
com.google.dagger:dagger-android:2.50, (changed from 2.53.1)
com.google.dagger:dagger-android-support:2.50, (changed from 2.53.1)
com.google.dagger:dagger-lint-aar:2.50, (changed from 2.53.1)
com.google.dagger:hilt-android:2.50, (changed from 2.53.1)
com.google.dagger:hilt-core:2.50, (changed from 2.53.1)
tree
 +--- org.wordpress:fluxc:trunk-0264533ce612f74e1ae6fcbaefeb69b252163774
-|    \--- com.google.dagger:dagger:2.51.1 -> 2.53.1
-|         +--- jakarta.inject:jakarta.inject-api:2.0.1
-|         +--- javax.inject:javax.inject:1
-|         \--- org.jspecify:jspecify:1.0.0
+|    \--- com.google.dagger:dagger:2.51.1
+|         \--- javax.inject:javax.inject:1
 +--- org.wordpress.fluxc.plugins:woocommerce:trunk-0264533ce612f74e1ae6fcbaefeb69b252163774
-|    \--- com.google.dagger:dagger:2.51.1 -> 2.53.1 (*)
+|    \--- com.google.dagger:dagger:2.51.1 (*)
 +--- org.wordpress:login:1.19.0
-|    +--- com.google.dagger:dagger:2.47 -> 2.53.1 (*)
+|    +--- com.google.dagger:dagger:2.47 -> 2.51.1 (*)
-|    \--- com.google.dagger:dagger-android-support:2.47 -> 2.53.1
-|         +--- com.google.dagger:dagger:2.53.1 (*)
-|         +--- com.google.dagger:dagger-android:2.53.1
-|         |    +--- com.google.dagger:dagger:2.53.1 (*)
-|         |    +--- com.google.dagger:dagger-lint-aar:2.53.1
-|         |    +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*)
-|         |    \--- javax.inject:javax.inject:1
-|         +--- com.google.dagger:dagger-lint-aar:2.53.1
-|         +--- androidx.activity:activity:1.5.1 -> 1.8.1 (*)
-|         +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*)
-|         +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*)
-|         +--- androidx.fragment:fragment:1.5.1 -> 1.8.5 (*)
-|         +--- androidx.lifecycle:lifecycle-common:2.5.1 -> 2.8.7 (*)
-|         +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.8.7 (*)
-|         +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 -> 2.8.7 (*)
-|         \--- javax.inject:javax.inject:1
+|    \--- com.google.dagger:dagger-android-support:2.47 -> 2.50
+|         +--- com.google.dagger:dagger:2.50 -> 2.51.1 (*)
+|         +--- com.google.dagger:dagger-android:2.50
+|         |    +--- com.google.dagger:dagger:2.50 -> 2.51.1 (*)
+|         |    +--- com.google.dagger:dagger-lint-aar:2.50
+|         |    +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*)
+|         |    \--- javax.inject:javax.inject:1
+|         +--- com.google.dagger:dagger-lint-aar:2.50
+|         +--- androidx.activity:activity:1.5.1 -> 1.8.1 (*)
+|         +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*)
+|         +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*)
+|         +--- androidx.fragment:fragment:1.5.1 -> 1.8.5 (*)
+|         +--- androidx.lifecycle:lifecycle-common:2.5.1 -> 2.8.7 (*)
+|         +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.8.7 (*)
+|         +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 -> 2.8.7 (*)
+|         \--- javax.inject:javax.inject:1
 +--- project :libs:cardreader
 |    +--- com.stripe:stripeterminal-localmobile:3.7.1
-|    |    +--- com.google.dagger:dagger:2.51.1 -> 2.53.1 (*)
+|    |    +--- com.google.dagger:dagger:2.51.1 (*)
 |    |    \--- com.stripe:stripeterminal-internal-common:3.7.1
-|    |         \--- com.google.dagger:dagger:2.51.1 -> 2.53.1 (*)
+|    |         \--- com.google.dagger:dagger:2.51.1 (*)
 |    \--- com.stripe:stripeterminal-core:3.7.1
-|         \--- com.google.dagger:dagger:2.51.1 -> 2.53.1 (*)
+|         \--- com.google.dagger:dagger:2.51.1 (*)
-+--- com.google.dagger:hilt-android:2.53.1
-|    +--- com.google.dagger:dagger:2.53.1 (*)
-|    +--- com.google.dagger:dagger-lint-aar:2.53.1
-|    +--- com.google.dagger:hilt-core:2.53.1
-|    |    +--- com.google.dagger:dagger:2.53.1 (*)
-|    |    +--- com.google.code.findbugs:jsr305:3.0.2
-|    |    \--- javax.inject:javax.inject:1
-|    +--- com.google.code.findbugs:jsr305:3.0.2
-|    +--- androidx.activity:activity:1.5.1 -> 1.8.1 (*)
-|    +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*)
-|    +--- androidx.annotation:annotation-experimental:1.3.1 -> 1.4.1 (*)
-|    +--- androidx.fragment:fragment:1.5.1 -> 1.8.5 (*)
-|    +--- androidx.lifecycle:lifecycle-common:2.5.1 -> 2.8.7 (*)
-|    +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.8.7 (*)
-|    +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 -> 2.8.7 (*)
-|    +--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*)
-|    +--- javax.inject:javax.inject:1
-|    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*)
++--- com.google.dagger:hilt-android:2.50
+|    +--- com.google.dagger:dagger:2.50 -> 2.51.1 (*)
+|    +--- com.google.dagger:dagger-lint-aar:2.50
+|    +--- com.google.dagger:hilt-core:2.50
+|    |    +--- com.google.dagger:dagger:2.50 -> 2.51.1 (*)
+|    |    +--- com.google.code.findbugs:jsr305:3.0.2
+|    |    \--- javax.inject:javax.inject:1
+|    +--- com.google.code.findbugs:jsr305:3.0.2
+|    +--- androidx.activity:activity:1.5.1 -> 1.8.1 (*)
+|    +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*)
+|    +--- androidx.annotation:annotation-experimental:1.3.1 -> 1.4.1 (*)
+|    +--- androidx.fragment:fragment:1.5.1 -> 1.8.5 (*)
+|    +--- androidx.lifecycle:lifecycle-common:2.5.1 -> 2.8.7 (*)
+|    +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.8.7 (*)
+|    +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 -> 2.8.7 (*)
+|    +--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*)
+|    +--- javax.inject:javax.inject:1
+|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 -> 2.0.21 (*)
 +--- androidx.hilt:hilt-navigation-fragment:1.2.0
 |    \--- androidx.hilt:hilt-navigation:1.2.0
-|         \--- com.google.dagger:hilt-android:2.49 -> 2.53.1 (*)
+|         \--- com.google.dagger:hilt-android:2.49 -> 2.50 (*)
 +--- androidx.hilt:hilt-common:1.2.0
-|    \--- com.google.dagger:hilt-core:2.49 -> 2.53.1 (*)
+|    \--- com.google.dagger:hilt-core:2.49 -> 2.50 (*)
 +--- androidx.hilt:hilt-work:1.2.0
-|    \--- com.google.dagger:hilt-android:2.49 -> 2.53.1 (*)
+|    \--- com.google.dagger:hilt-android:2.49 -> 2.50 (*)
-+--- com.google.dagger:dagger-android-support:2.53.1 (*)
++--- com.google.dagger:dagger-android-support:2.50 (*)
 +--- com.zendesk:support:5.0.8
 |    +--- com.zendesk:support-providers:5.0.8
 |    |    +--- com.zendesk:core:4.0.6
-|    |    |    \--- com.google.dagger:dagger:2.40 -> 2.53.1 (*)
+|    |    |    \--- com.google.dagger:dagger:2.40 -> 2.51.1 (*)
 |    |    +--- com.zendesk:guide-providers:1.0.7
-|    |    |    \--- com.google.dagger:dagger:2.40 -> 2.53.1 (*)
+|    |    |    \--- com.google.dagger:dagger:2.40 -> 2.51.1 (*)
-|    |    \--- com.google.dagger:dagger:2.40 -> 2.53.1 (*)
+|    |    \--- com.google.dagger:dagger:2.40 -> 2.51.1 (*)
 |    +--- com.zendesk:guide:1.0.7
 |    |    +--- com.zendesk:messaging:5.2.3
-|    |    |    \--- com.google.dagger:dagger:2.40 -> 2.53.1 (*)
+|    |    |    \--- com.google.dagger:dagger:2.40 -> 2.51.1 (*)
-|    |    \--- com.google.dagger:dagger-android:2.40 -> 2.53.1 (*)
+|    |    \--- com.google.dagger:dagger-android:2.40 -> 2.50 (*)
-|    \--- com.google.dagger:dagger-android:2.40 -> 2.53.1 (*)
+|    \--- com.google.dagger:dagger-android:2.40 -> 2.50 (*)
 +--- org.wordpress:mediapicker:0.3.1
-|    +--- com.google.dagger:hilt-android:2.46.1 -> 2.53.1 (*)
+|    +--- com.google.dagger:hilt-android:2.46.1 -> 2.50 (*)
 |    \--- com.google.dagger:hilt-android-compiler:2.46.1
-|         +--- com.google.dagger:dagger:2.46.1 -> 2.53.1 (*)
+|         +--- com.google.dagger:dagger:2.46.1 -> 2.51.1 (*)
 |         \--- com.google.dagger:dagger-compiler:2.46.1
-|              +--- com.google.dagger:dagger:2.46.1 -> 2.53.1 (*)
+|              +--- com.google.dagger:dagger:2.46.1 -> 2.51.1 (*)
 |              +--- com.google.dagger:dagger-producers:2.46.1
-|              |    \--- com.google.dagger:dagger:2.46.1 -> 2.53.1 (*)
+|              |    \--- com.google.dagger:dagger:2.46.1 -> 2.51.1 (*)
 |              \--- com.google.dagger:dagger-spi:2.46.1
-|                   \--- com.google.dagger:dagger:2.46.1 -> 2.53.1 (*)
+|                   \--- com.google.dagger:dagger:2.46.1 -> 2.51.1 (*)
 \--- org.wordpress.mediapicker:source-wordpress:0.3.1
-     \--- com.google.dagger:hilt-android:2.46.1 -> 2.53.1 (*)
+     \--- com.google.dagger:hilt-android:2.46.1 -> 2.50 (*)

Build environment changes

The following changes in the build classpath were detected:

list
Upgraded Dependencies
com.google.dagger.hilt.android:com.google.dagger.hilt.android.gradle.plugin:2.50, (changed from 2.53.1)
com.google.dagger:hilt-android-gradle-plugin:2.50, (changed from 2.53.1)
org.jetbrains.kotlin:kotlin-stdlib:2.0.20, (changed from 2.0.21)
org.jetbrains.kotlin:kotlin-stdlib-common:2.0.20, (changed from 2.0.21)
tree
 +--- com.automattic.android.measure-builds:com.automattic.android.measure-builds.gradle.plugin:2.1.2
 |    \--- com.automattic.android:measure-builds:2.1.2
 |         +--- io.ktor:ktor-client-core:1.6.4
 |         |    \--- io.ktor:ktor-client-core-jvm:1.6.4
-|         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21
-|         |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21
-|         |         |         +--- org.jetbrains:annotations:13.0 -> 23.0.0
-|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.21 (c)
-|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c)
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c)
+|         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20
+|         |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20
+|         |         |         +--- org.jetbrains:annotations:13.0 -> 23.0.0
+|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.20 (c)
+|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c)
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c)
 |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1-native-mt -> 1.6.4
 |         |         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4
 |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.9.20
-|         |         |         |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 -> 2.0.21 (*)
+|         |         |         |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 -> 2.0.20 (*)
 |         |         |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20
-|         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 -> 2.0.21 (*)
+|         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 -> 2.0.20 (*)
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 2.0.21 (*)
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 2.0.20 (*)
 |         |         +--- io.ktor:ktor-http:1.6.4
 |         |         |    \--- io.ktor:ktor-http-jvm:1.6.4
-|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
-|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21 (*)
+|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20 (*)
 |         |         |         \--- io.ktor:ktor-utils:1.6.4
 |         |         |              \--- io.ktor:ktor-utils-jvm:1.6.4
-|         |         |                   +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|         |         |                   +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
-|         |         |                   +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21 (*)
+|         |         |                   +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20 (*)
 |         |         |                   \--- io.ktor:ktor-io:1.6.4
 |         |         |                        \--- io.ktor:ktor-io-jvm:1.6.4
-|         |         |                             +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21 (*)
+|         |         |                             +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20 (*)
-|         |         |                             \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|         |         |                             \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
 |         |         +--- io.ktor:ktor-http-cio:1.6.4
 |         |         |    \--- io.ktor:ktor-http-cio-jvm:1.6.4
-|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21 (*)
+|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20 (*)
-|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
 |         |         |         \--- io.ktor:ktor-network:1.6.4
 |         |         |              \--- io.ktor:ktor-network-jvm:1.6.4
-|         |         |                   +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21 (*)
+|         |         |                   +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20 (*)
-|         |         |                   \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|         |         |                   \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
 |         +--- io.ktor:ktor-client-cio:1.6.4
 |         |    \--- io.ktor:ktor-client-cio-jvm:1.6.4
-|         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21 (*)
+|         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20 (*)
 |         |         +--- io.ktor:ktor-network-tls:1.6.4
 |         |         |    \--- io.ktor:ktor-network-tls-jvm:1.6.4
-|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21 (*)
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20 (*)
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
 |         +--- io.ktor:ktor-client-logging:1.6.4
 |         |    \--- io.ktor:ktor-client-logging-jvm:1.6.4
-|         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20 (*)
 |         \--- io.ktor:ktor-client-serialization:1.6.4
 |              \--- io.ktor:ktor-client-serialization-jvm:1.6.4
-|                   +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21 (*)
+|                   +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20 (*)
 |                   +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.2 -> 1.6.3
 |                   |    \--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.3
-|                   |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.0.21 (*)
+|                   |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.0.20 (*)
-|                   |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 -> 2.0.21 (*)
+|                   |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 -> 2.0.20 (*)
 |                   |         \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3
 |                   |              \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.3
-|                   |                   +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.0.21 (*)
+|                   |                   +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.0.20 (*)
-|                   |                   \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 -> 2.0.21 (*)
+|                   |                   \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 -> 2.0.20 (*)
 |                   +--- io.ktor:ktor-client-json:1.6.4
 |                   |    \--- io.ktor:ktor-client-json-jvm:1.6.4
-|                   |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|                   |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
-|                   |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.21 (*)
+|                   |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.30 -> 2.0.20 (*)
-|                   \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.21 (*)
+|                   \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.30 -> 2.0.20 (*)
 +--- com.autonomousapps.dependency-analysis:com.autonomousapps.dependency-analysis.gradle.plugin:1.28.0
 |    \--- com.autonomousapps:dependency-analysis-gradle-plugin:1.28.0
 |         +--- org.jetbrains.kotlin:kotlin-bom:1.9.10
-|         |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.10 -> 2.0.21 (c)
+|         |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.10 -> 2.0.20 (c)
-|         |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10 -> 2.0.21 (c)
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10 -> 2.0.20 (c)
 |         \--- com.squareup.moshi:moshi-kotlin:1.14.0
 |              +--- com.squareup.moshi:moshi:1.14.0
 |              |    \--- com.squareup.okio:okio:2.10.0
-|              |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.20 -> 2.0.21 (*)
+|              |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.20 -> 2.0.20 (*)
-|              |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20 -> 2.0.21 (*)
+|              |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20 -> 2.0.20 (*)
 |              \--- org.jetbrains.kotlin:kotlin-reflect:1.7.0 -> 1.9.20
-|                   \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 -> 2.0.21 (*)
+|                   \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 -> 2.0.20 (*)
 +--- com.android.application:com.android.application.gradle.plugin:8.5.1
 |    \--- com.android.tools.build:gradle:8.5.1
 |         +--- androidx.databinding:databinding-compiler-common:8.5.1
 |         |    \--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.0.21 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.0.20 (*)
 |         \--- com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta10
-|              \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.0.21 (*)
+|              \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.0.20 (*)
-+--- com.google.dagger.hilt.android:com.google.dagger.hilt.android.gradle.plugin:2.53.1
-|    \--- com.google.dagger:hilt-android-gradle-plugin:2.53.1
-|         +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*)
-|         +--- org.ow2.asm:asm:9.6
-|         \--- com.squareup:javapoet:1.13.0
++--- com.google.dagger.hilt.android:com.google.dagger.hilt.android.gradle.plugin:2.50
+|    \--- com.google.dagger:hilt-android-gradle-plugin:2.50
+|         +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 -> 2.0.20 (*)
+|         +--- org.ow2.asm:asm:9.6
+|         \--- com.squareup:javapoet:1.13.0
 +--- androidx.navigation.safeargs.kotlin:androidx.navigation.safeargs.kotlin.gradle.plugin:2.7.7
 |    \--- androidx.navigation:navigation-safe-args-gradle-plugin:2.7.7
 |         \--- androidx.navigation:navigation-safe-args-generator:2.7.7
-|              \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.21 (*)
+|              \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*)
 \--- com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:2.0.21-1.0.27
      \--- com.google.devtools.ksp:symbol-processing-gradle-plugin:2.0.21-1.0.27
           +--- com.google.devtools.ksp:symbol-processing-api:2.0.21-1.0.27
-          |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 -> 2.0.21 (*)
+          |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*)
           \--- com.google.devtools.ksp:symbol-processing-common-deps:2.0.21-1.0.27
-               \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 -> 2.0.21 (*)
+               \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*)

@JorgeMucientes JorgeMucientes self-assigned this Jan 14, 2025
@wpmobilebot
Copy link
Collaborator

📲 You can test the changes from this Pull Request in WooCommerce-Wear Android by scanning the QR code below to install the corresponding build.
App Name WooCommerce-Wear Android
Platform⌚️ Wear OS
FlavorJalapeno
Build TypeDebug
Commitcd5c0be
Direct Downloadwoocommerce-wear-prototype-build-pr13305-cd5c0be.apk

@wpmobilebot
Copy link
Collaborator

📲 You can test the changes from this Pull Request in WooCommerce Android by scanning the QR code below to install the corresponding build.

App Name WooCommerce Android
Platform📱 Mobile
FlavorJalapeno
Build TypeDebug
Commitcd5c0be
Direct Downloadwoocommerce-prototype-build-pr13305-cd5c0be.apk

Copy link
Contributor

@JorgeMucientes JorgeMucientes left a comment

Choose a reason for hiding this comment

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

Nice catch @irfano
The change looks safe and the crash is fixed. :shipit:

PS: We should probably create a GH issue to fix this properly on trunk. Probably by avoiding R8 obfucating ViewModel code

@JorgeMucientes JorgeMucientes merged commit 4cc28d4 into release/21.4 Jan 14, 2025
19 of 21 checks passed
@JorgeMucientes JorgeMucientes deleted the fix/crash-with-dagger-upgrade branch January 14, 2025 14:46
@hichamboushaba
Copy link
Member

PS: We should probably create a GH issue to fix this properly on trunk. Probably by avoiding R8 obfucating ViewModel code

Good point @JorgeMucientes, but I think we should wait until the new beta is created (which I'll do tomorrow), because after it's created, we'll merge back the changes of this PR to trunk, which means we'll have to handle both the dependency update and adding the keep rule in the new trunk PR.

@JorgeMucientes
Copy link
Contributor

Sure @hichamboushaba ! No problem. My suggestion was only to create a GH issue to keep track of adding the rule to the R8 config file (and upgrade dagger version again). But no rush on doing it, is not urgent.

@hafizrahman
Copy link
Contributor

hafizrahman commented Jan 15, 2025

Thanks for the quick catch here, this was my mistake. I wondered why the related update information didn't look familiar to me. It turned out in the original PR, the copied release note is truncated. I only followed it instead of going to the release page and didn't realize there's missing items 🤦🏼
Screenshot 2025-01-15 at 15 37 15

I wonder if it's better going forward to not paste the release notes if truncated like that, and just link to the release page.

I also updated the smoke testing page P91TBi-bVe-p2 to include testing uploading media in all the possible ways.

@hichamboushaba
Copy link
Member

This PR was published in the last RC build.

@irfano
Copy link
Contributor Author

irfano commented Jan 15, 2025

@JorgeMucientes whether we open an issue or not, dependabot will automatically reopen a PR to upgrade the Dagger version, and the next person might miss the opened issue. I’ve added a comment next to the Dagger version (# Fix the crash on the media picker before upgrading this), so I believe this should be sufficient for the next person reviewing the dependabot PR.
Btw, I could reproduce this on trunk as well.

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

Labels

dependency update type: crash The worst kind of bug.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Hilt] Disable "keepnames" proguard rule

7 participants