Skip to content

[Dependency Updates] Update glideVersion to 4.15.1#18557

Merged
ParaskP7 merged 6 commits intotrunkfrom
deps/update-glide-to-4.15.1
Jun 20, 2023
Merged

[Dependency Updates] Update glideVersion to 4.15.1#18557
ParaskP7 merged 6 commits intotrunkfrom
deps/update-glide-to-4.15.1

Conversation

@ParaskP7
Copy link
Copy Markdown
Contributor

Parent #17568

This PR updates glideVersion to 4.15.1.

PS: Since this library was anyway pointing to 4.12.0 (it seems for some time now), the below commits was for documentation purposes only and weren't causing any actual changes whatsoever:


PS: @irfano I added you as the main reviewer, randomly so, since I just wanted someone from the WordPress team to be aware of and sign-off on that change for WPAndroid. I also added the @wordpress-mobile/apps-infrastructure team, but this in done only for monitoring purposes, as such, I am not expecting any active review from that team. Thus, feel free to merge this PR if you deem so.


Dependency Refactor List:

  1. Remove glide volley in favor of glide version for both artifacts

To test:

  1. See the dependency tree diff result and verify correctness.
  2. Thoroughly smoke test both, the WordPress and Jetpack apps, and see if everything is working as expected.
  3. In addition to the above smoke test, you can expand the below and follow the inner and more explicitly test steps within, which is mainly related to the fixes (see above) and transitive updates on external and internal libraries (see diff):
1a. Post Editing Flow [libs:editor]

ℹ️ This test applies to both, the WordPress and Jetpack apps.
❗️ This test makes sure that the Post Editing flow, which comes from the libs:editor
module is also working as expected and that any transitive dependency changes aren't affecting
any Material related components.

  • Add a new blog post.
  • Add as many blocks as possible, along with any combination of those (like the paragraph, heading,
    image, video, separator, quote, gallery, columns, rows blocks).
  • Verify that the Post Editing screen, along with all the blocks you added, are shown and
    that everything is functioning as expected.
  • Publish the post and verify that it is displayed as expected both, on the mobile and web.
1b. Story Flow [com.automattic:stories]

ℹ️ This test applies to the Jetpack app.
❗️ This test makes sure that the Story flow, which comes from the com.automattic:stories
library is also working as expected and that any transitive dependency changes aren't affecting
any Constraint Layout related screens.

  • Create a new story post.
  • Add a couple of images to that story.
  • Add a some text on top of any image you uploaded.
  • Verify that everything is functioning as expected and that you can publish the story.
  • Publish the story and make sure that the story has been published as expected.
2a. Site Page Layout [ModalLayoutPickerFragment.kt + LayoutViewHolder.kt + ImageManager.kt]

ℹ️ This test applies to the Jetpack app.

  • Add a new site page.
  • Verify the Choose a layout screen is shown and functioning as expected,
    along with it displaying the layout thumbnails correctly.
2b. Site Creation Layout [HomePagePickerFragment.kt + LayoutViewHolder.kt + ImageManager.kt]

ℹ️ This test applies to the Jetpack app.

  • Go to Site Picker -> Click the + button -> Chose Create WordPress.com site.
  • Verify the What's your website about? screen is shown and functioning as expected, along with
    displaying the topics thumbnails correctly.
  • Chose a topic (eg. Lifestyle).
  • Verify the Choose a theme screen is shown and functioning as expected,
    along with it displaying the theme thumbnails correctly.
3. Blog Post Layout [EditPostActivity.kt + AztecEditorFragment.kt + AztecImageLoader.kt]

ℹ️ This test applies to both, the WordPress and Jetpack apps.
❗️ In order to be able to switch off the Block Editor option, the testing site must be on a
business plan, or on a plan that still supports the use of the Classic Editor option.

  • Go to My Site tab -> MENU sub-tab.
  • Find the Manage section at the bottom and click on its Site Settings option.
  • Find the Editor section in the middle and switch off the Use Block Editor option. This will
    make sure that any new post will be created using the Aztec classic editor.
  • Add a new blog post.
  • Add a new image.
  • Publish the post.
  • Verify that opening to edit the post again, everything functioning as expected,
    along with it displaying the image thumbnail correctly.
4. Stats Widget Layout [ViewsWidgetUpdater.kt + WidgetUtils.kt]

ℹ️ This test applies to the Jetpack app.

  • Add a Jetpack related Views this week or any other such widget to the home screen.
  • From the widget's settings, select your Site, then Color and click the ADD WIDGET button.
  • Expand the widget to take as much of the horizontal and vertical space as possible.
  • Verify that the widget is shown and functioning as expected,
    along with it displaying the site thumbnail correctly.
