Releases: bumptech/glide
Glide 5.0.0-rc01, Compose 1.0.0-beta01
Glide 5.0 contains no major changes from Glide 4.16 except that we now compile against Java 8 and Kotlin 1.8.
Compose
- Add a Painter variant of the placeholder APIs in the Compose integration by @sjudd in #5296
- Avoid modifying constraints when a scale factor can't be computed by @sjudd in #5264
- Avoid duplicating Modifiers in GlideModifer by @sjudd in #5276
- Finish animation ignoring cancellation. by @kanelbulle in #5279
Build Changes
- Update Glide to java 8, AGP to 8.1.0, Gradle to 8.3 #5284 by @sjudd in #5285
- Update to AGP 8.1.1 by @sjudd in #5295
- Remove custom MediaMetadataRetriever shadow in GlideTest by @hoisie in #5292
Breaking Changes
- Updated Glide to build against Java 8 and Kotlin 1.8. We may update to compile against Kotlin 1.9 before releasing 5.0 / Compose 1.0
- 4.16 added
@Nullable
and@NonNull
annotations toRequestListener
via 60b567e. This was not mentioned in the 4.16 release notes, but it will break Kotlin implementations that make different assumptions about nullability.
Full Changelog: v4.16.0...v5.0.0-rc01
Glide Compose alpha6
We're trying something new - releasing just a dot release of the compose integration library without any changes to the rest of Glide. The new version of the compose library should continue to depend on Glide 4.16.0.
Bugs
- Fix Drawables not animated in
GlideImage
(59c2d9b, #5273, thanks @ag2s20150909 ) - Fix issues with duplicate padding, draw order due to duplicate Modifier nodes (830fd11, #5272, thanks @lyh8577)
Full Changelog: v4.16.0...compose-alpha6
Glide 4.16.0
This release focuses on some build improvements and Compose. The two major Compose improvements are adding support for Compose specific transitions (e.g. cross fade) and supporting recomposition based on request state using GlideSubcomposition
. There's also been a bunch of internal refactoring to move away from Painters to Modifier nodes based on feedback from the Compose team. This is still an alpha release of Compose, but barring unexpectedly negative feedback, the next release should be beta.
This should be the last release of Glide that targets Java 7. That probably means our next release will be a major version change.
Features
- Allow passing an executor into ChromiumRequestSerializer in #5077
- Allow host app to provide a way to clear all resources onStop() by @osamaaftab in #5145
Compose
-
Add a Transition API and a CrossFade Transition for Compose by @sjudd in #5235
-
Influence layout using intrinsics in GlideNode by @sjudd in #5240 * Log instead of throwing parsing manifests to fix compose previews by @sjudd in #5167
-
Launch no more than one request per onRemembered by @sjudd in #5062
-
Remove GlidePainter in favor of Modifier nodes / Flows by @sjudd in #5230
-
Replace flows in GlideSubcomposition with a listener on GlideNode by @sjudd in #5238
Bugs
- Read library glide module names from Java indexes by @sjudd in #5052
- Fix typo. anay -> any in GlideSymbolProcessor.kt. by @trevorhackman in #5029
- Include URL in error log by @paulsowden in #5164
- Add
isInitialized
visible for testing method by @paulsowden in #5163 - Use onIdle to avoid a race in FlowTests by @sjudd in #5202
- Add a isEquivalentTo method to correctly check equality by @mori-atsushi in #5232
- Add @RequiresPermission to NotificationTarget by @TWiStErRob in #5220
Deprecations
placeholderOf(@Composable)
inGlideImage
is deprecated, useGlideSubcomposition
instead. Keep in mind that using either forces a recomposition each time the state of the image load changes. Recomposition will have a significant performance penalty in scrolling lists and should be avoided.
Behavior Changes
- Hard code disabling hardware bitmaps on O/OMR1. by @sjudd in #5115
- Do not set requireOriginal on Android photo picker uris. by @phoenixli in #5162
Breaking Changes
- [Late edit, sorry!]: Added
@Nullable
and@NonNull
annotations toRequestListener
via 60b567e. This will break Kotlin implementations that make different assumptions about nullability.
Build Changes
- Add integration tests for ksp library modules. by @sjudd in #5054
- Update README.md to use https by @simoarpe in #5058
- Use dokka to build scripts/update_javadocs.sh by @sjudd in #5104
- avif integration: Update libavif dependency by @vigneshvg in #5128
- Disable java 7 source obsolete warning. by @sjudd in #5168
- Update mockito version to fix j16 compilation. by @sjudd in #5169
- Switch Glide's dependencies to a version catalog. by @sjudd in #5183
- Remove jetifier by @sjudd in #5184
- Add an updated proguard plugin to compile on Java 17. by @sjudd in #5185
- Configure Renovate in #5186
- Increment ROBOLECTRIC_SDK to 19 from 18. by @brettchabot in #5208 and #5207
- AGP: Upgrade AndroidManifest.xml's package to build.gradle's namespace. by @TWiStErRob in #5221
New Contributors
- @trevorhackman made their first contribution in #5029
- @simoarpe made their first contribution in #5058
- @paulsowden made their first contribution in #5164
- @phoenixli made their first contribution in #5162
- @osamaaftab made their first contribution in #5145
- @brettchabot made their first contribution in #5207
- @mori-atsushi made their first contribution in #5232
Full Changelog: v4.15.0...v4.16.0
Note - there's been a change in the gpg key used to sign these releases. The new public key is attached
Glide v4.15.1
Features
Compose
Bugs
- Fix a bug in the KSP processor preventing it from recognizing or including any of Glide's library modules, or any other library module compiled with Glide's java annotation processor (com.github.bumptech.glide:compiler:X.XX.X). (#5043, 16306e8)
Deprecations
Behavior Changes
Breaking Changes
Build Changes
Glide v4.15.0
Features
- Improved support for dark mode, RTL and other theme attributes on resources loaded with Glide (eab4c37, 04f198e, e6f5eec, a912e0f, 9668157, 31821f5, f73f003)
- Robolectric shadow and legacy cleanup (4298bb7, 26a393b, 330b9a8, e247bb7, c283043, thanks @hoisie)
- Add support for okhttp4 (464002b)
- Add support for animated AVIF (895e2f7, d704c89, 62654be, e58802e, thanks @vigneshvg)
- Add support for RGB_565 in Avif (098c1a4, thanks @vigneshvg)
Compose
- Add loading and failure composable parameters so you can set a custom composable while Glide is loading or after an image load fails (d5fc241)
- Make automatic transformations based on ContentScale optional (89472a3, #4943)
- Avoid throwing exceptions when Composables have unexpected sizes (6cb9486)
- Simplify the preloading API by providing a data wrapper that triggers preloading based on access (e63c5d2)
- Show placeholder resources in Compose previews (01ed966, 0f9aea2)
Bugs
- Workaround VP8 decoding issues on ARC devices (4bfda58)
- Improve error messages when Glide is recursively initialized or application code throws during Glide's initialization (00e8c23)
- Fix a race that can result in RequestManagers leaking (4affb8d)
Deprecations
Behavior Changes
- Use Android's Lifecycle for androidx Fragments / Activities instead of adding a hidden Fragment (18bba92)
Breaking Changes
Build Changes
Glide v4.14.2
Bugs
- Allow LibraryGlideModules to be processed in separate code modules when using KSP (#4911, 5245e82)
- Fix recomposition when properties of RequestBuilder change (#4916, f3d6ff7)
Behavior Changes
- Proper implementation of equals/hashcode for BaseRequestOptions and TransitionOptions subclasses. Previously comparing these objects was either not symmetric or certain properties were not included in
equals()
andhashCode()
. Code that relied on the equals/hashcode methods may break if it accidentally relies on the old bad behavior. (f3d6ff7)
Glide v4.14.1
Glide v4.14.0
Features
- Add support for KSP (See Download and Setup and Generated API Deprecation for details on how to use the KSP processor and the features it does and does not support, 2a787b9, 8bef56e, 272c6c3, 9f04fd0, 4016448, c35ad13).
- Add an alpha version of a Compose integration (Docs)
- To support the Compose integration, add an alpha version of general Kotlin support, starting with utilities to convert a Glide request into a Flow (Docs, 7d9e1a3)
- Enable animated WebP Decoding on P+ using framework APIs (ad35f5e)
- Allow Drawables to be loaded with specific themes (17cae33)
Bugs
- Register connectivity listeners on API < 24 on background threads (96596ae)
- Disable ParcelFileDescriptor rewinding in Robolectric (9840c91)
- Rewind ByteBuffers in between each image header parser to avoid spurious failures when multiple parsers read data (4f29ada)
- Avoid duplicate notifications of Targets when an error request builder is set (5c232dd)
- Use the correct run reason in DecodeJob (1a2cfe3)
Deprecations
- Deprecate Glide's Extensions, GlideApp, GlideRequest and GlideRequests. Extensions seem to be rarely used and add a lot of complexity to the otherwise fairly simple annotation processor. They're also trivially replicated with Kotlin's extension functions for people who're already using Kotlin. Without Extensions, GlideApp, GlideRequest and GlideRequests serve no additional purpose. Prior to Glide 4.9.0 they were used to merge RequestBuilder and RequestOptions, but now that's done in the library without codegen. See Generated API Deprecation for details.
- Deprecate Android framework Fragment support. Applications should use androidx Fragments instead, which we'll continue to support (e802964)
Behavior Changes
- Initialize Glide's registry on a background thread to avoid some work on the main thread (6ba4b54)
- Update the state of a Request before calling Targets or RequestListeners. Request is generally treated as an internal API but it's possible this could result in some changes to the behavior of custom Targets or RequestListeners that try to use Request to introspect state (c38ce36)
Breaking Changes
Build Changes
- Removed Spotless (edf9d32)
- gradle.properties versioning cleanup (3633e95, 8875d30, fd5e7df, b8fb588, thanks @TacoTheDank)
- Update to Gradle 7+ (fdbb694)
- Fix some deprecation warnings in Gradle (31e7ce3, 2895b35, thanks @TacoTheDank)
- Use a version of jarjar from maven rather than embedding a jar (faf85ec)
- Removed the exif orientation example dependency in favor of our own custom images (6640376)
- Target API 32 and make Glide's tests target Java 11 (839899d)
- Build both the release and debug flavors again since they're each required by different gradle plugins we use (f86db6f)
- CI optimization (c30aee9, thanks @Goooler)
- Integrate Dokka to build Glide's javadocs for our documentation page (e5a29be)
Glide v4.13.2
Glide v4.13.1
Bugs
- Fix a missing dependency in the AVIF integration library (#4751, thanks @vigneshvg, @msisuzney, @wangxuyang518)