takahirom/roborazzi (io.github.takahirom.roborazzi:roborazzi-junit-rule)
### [`v1.32.1`](https://redirect.github.com/takahirom/roborazzi/releases/tag/1.32.1)
[Compare Source](https://redirect.github.com/takahirom/roborazzi/compare/1.32.0...1.32.1)
##### Experimental WebP support and other image formats
Now, you can set `roborazzi.record.image.extension` to `webp` in your `gradle.properties` file to generate WebP images.
To enable WebP support, add `testImplementation("io.github.darkxanter:webp-imageio:0.3.3")` to your `build.gradle.kts` file.
```kotlin
roborazzi.record.image.extension=webp
```
WebP is a lossy image format by default, which can make managing image differences challenging. To address this, we provide a lossless WebP image feature.
```kotlin
onView(ViewMatchers.withId(R.id.textview_first))
.captureRoboImage(
roborazziOptions = RoborazziOptions(
recordOptions = RoborazziOptions.RecordOptions(
imageIoFormat = LosslessWebPImageIoFormat(),
),
)
)
```
You can also use other image formats by implementing your own `AwtImageWriter` and `AwtImageLoader`.
```kotlin
data class JvmImageIoFormat(
val awtImageWriter: AwtImageWriter,
val awtImageLoader: AwtImageLoader
) : ImageIoFormat
```
Thank you, [@ArcaNO93](https://redirect.github.com/ArcaNO93), for providing this suggestion and the code review!
#### Adjustments to AI-Powered Image Assertion
In version 1.30.0, we introduced [Roborazzi AI-Powered Image Assertion](https://takahirom.github.io/roborazzi/ai-powered-image-assertion.html).
We made some adjustments to the AI-Powered Image Assertion
- The OpenAiAiAssertionModel, which utilizes OpenAI APIs, previously lacked a timeout specification, leading to frequent timeout issues. We have now implemented a customizable timeout setting.
- The provideRoborazziContext().option was marked as `InternalRoborazziApi` despite being documented in the README. We have now changed it to ExperimentalRoborazzi API.
#### Changes from 1.32.0
**API Key Masking in Logs for OpenAiAiAssertionModel**
For users enabling logging through `OpenAiAiAssertionModel.loggingEnabled`, API keys in log outputs are now masked to improve security. Previously, API keys could appear in logs, which could unintentionally expose them, especially in test reports. With this update, sensitive data is automatically masked, helping users avoid accidental exposure.
#### What's Changed
- Make OpenAiAiAssertionModel httpClient customizable and add timeout setting by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/541](https://redirect.github.com/takahirom/roborazzi/pull/541)
- Add settings panel for configuring Roborazzi tasks explanation by [@sanao1006](https://redirect.github.com/sanao1006) in [https://github.com/takahirom/roborazzi/pull/537](https://redirect.github.com/takahirom/roborazzi/pull/537)
- Add the ability to change File writers and readers and add support for lossless WebP by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/529](https://redirect.github.com/takahirom/roborazzi/pull/529)
- Make image extension changeable by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/527](https://redirect.github.com/takahirom/roborazzi/pull/527)
- fix(deps): update dependency androidx.compose.ui:ui-test-junit4 to v1.7.5 by [@renovate](https://redirect.github.com/renovate) in [https://github.com/takahirom/roborazzi/pull/526](https://redirect.github.com/takahirom/roborazzi/pull/526)
- Make RoborazziContextImpl.options ExperimentalRoborazziApi by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/544](https://redirect.github.com/takahirom/roborazzi/pull/544)
- Remove API key from log when using OpenAiAiAssertionModel.loggingEnabled = true by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/545](https://redirect.github.com/takahirom/roborazzi/pull/545)
**Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.31.0...1.32.1
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
1.32.0
->1.32.1
1.32.0
->1.32.1
1.32.0
->1.32.1
1.32.0
->1.32.1
1.32.0
->1.32.1
Release Notes
takahirom/roborazzi (io.github.takahirom.roborazzi:roborazzi-junit-rule)
### [`v1.32.1`](https://redirect.github.com/takahirom/roborazzi/releases/tag/1.32.1) [Compare Source](https://redirect.github.com/takahirom/roborazzi/compare/1.32.0...1.32.1) ##### Experimental WebP support and other image formats Now, you can set `roborazzi.record.image.extension` to `webp` in your `gradle.properties` file to generate WebP images. To enable WebP support, add `testImplementation("io.github.darkxanter:webp-imageio:0.3.3")` to your `build.gradle.kts` file. ```kotlin roborazzi.record.image.extension=webp ``` WebP is a lossy image format by default, which can make managing image differences challenging. To address this, we provide a lossless WebP image feature. ```kotlin onView(ViewMatchers.withId(R.id.textview_first)) .captureRoboImage( roborazziOptions = RoborazziOptions( recordOptions = RoborazziOptions.RecordOptions( imageIoFormat = LosslessWebPImageIoFormat(), ), ) ) ``` You can also use other image formats by implementing your own `AwtImageWriter` and `AwtImageLoader`. ```kotlin data class JvmImageIoFormat( val awtImageWriter: AwtImageWriter, val awtImageLoader: AwtImageLoader ) : ImageIoFormat ``` Thank you, [@ArcaNO93](https://redirect.github.com/ArcaNO93), for providing this suggestion and the code review! #### Adjustments to AI-Powered Image Assertion In version 1.30.0, we introduced [Roborazzi AI-Powered Image Assertion](https://takahirom.github.io/roborazzi/ai-powered-image-assertion.html). We made some adjustments to the AI-Powered Image Assertion - The OpenAiAiAssertionModel, which utilizes OpenAI APIs, previously lacked a timeout specification, leading to frequent timeout issues. We have now implemented a customizable timeout setting. - The provideRoborazziContext().option was marked as `InternalRoborazziApi` despite being documented in the README. We have now changed it to ExperimentalRoborazzi API. #### Changes from 1.32.0 **API Key Masking in Logs for OpenAiAiAssertionModel** For users enabling logging through `OpenAiAiAssertionModel.loggingEnabled`, API keys in log outputs are now masked to improve security. Previously, API keys could appear in logs, which could unintentionally expose them, especially in test reports. With this update, sensitive data is automatically masked, helping users avoid accidental exposure. #### What's Changed - Make OpenAiAiAssertionModel httpClient customizable and add timeout setting by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/541](https://redirect.github.com/takahirom/roborazzi/pull/541) - Add settings panel for configuring Roborazzi tasks explanation by [@sanao1006](https://redirect.github.com/sanao1006) in [https://github.com/takahirom/roborazzi/pull/537](https://redirect.github.com/takahirom/roborazzi/pull/537) - Add the ability to change File writers and readers and add support for lossless WebP by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/529](https://redirect.github.com/takahirom/roborazzi/pull/529) - Make image extension changeable by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/527](https://redirect.github.com/takahirom/roborazzi/pull/527) - fix(deps): update dependency androidx.compose.ui:ui-test-junit4 to v1.7.5 by [@renovate](https://redirect.github.com/renovate) in [https://github.com/takahirom/roborazzi/pull/526](https://redirect.github.com/takahirom/roborazzi/pull/526) - Make RoborazziContextImpl.options ExperimentalRoborazziApi by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/544](https://redirect.github.com/takahirom/roborazzi/pull/544) - Remove API key from log when using OpenAiAiAssertionModel.loggingEnabled = true by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/545](https://redirect.github.com/takahirom/roborazzi/pull/545) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.31.0...1.32.1Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.