Skip to content

Commit

Permalink
Prepare version 3.0.0-rc02. (#2606)
Browse files Browse the repository at this point in the history
* Update changelog for 3.0.0-rc02.

* Update version name.

* Remove suppress warning.

* Update baseline profiles.
  • Loading branch information
colinrtwhite authored Oct 28, 2024
1 parent 900c1e8 commit 82655df
Show file tree
Hide file tree
Showing 12 changed files with 81 additions and 59 deletions.
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## [3.0.0-rc02] - October 28, 2024

[For the full list of improvements and important changes in 3.x, check out the upgrade guide](https://coil-kt.github.io/coil/upgrading_to_coil3/). Changes since `3.0.0-rc01`:

- Add `BlackholeDecoder`. This simplifies [disk-cache only preloading](https://coil-kt.github.io/coil/faq/#how-do-i-preload-an-image).
- Add `remember` functions for `ConstraintsSizeResolver` and `DrawScopeSizeResolver`.
- Remove `EqualityDelegate` as a parameter to `AsyncImage`. Instead, it should be set through `LocalAsyncImageModelEqualityDelegate`.
- Fix `AsyncImage` not rendering when parent composable uses `IntrinsicSize`.
- Fix `AsyncImage` filling the available constraints when `AsyncImagePainter` has no child painter.
- Fix `rememberAsyncImagePainter` recomposing infinitely when its state is observed due to `EqualityDelegate` being ignored.
- Fix parsing `File`/`Path` paths with special characters.
- Fix using custom `FileSystem` implementations with `VideoFrameDecoder`.
- Update Ktor to `3.0.0`.
- Update `androidx.annotation` to `1.9.0`.

## [3.0.0-rc01] - October 8, 2024

[For the full list of improvements and important changes in 3.x, check out the upgrade guide](https://coil-kt.github.io/coil/upgrading_to_coil3/). Changes since `3.0.0-alpha10`:
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ Translations: [日本語](README-ja.md), [한국어](README-ko.md), [Русск
Import the Compose library and a [networking library](https://coil-kt.github.io/coil/network/):

```kotlin
implementation("io.coil-kt.coil3:coil-compose:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-compose:3.0.0-rc02")
implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.0-rc02")
```

To load an image, use the `AsyncImage` composable:
Expand Down
79 changes: 47 additions & 32 deletions coil-compose-core/src/androidMain/baseline-prof.txt

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion coil-compose/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
To add support for [Compose UI](https://www.jetbrains.com/compose-multiplatform/), import the extension library:

```kotlin
implementation("io.coil-kt.coil3:coil-compose:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-compose:3.0.0-rc02")
```

Then use the `AsyncImage` composable to load and display an image:
Expand Down
15 changes: 4 additions & 11 deletions coil-core/src/androidMain/baseline-prof.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ HSPLcoil3/EventListener;->keyEnd(Lcoil3/request/ImageRequest;Ljava/lang/String;)
HSPLcoil3/EventListener;->keyStart(Lcoil3/request/ImageRequest;Ljava/lang/Object;)V
HSPLcoil3/EventListener;->mapEnd(Lcoil3/request/ImageRequest;Ljava/lang/Object;)V
HSPLcoil3/EventListener;->mapStart(Lcoil3/request/ImageRequest;Ljava/lang/Object;)V
HSPLcoil3/EventListener;->onCancel(Lcoil3/request/ImageRequest;)V
HSPLcoil3/EventListener;->onStart(Lcoil3/request/ImageRequest;)V
HSPLcoil3/EventListener;->onSuccess(Lcoil3/request/ImageRequest;Lcoil3/request/SuccessResult;)V
HSPLcoil3/EventListener;->resolveSizeEnd(Lcoil3/request/ImageRequest;Lcoil3/size/Size;)V
Expand Down Expand Up @@ -140,7 +139,6 @@ HSPLcoil3/RealImageLoader;->getDefaults()Lcoil3/request/ImageRequest$Defaults;
HSPLcoil3/RealImageLoader;->getDiskCache()Lcoil3/disk/DiskCache;
HSPLcoil3/RealImageLoader;->getMemoryCache()Lcoil3/memory/MemoryCache;
HSPLcoil3/RealImageLoader;->getOptions()Lcoil3/RealImageLoader$Options;
HSPLcoil3/RealImageLoader;->onCancel(Lcoil3/request/ImageRequest;Lcoil3/EventListener;)V
HSPLcoil3/RealImageLoader;->onSuccess(Lcoil3/request/SuccessResult;Lcoil3/target/Target;Lcoil3/EventListener;)V
Lcoil3/RealImageLoader$Options;
HSPLcoil3/RealImageLoader$Options;-><init>(Landroid/content/Context;Lcoil3/request/ImageRequest$Defaults;Lkotlin/Lazy;Lkotlin/Lazy;Lcoil3/EventListener$Factory;Lcoil3/ComponentRegistry;Lcoil3/util/Logger;)V
Expand Down Expand Up @@ -276,7 +274,7 @@ Lcoil3/decode/StaticImageDecoder$decode$lambda$2$lambda$1$$inlined$decodeBitmap$
HSPLcoil3/decode/StaticImageDecoder$decode$lambda$2$lambda$1$$inlined$decodeBitmap$1;-><init>(Lcoil3/decode/StaticImageDecoder;Lkotlin/jvm/internal/Ref$BooleanRef;)V
HSPLcoil3/decode/StaticImageDecoder$decode$lambda$2$lambda$1$$inlined$decodeBitmap$1;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
Lcoil3/decode/StaticImageDecoderKt;
HSPLcoil3/decode/StaticImageDecoderKt;->toImageDecoderSource(Lcoil3/decode/ImageSource;Lcoil3/request/Options;Z)Landroid/graphics/ImageDecoder$Source;
HSPLcoil3/decode/StaticImageDecoderKt;->toImageDecoderSourceOrNull(Lcoil3/decode/ImageSource;Lcoil3/request/Options;Z)Landroid/graphics/ImageDecoder$Source;
Lcoil3/disk/DiskCache;
Lcoil3/disk/DiskCache$Builder;
HSPLcoil3/disk/DiskCache$Builder;-><init>()V
Expand Down Expand Up @@ -542,7 +540,7 @@ HSPLcoil3/request/AndroidRequestService;->isBitmapConfigValidMainThread(Lcoil3/r
HSPLcoil3/request/AndroidRequestService;->isBitmapConfigValidWorkerThread(Lcoil3/request/Options;)Z
HSPLcoil3/request/AndroidRequestService;->isConfigValidForHardware(Lcoil3/request/ImageRequest;Landroid/graphics/Bitmap$Config;)Z
HSPLcoil3/request/AndroidRequestService;->options(Lcoil3/request/ImageRequest;Lcoil3/size/SizeResolver;Lcoil3/size/Size;)Lcoil3/request/Options;
HSPLcoil3/request/AndroidRequestService;->requestDelegate(Lcoil3/request/ImageRequest;Lkotlinx/coroutines/Job;)Lcoil3/request/RequestDelegate;
HSPLcoil3/request/AndroidRequestService;->requestDelegate(Lcoil3/request/ImageRequest;Lkotlinx/coroutines/Job;Z)Lcoil3/request/RequestDelegate;
HSPLcoil3/request/AndroidRequestService;->resolveExtras(Lcoil3/request/ImageRequest;Lcoil3/size/Size;)Lcoil3/Extras;
HSPLcoil3/request/AndroidRequestService;->resolvePrecision(Lcoil3/request/ImageRequest;Lcoil3/size/SizeResolver;)Lcoil3/size/Precision;
HSPLcoil3/request/AndroidRequestService;->resolveScale(Lcoil3/request/ImageRequest;Lcoil3/size/Size;)Lcoil3/size/Scale;
Expand All @@ -551,7 +549,9 @@ HSPLcoil3/request/AndroidRequestService;->updateOptionsOnWorkerThread(Lcoil3/req
Lcoil3/request/BaseRequestDelegate;
HSPLcoil3/request/BaseRequestDelegate;-><init>(Lkotlinx/coroutines/Job;)V
HSPLcoil3/request/BaseRequestDelegate;->assertActive()V
HSPLcoil3/request/BaseRequestDelegate;->box-impl(Lkotlinx/coroutines/Job;)Lcoil3/request/BaseRequestDelegate;
HSPLcoil3/request/BaseRequestDelegate;->complete()V
HSPLcoil3/request/BaseRequestDelegate;->constructor-impl(Lkotlinx/coroutines/Job;)Lkotlinx/coroutines/Job;
HSPLcoil3/request/BaseRequestDelegate;->start()V
Lcoil3/request/CachePolicy;
HSPLcoil3/request/CachePolicy;->$values()[Lcoil3/request/CachePolicy;
Expand All @@ -560,12 +560,6 @@ HSPLcoil3/request/CachePolicy;-><init>(Ljava/lang/String;IZZ)V
HSPLcoil3/request/CachePolicy;->getReadEnabled()Z
HSPLcoil3/request/CachePolicy;->getWriteEnabled()Z
Lcoil3/request/ErrorResult;
Lcoil3/request/GlobalLifecycle;
HSPLcoil3/request/GlobalLifecycle;-><clinit>()V
HSPLcoil3/request/GlobalLifecycle;-><init>()V
HSPLcoil3/request/GlobalLifecycle;->equals(Ljava/lang/Object;)Z
Lcoil3/request/GlobalLifecycle$owner$1;
HSPLcoil3/request/GlobalLifecycle$owner$1;-><init>()V
Lcoil3/request/ImageRequest;
HSPLcoil3/request/ImageRequest;-><init>(Landroid/content/Context;Ljava/lang/Object;Lcoil3/target/Target;Lcoil3/request/ImageRequest$Listener;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Lokio/FileSystem;Lkotlin/Pair;Lcoil3/decode/Decoder$Factory;Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Lcoil3/request/CachePolicy;Lcoil3/request/CachePolicy;Lcoil3/request/CachePolicy;Lcoil3/memory/MemoryCache$Key;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lcoil3/size/SizeResolver;Lcoil3/size/Scale;Lcoil3/size/Precision;Lcoil3/Extras;Lcoil3/request/ImageRequest$Defined;Lcoil3/request/ImageRequest$Defaults;)V
HSPLcoil3/request/ImageRequest;-><init>(Landroid/content/Context;Ljava/lang/Object;Lcoil3/target/Target;Lcoil3/request/ImageRequest$Listener;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Lokio/FileSystem;Lkotlin/Pair;Lcoil3/decode/Decoder$Factory;Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Lcoil3/request/CachePolicy;Lcoil3/request/CachePolicy;Lcoil3/request/CachePolicy;Lcoil3/memory/MemoryCache$Key;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lcoil3/size/SizeResolver;Lcoil3/size/Scale;Lcoil3/size/Precision;Lcoil3/Extras;Lcoil3/request/ImageRequest$Defined;Lcoil3/request/ImageRequest$Defaults;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
Expand Down Expand Up @@ -659,7 +653,6 @@ HSPLcoil3/request/ImageRequests_androidKt;->getLifecycle(Lcoil3/request/ImageReq
HSPLcoil3/request/ImageRequests_androidKt;->getPremultipliedAlpha(Lcoil3/request/Options;)Z
HSPLcoil3/request/ImageRequests_androidKt;->getTransformations(Lcoil3/request/ImageRequest;)Ljava/util/List;
HSPLcoil3/request/ImageRequests_androidKt;->getTransitionFactory(Lcoil3/request/ImageRequest;)Lcoil3/transition/Transition$Factory;
HSPLcoil3/request/ImageRequests_androidKt;->lifecycle(Lcoil3/request/ImageRequest$Builder;Landroidx/lifecycle/Lifecycle;)Lcoil3/request/ImageRequest$Builder;
HSPLcoil3/request/ImageRequests_androidKt;->newCrossfadeTransitionFactory(I)Lcoil3/transition/Transition$Factory;
HSPLcoil3/request/ImageRequests_androidKt;->transitionFactory(Lcoil3/ImageLoader$Builder;Lcoil3/transition/Transition$Factory;)Lcoil3/ImageLoader$Builder;
Lcoil3/request/ImageResult;
Expand Down
2 changes: 1 addition & 1 deletion coil-gif/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Unlike Glide, GIFs are not supported by default. However, Coil has an extension
To add GIF support, import the extension library:

```kotlin
implementation("io.coil-kt.coil3:coil-gif:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-gif:3.0.0-rc02")
```

And that's it! The `ImageLoader` will automatically detect any GIFs using their file headers and decode them correctly.
Expand Down
6 changes: 3 additions & 3 deletions coil-network-core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ By default, Coil 3.x does not include support for loading images from the networ
To add support for fetching images from the network import **only one of the following**:

```kotlin
implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.0-rc01") // Only available on Android/JVM.
implementation("io.coil-kt.coil3:coil-network-ktor2:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-network-ktor3:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.0-rc02") // Only available on Android/JVM.
implementation("io.coil-kt.coil3:coil-network-ktor2:3.0.0-rc02")
implementation("io.coil-kt.coil3:coil-network-ktor3:3.0.0-rc02")
```

If you use OkHttp, that's it. Once imported, network URLs like `https://www.example.com/image.jpg` will automatically be supported. If you use Ktor, you need to add supported engines for each platform:
Expand Down
2 changes: 1 addition & 1 deletion coil-svg/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
To add SVG support, import the extension library:

```kotlin
implementation("io.coil-kt.coil3:coil-svg:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-svg:3.0.0-rc02")
```

And that's it! The `ImageLoader` will automatically detect and decode any SVGs. Coil detects SVGs by looking for the `<svg ` marker in the first 1 KB of the file, which should cover most cases. If the SVG is not automatically detected, you can set the `Decoder` explicitly for the request:
Expand Down
2 changes: 1 addition & 1 deletion coil-test/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
To use the testing support classes, import the extension library:

```kotlin
testImplementation("io.coil-kt.coil3:coil-test:3.0.0-rc01")
testImplementation("io.coil-kt.coil3:coil-test:3.0.0-rc02")
```

`coil-test` includes a `FakeImageLoaderEngine`, which can be added to your `ImageLoader` to intercept all incoming `ImageRequest`s and return a custom `ImageResult`. This is useful for testing as it makes loading images synchronous (from the main thread) and consistent. By using `FakeImageLoaderEngine` the `ImageLoader` will avoid all the memory caching, thread jumping, disk/network I/O fetching, and image decoding that's typically done to load an image. Here's an example:
Expand Down
2 changes: 1 addition & 1 deletion coil-video/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
To add video frame support, import the extension library:

```kotlin
implementation("io.coil-kt.coil3:coil-video:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-video:3.0.0-rc02")
```

And add the decoder to your component registry when constructing your `ImageLoader`:
Expand Down
8 changes: 4 additions & 4 deletions docs/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
A typical Compose UI project will want to import:

```kotlin
implementation("io.coil-kt.coil3:coil-compose:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-compose:3.0.0-rc02")
implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.0-rc02")
```

!!! Note
Expand All @@ -26,8 +26,8 @@ AsyncImage(
If you use Android Views instead of Compose UI import:

```kotlin
implementation("io.coil-kt.coil3:coil:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.0-rc01")
implementation("io.coil-kt.coil3:coil:3.0.0-rc02")
implementation("io.coil-kt.coil3:coil-network-okhttp:3.0.0-rc02")
```

After that's imported you can load images from the network using the `ImageView.load` extension function:
Expand Down
3 changes: 1 addition & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ systemProp.org.gradle.internal.launcher.welcomeMessageEnabled=false
kotlin.code.style=official
kotlin.mpp.androidGradlePluginCompatibility.nowarn=true
kotlin.mpp.androidSourceSetLayoutVersion=2
kotlin.suppressGradlePluginWarnings=IncorrectCompileOnlyDependencyWarning

kotlinx.atomicfu.enableJsIrTransformation=true
kotlinx.atomicfu.enableJvmIrTransformation=true
Expand All @@ -31,7 +30,7 @@ SONATYPE_HOST=DEFAULT
RELEASE_SIGNING_ENABLED=true

POM_GROUP_ID=io.coil-kt.coil3
POM_VERSION=3.0.0-SNAPSHOT
POM_VERSION=3.0.0-rc02

POM_DESCRIPTION=An image loading library for Android and Compose Multiplatform.
POM_INCEPTION_YEAR=2019
Expand Down

0 comments on commit 82655df

Please sign in to comment.