5a. Comment Detail Screen [CommentDetailFragment.kt + CommentUtils.kt + WPCustomImageGetter.kt + WPRemoteResourceViewTarget.kt]

ℹ️ This test applies to both, the Jetpack and WordPress apps.
❓️ Not sure how to best and quickly test this, let me know if you have an idea.

  • Go to My Site tab -> MENU sub-tab.
  • Find the Content section at the top and click on its Comments option
    to open the Comments screen.
  • Find a comment (❓️ with an image ❓️) from the list of comments and click on it.
  • Verify that the Comment Detail screen is shown and functioning as expected,
    along with it displaying the image thumbnail correctly.
5b. Activity Log Detail Screen [ActivityLogDetailFragment.kt + NotificationsUtils.kt + WPCustomImageGetter.kt + WPRemoteResourceViewTarget.kt]

ℹ️ This test applies to both, the Jetpack and WordPress apps.
❓️ Not sure how to best and quickly test this, let me know if you have an idea.

  • Go to My Site tab -> MENU sub-tab.
  • Find the Manage section in the middle and click on its Activity Log option.
  • Find an event (❓️ with an image ❓️) from the list of events and click on it.
  • Verify that the Activity Log Detail screen is shown and functioning as expected,
    along with it displaying the image thumbnail correctly.
6. JP/WP Screenshot Testing [JPScreenshotTest.java + WPScreenshotTest.java + WPSupportUtils.java + PlaceholderComparison.java]

ℹ️ This test applies to both, the Jetpack and WordPress apps.
❗️ Not sure if it is worth it to test this, let me know if you have any thoughts on that.
❓️ Not sure how to best and quickly test this, let me know if you have an idea.


Regression Notes

  1. Potential unintended areas of impact

    • Potential breakage or misbehaviour of screens and image loading related components as Glide is a library that is being used across many screens, especially screens that utilize any image loading functionality.
    • Some of the transitive dependencies added might be causing some kind of misbehaviour.
  2. What I did to test those areas of impact (or what existing automated tests I relied on)

    • See To test section.
  3. What automated tests I added (or what prevented me from doing so)

    • N/A

PR submission checklist:

  • I have completed the Regression Notes.
  • I have considered adding accessibility improvements for my changes.
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

UI Changes testing checklist:

  • Portrait and landscape orientations.
  • Light and dark modes.
  • Fonts: Larger, smaller and bold text.
  • High contrast.
  • Talkback.
  • Languages with large words or with letters/accents not frequently used in English.
  • Right-to-left languages. (Even if translation isn’t complete, formatting should still respect the right-to-left layout)
  • Large and small screen sizes. (Tablet and smaller phones)
  • Multi-tasking: Split screen and Pop-up view. (Android 10 or higher)

ParaskP7 added 6 commits May 31, 2023 14:57
Release Notes: https://github.com/bumptech/glide/releases/tag/v4.10.0

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

Glide v4 Volley (Docs): https://bumptech.github.io/glide/int/volley.html

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

This change effectively updates Glide's 'volley-integration' from
'4.6.1@aar' to '4.10.0'.

FYI: This change also drops the '@aar' suffix requirement, as the per
the 'Glide v4 Volley' documentation.

PS: The only difference between having the '@aar' suffix and not having
it, is the fact that not having it also bring in transitive
dependencies related to that 'volley-integration' dependency.
@ParaskP7 ParaskP7 added this to the Future milestone May 31, 2023
@ParaskP7 ParaskP7 requested review from a team and irfano May 31, 2023 13:23
@ParaskP7 ParaskP7 self-assigned this May 31, 2023
@wpmobilebot
Copy link
Copy Markdown
Contributor

Found 1 violations:

The PR caused the following dependency changes:

 +--- project :libs:editor
 |    \--- org.wordpress-mobile.gutenberg-mobile:react-native-gutenberg-bridge:v1.96.0
 |         +--- org.wordpress-mobile.react-native-libraries.v1:react-native-fast-image:8.5.11
