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 https://github.com/bumptech/glide/pull/5296
- Avoid modifying constraints when a scale factor can't be computed by @sjudd in https://github.com/bumptech/glide/pull/5264
- Avoid duplicating Modifiers in GlideModifer by @sjudd in https://github.com/bumptech/glide/pull/5276
- Finish animation ignoring cancellation. by @kanelbulle in https://github.com/bumptech/glide/pull/5279
Build Changes
- Update Glide to java 8, AGP to 8.1.0, Gradle to 8.3 #5284 by @sjudd in https://github.com/bumptech/glide/pull/5285
- Update to AGP 8.1.1 by @sjudd in https://github.com/bumptech/glide/pull/5295
- Remove custom MediaMetadataRetriever shadow in GlideTest by @hoisie in https://github.com/bumptech/glide/pull/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 60b567e5feec70ba810a663e56a10d837f26c56c. This was not mentioned in the 4.16 release notes, but it will break Kotlin implementations that make different assumptions about nullability.
Full Changelog: https://github.com/bumptech/glide/compare/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
(59c2d9b00510f6c66100bbe4e637b0bd3627d930, #5273, thanks @ag2s20150909 ) - Fix issues with duplicate padding, draw order due to duplicate Modifier nodes (830fd11cc66be6849f7f86d3f3f04558e1d54b74, #5272, thanks @lyh8577)
Full Changelog: https://github.com/bumptech/glide/compare/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 https://github.com/bumptech/glide/pull/5077
- Allow host app to provide a way to clear all resources onStop() by @osamaaftab in https://github.com/bumptech/glide/pull/5145
Compose
-
Add a Transition API and a CrossFade Transition for Compose by @sjudd in https://github.com/bumptech/glide/pull/5235
-
Influence layout using intrinsics in GlideNode by @sjudd in https://github.com/bumptech/glide/pull/5240 * Log instead of throwing parsing manifests to fix compose previews by @sjudd in https://github.com/bumptech/glide/pull/5167
-
Launch no more than one request per onRemembered by @sjudd in https://github.com/bumptech/glide/pull/5062
-
Remove GlidePainter in favor of Modifier nodes / Flows by @sjudd in https://github.com/bumptech/glide/pull/5230
-
Replace flows in GlideSubcomposition with a listener on GlideNode by @sjudd in https://github.com/bumptech/glide/pull/5238
Bugs
- Read library glide module names from Java indexes by @sjudd in https://github.com/bumptech/glide/pull/5052
- Fix typo. anay -> any in GlideSymbolProcessor.kt. by @trevorhackman in https://github.com/bumptech/glide/pull/5029
- Include URL in error log by @paulsowden in https://github.com/bumptech/glide/pull/5164
- Add
isInitialized
visible for testing method by @paulsowden in https://github.com/bumptech/glide/pull/5163 - Use onIdle to avoid a race in FlowTests by @sjudd in https://github.com/bumptech/glide/pull/5202
- Add a isEquivalentTo method to correctly check equality by @mori-atsushi in https://github.com/bumptech/glide/pull/5232
- Add @RequiresPermission to NotificationTarget by @TWiStErRob in https://github.com/bumptech/glide/pull/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 https://github.com/bumptech/glide/pull/5115
- Do not set requireOriginal on Android photo picker uris. by @phoenixli in https://github.com/bumptech/glide/pull/5162
Breaking Changes
Build Changes
- Add integration tests for ksp library modules. by @sjudd in https://github.com/bumptech/glide/pull/5054
- Update README.md to use https by @simoarpe in https://github.com/bumptech/glide/pull/5058
- Use dokka to build scripts/update_javadocs.sh by @sjudd in https://github.com/bumptech/glide/pull/5104
- avif integration: Update libavif dependency by @vigneshvg in https://github.com/bumptech/glide/pull/5128
- Disable java 7 source obsolete warning. by @sjudd in https://github.com/bumptech/glide/pull/5168
- Update mockito version to fix j16 compilation. by @sjudd in https://github.com/bumptech/glide/pull/5169
- Switch Glide's dependencies to a version catalog. by @sjudd in https://github.com/bumptech/glide/pull/5183
- Remove jetifier by @sjudd in https://github.com/bumptech/glide/pull/5184
- Add an updated proguard plugin to compile on Java 17. by @sjudd in https://github.com/bumptech/glide/pull/5185
- Configure Renovate in https://github.com/bumptech/glide/pull/5186
- Increment ROBOLECTRIC_SDK to 19 from 18. by @brettchabot in https://github.com/bumptech/glide/pull/5208 and https://github.com/bumptech/glide/pull/5207
- AGP: Upgrade AndroidManifest.xml's package to build.gradle's namespace. by @TWiStErRob in https://github.com/bumptech/glide/pull/5221
New Contributors
- @trevorhackman made their first contribution in https://github.com/bumptech/glide/pull/5029
- @simoarpe made their first contribution in https://github.com/bumptech/glide/pull/5058
- @paulsowden made their first contribution in https://github.com/bumptech/glide/pull/5164
- @phoenixli made their first contribution in https://github.com/bumptech/glide/pull/5162
- @osamaaftab made their first contribution in https://github.com/bumptech/glide/pull/5145
- @brettchabot made their first contribution in https://github.com/bumptech/glide/pull/5207
- @mori-atsushi made their first contribution in https://github.com/bumptech/glide/pull/5232
Full Changelog: https://github.com/bumptech/glide/compare/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, 16306e89dece9908e9ada2382f4b94b591120ea5)
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 (eab4c3742d02ad9f173773007ffc0077b8ace98d, 04f198eb186bf7bc800f056a5fc104eff88b59f1, e6f5eec4ff0d70be28e17c040ee0177edafd8da7, a912e0fba1142da4f939c12852d79bdf6192666e, 966815704feedc6d524a9724c74b88a28ba8b40e, 31821f5ee0556560f5ee85552f6bfe92e52a178d, f73f00344b31bdad87ea90c722174895389904e5)
- Robolectric shadow and legacy cleanup (4298bb7609eb97094406919189c5b147ab6af822, 26a393bb3745977ea4e75fde7dbf06d2b7fbb5b4, 330b9a888e762dac3b2a0d7ec321a088fa90be8b, e247bb7f486a9c36a0f8dec2e3441195b26be727, c283043e722466142d026609ab2599ece6eac247, thanks @hoisie)
- Add support for okhttp4 (464002b62496fc7b4c913563ae9496ee2f7764c1)
- Add support for animated AVIF (895e2f7bb2b060cb88d460d0660a68ca0d9dec6c, d704c8954ae667483afa9a8efdb8b0059e1e979e, 62654be8ba337afa24e235d23902129f787e87d8, e58802e60b36ba76ece309a2c00fb66226498655, thanks @vigneshvg)
- Add support for RGB_565 in Avif (098c1a40d9e85398f9a16d4683c510c665664d4b, 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 (d5fc241c21bfbf5c162e5109e48a4af113aa39cb)
- Make automatic transformations based on ContentScale optional (89472a35df81ca8924ad31870ccd17a5a800674e, #4943)
- Avoid throwing exceptions when Composables have unexpected sizes (6cb9486abc77d2fd37eda7de3f5a01c88725682d)
- Simplify the preloading API by providing a data wrapper that triggers preloading based on access (e63c5d216520baecaaad9273699765b8c02b28be)
- Show placeholder resources in Compose previews (01ed966e24ae26fac1dff9ef46b509e6d607b621, 0f9aea2979fbb5ea2cf763182fe13c9785a227d7)
Bugs
- Workaround VP8 decoding issues on ARC devices (4bfda588b628389134c7a1269cc8202bb69510bf)
- Improve error messages when Glide is recursively initialized or application code throws during Glide's initialization (00e8c233a1ddf65092d840e96e94a11ff9d8b26f)
- Fix a race that can result in RequestManagers leaking (4affb8d2d9f4ca15c7953ca7322c52fb1e2dab1b)
Deprecations
Behavior Changes
- Use Android's Lifecycle for androidx Fragments / Activities instead of adding a hidden Fragment (18bba927a5e5fe7d07ada9667e9e503b9f0596a2)
Breaking Changes
Build Changes
Glide v4.14.2
Bugs
- Allow LibraryGlideModules to be processed in separate code modules when using KSP (#4911, 5245e821e0b61a99685dc129ac83e1bb044275d2)
- Fix recomposition when properties of RequestBuilder change (#4916, f3d6ff7603e4759a89ba7bd9a8b1a77281e3a4b0)
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. (f3d6ff7603e4759a89ba7bd9a8b1a77281e3a4b0)
Glide v4.14.1
Bugs
- Fixes an incorrect dependency in the ksp modules POM file (https://github.com/bumptech/glide/issues/4908, 4d4f3ebe4b8d4aeb7dc833d1787442f04cf8d785)
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, 2a787b9ba4287dd1f1efd19b1139794ee8b530b6, 8bef56e2588a371363079a9e33053a9f1f663849, 272c6c390938189972767168a754c01d909810bc, 9f04fd005925ffc39c3e103e9e88a1a85977bee0, 4016448fc56179ac5fa6eaf352113617f04847a5, c35ad1351ee47314f69ad5ecc405a28fbf919298).
- 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, 7d9e1a3659a23c58457338ce449a37cdcddc62fb)
- Enable animated WebP Decoding on P+ using framework APIs (ad35f5e4fcd2e34750289fa1f9820579b2661f0c)
- Allow Drawables to be loaded with specific themes (17cae33fd8a966f741495e5c8604661629821006)
Bugs
- Register connectivity listeners on API < 24 on background threads (96596ae9269e85f31d5c6a158c2ab92c16677703)
- Disable ParcelFileDescriptor rewinding in Robolectric (9840c91e1b2d358d9c9367654eacd4b4719ed849)
- Rewind ByteBuffers in between each image header parser to avoid spurious failures when multiple parsers read data (4f29adab64f6b43a10652f4d26ba3ecdaf0b5e47)
- Avoid duplicate notifications of Targets when an error request builder is set (5c232dd12b5710c9bb8d940313e77351a39bc6a6)
- Use the correct run reason in DecodeJob (1a2cfe36bf32a8b3d8f155cf8e66e145fcfc3ba7)
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 (e802964ddc838b4db776d45689e9dfd6f46a5b2c)
Behavior Changes
- Initialize Glide's registry on a background thread to avoid some work on the main thread (6ba4b548cae12f3aa53634a59025069834c0ea14)
- 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 (c38ce36cd6827251fbc5e49b79d4e83dec8d71be)
Breaking Changes
Build Changes
- Removed Spotless (edf9d32aa4ea7c9ff7a9ddd346b6609ef9423deb)
- gradle.properties versioning cleanup (3633e95064405744485ce469870bdfdb9428fbd9, 8875d30ee10d5432d8c872d45792678da01781eb, fd5e7df9fc8d43522a32b3be966f5895e78a8d15, b8fb588c2dcba0792747ccc1374b923bd9e1926a, thanks @TacoTheDank)
- Update to Gradle 7+ (fdbb694e68d117553cdc89f32932e0a129c2c75f)
- Fix some deprecation warnings in Gradle (31e7ce34ebad92ecebb7ec9d6288be30c748b830, 2895b351fa6dde68ab5dc85c591f47bd4a395475, thanks @TacoTheDank)
- Use a version of jarjar from maven rather than embedding a jar (faf85ec4351893eef81b52e982fa1067af1e8fdd)
- Removed the exif orientation example dependency in favor of our own custom images (66403763e8235dd2f45d1e6007cd25c62f43843f)
- Target API 32 and make Glide's tests target Java 11 (839899dd252c58045b992181791d2aa9412bfdc0)
- Build both the release and debug flavors again since they're each required by different gradle plugins we use (f86db6fb3003b88a405ffa437b510414a1df2af1)
- CI optimization (c30aee9f01fd10d60e4da8e36812595d30cf8abe, thanks @Goooler)
- Integrate Dokka to build Glide's javadocs for our documentation page (e5a29beb96d9fc8a31e9f0adc650f6b2bd09c4ec)
Glide v4.13.2
Bugs
- Update AVIF dependency to fix proguard stripping code erroneously (https://github.com/bumptech/glide/issues/4761, e2b488c30d27138fecc7a3adc353c66b3756147f)
Glide v4.13.1
Bugs
- Fix a missing dependency in the AVIF integration library (#4751, thanks @vigneshvg, @msisuzney, @wangxuyang518)