-|         |    +--- com.github.bumptech.glide:glide:4.12.0
-|         |    |    +--- com.github.bumptech.glide:gifdecoder:4.12.0
-|         |    |    |    \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
-|         |    |    +--- com.github.bumptech.glide:disklrucache:4.12.0
-|         |    |    +--- com.github.bumptech.glide:annotations:4.12.0
-|         |    |    +--- androidx.fragment:fragment:1.0.0 -> 1.5.7 (*)
-|         |    |    +--- androidx.vectordrawable:vectordrawable-animated:1.0.0 -> 1.1.0 (*)
-|         |    |    \--- androidx.exifinterface:exifinterface:1.2.0 -> 1.3.6 (*)
+|         |    +--- com.github.bumptech.glide:glide:4.12.0 -> 4.15.1
+|         |    |    +--- com.github.bumptech.glide:gifdecoder:4.15.1
+|         |    |    |    \--- androidx.annotation:annotation:1.3.0 -> 1.6.0 (*)
+|         |    |    +--- com.github.bumptech.glide:disklrucache:4.15.1
+|         |    |    +--- com.github.bumptech.glide:annotations:4.15.1
+|         |    |    +--- androidx.fragment:fragment:1.3.6 -> 1.5.7 (*)
+|         |    |    +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*)
+|         |    |    +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.6 (*)
+|         |    |    \--- androidx.tracing:tracing:1.0.0 (*)
 |         |    \--- com.github.bumptech.glide:okhttp3-integration:4.12.0
-|         |         \--- com.github.bumptech.glide:glide:4.12.0 (*)
+|         |         \--- com.github.bumptech.glide:glide:4.12.0 -> 4.15.1 (*)
 |         \--- org.wordpress-mobile.gutenberg-mobile:react-native-aztec:v1.96.0
 |              \--- org.wordpress.aztec:glide-loader:v1.6.3
-|                   \--- com.github.bumptech.glide:glide:4.10.0 -> 4.12.0 (*)
+|                   \--- com.github.bumptech.glide:glide:4.10.0 -> 4.15.1 (*)
 +--- com.automattic:stories:2.1.0
-|    +--- com.github.bumptech.glide:glide:4.10.0 -> 4.12.0 (*)
+|    +--- com.github.bumptech.glide:glide:4.10.0 -> 4.15.1 (*)
 |    +--- jp.wasabeef:glide-transformations:4.3.0
-|    |    \--- com.github.bumptech.glide:glide:4.11.0 -> 4.12.0 (*)
+|    |    \--- com.github.bumptech.glide:glide:4.11.0 -> 4.15.1 (*)
 |    \--- com.automattic.stories:photoeditor:2.1.0
-|         +--- com.github.bumptech.glide:glide:4.10.0 -> 4.12.0 (*)
+|         +--- com.github.bumptech.glide:glide:4.10.0 -> 4.15.1 (*)
 |         \--- com.automattic.stories:mp4compose:2.1.0
-|              \--- com.github.bumptech.glide:glide:4.10.0 -> 4.12.0 (*)
+|              \--- com.github.bumptech.glide:glide:4.10.0 -> 4.15.1 (*)
-+--- com.github.bumptech.glide:glide:4.10.0 -> 4.12.0 (*)
++--- com.github.bumptech.glide:glide:4.15.1 (*)
-\--- com.github.bumptech.glide:volley-integration:4.6.1
+\--- com.github.bumptech.glide:volley-integration:4.15.1
+     +--- com.github.bumptech.glide:glide:4.15.1 (*)
+     +--- com.android.volley:volley:1.2.0 -> 1.2.1
+     \--- androidx.annotation:annotation:1.3.0 -> 1.6.0 (*)

Please review and act accordingly

@wpmobilebot
Copy link
Copy Markdown
Contributor

WordPress📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
App NameWordPress WordPress
FlavorJalapeno
Build TypeDebug
Versionpr18557-0e8c74c
Commit0e8c74c
Direct Downloadwordpress-prototype-build-pr18557-0e8c74c.apk
Note: Google Login is not supported on these builds.

@wpmobilebot
Copy link
Copy Markdown
Contributor

Jetpack📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
App NameJetpack Jetpack
FlavorJalapeno
Build TypeDebug
Versionpr18557-0e8c74c
Commit0e8c74c
Direct Downloadjetpack-prototype-build-pr18557-0e8c74c.apk
Note: Google Login is not supported on these builds.

@irfano irfano self-assigned this Jun 12, 2023
Copy link
Copy Markdown
Member

@irfano irfano left a comment

Choose a reason for hiding this comment

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

👏🏻 Great job on comprehensive testing instructions. I couldn't find any changes in the Glide changelogs that could break the app.


5b. Activity Log Detail Screen [ActivityLogDetailFragment.kt + NotificationsUtils.kt + WPCustomImageGetter.kt + WPRemoteResourceViewTarget.kt]

❓ I'm sharing the activity log detail screen that contains an image. But this screen shows the image as a link and doesn't use WPRemoteResourceViewTarget. I couldn't find a case that ActivityLogDetailFragment uses Glide. ActivityLogDetailFragment uses NotificationsUtilsWrapper, but it accesses only a function that is not related to Glide. So, is 5b related to Glide?


JP/WP Screenshot Testing [JPScreenshotTest.java + WPScreenshotTest.java + WPSupportUtils.java + PlaceholderComparison.java]

❓ Can't we say if CI tests pass, WPScreenshotTest and JPScreenshotTest still work fine?

@irfano irfano removed their assignment Jun 14, 2023
@ParaskP7
Copy link
Copy Markdown
Contributor Author

👋 @irfano !

I couldn't find any changes in the Glide changelogs that could break the app.

Awesome, thank you for reviewing and testing this, you rock! ❤️ 🙇 🚀

❓ I'm sharing the activity log detail screen that contains an image. But this screen shows the image as a link and doesn't use WPRemoteResourceViewTarget. I couldn't find a case that ActivityLogDetailFragment uses Glide. ActivityLogDetailFragment uses NotificationsUtilsWrapper, but it accesses only a function that is not related to Glide. So, is 5b related to Glide?

To my understanding this function is related to Glide, and that is, due to it using this addImageSpansForBlockMedia(...) function, which in turn, is using this WPCustomImageGetter class, which is using the WPRemoteResourceViewTarget class, and that in the end used Glide, thus me adding it to the testing list, just in case.

Am I missing something here Irfan? 🤔 PS: I might surely do... 🤔

FYI: The reason for me adding these comprehensive test instruction is mainly twofold, on the one hand, just for us to be sure that this dependency, which is very outdated, will not cause any regression after being merged, and on the other hand, so that I can then use those testing instruction as the baseline for the test instructions documentation per dependency update work that I hope to deliver at some point in the future (see pcdRpT-2Hp-p2).

❓ Can't we say if CI tests pass, WPScreenshotTest and JPScreenshotTest still work fine?

Yes, for the purpose of this PR, I think we can, and thus this doesn't need to block this PR, but FYI and AFAIK the WP/JS screenshot tests are not running as part of the CI tests, so 🤷 ...

Copy link
Copy Markdown
Member

@irfano irfano left a comment

Choose a reason for hiding this comment

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

To my understanding this function is related to Glide, and that is, due to it using this addImageSpansForBlockMedia(...) function, which in turn, is using this WPCustomImageGetter class, which is using the WPRemoteResourceViewTarget class, and that in the end used Glide, thus me adding it to the testing list, just in case.

Am I missing something here Irfan? 🤔 PS: I might surely do... 🤔

Yes, you're right. ActivityLogDetailFragment can access Glide via WPCustomImageGetter, but I couldn't find a case that it can happen. I tested various activity log items, but mediaArray was null on all of them, so it skipped using WPCustomImageGetter.

So, there are 2 ways we can go. We can remove 5b from intructions or we keep it with ❓️ with an image ❓️ message, thus perhaps future testers may know a activity log detail type that can have mediaArray and trigger WPCustomImageGetter().

Since we're just discussing updating testing instructions, I'm approving the PR and leaving the merge to you.

Yes, for the purpose of this PR, I think we can, and thus this doesn't need to block this PR, but FYI and AFAIK the WP/JS screenshot tests are not running as part of the CI tests, so 🤷 ...

Oh yes! So we can skip testing WP/JP screenshot tests since they are broken.

@ParaskP7
Copy link
Copy Markdown
Contributor Author

👋 @irfano and thanks for your reply!

Yes, you're right. ActivityLogDetailFragment can access Glide via WPCustomImageGetter, but I couldn't find a case that it can happen. I tested various activity log items, but mediaArray was null on all of them, so it skipped using WPCustomImageGetter.

Same! 🫣

So, there are 2 ways we can go. We can remove 5b from intructions or we keep it with ❓️ with an image ❓️ message, thus perhaps future testers may know a activity log detail type that can have mediaArray and trigger WPCustomImageGetter().

Yeap, I would vote for keeping it, at least for now and until we future out, at some point in the future, if that piece of logic can be tested or even doing anything. It might as well be dead code, who knows, this needs further and deep investigation but shouldn't block this PR... 🤷

Since we're just discussing updating testing instructions, I'm approving the PR and leaving the merge to you.

Great, thanks for the approval and discussing all that with me, much appreciated that you took the time to do a thorough and detailed testing on this dependency update. ❤️

I'll proceed with merging now as everything else seems to be working anyway! 🚀

Oh yes! So we can skip testing WP/JP screenshot tests since they are broken.

Yea! 🫣

@ParaskP7 ParaskP7 merged commit aa5ae56 into trunk Jun 20, 2023
@ParaskP7 ParaskP7 deleted the deps/update-glide-to-4.15.1 branch June 20, 2023 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants