Skip to content

1.30.1

Compare
Choose a tag to compare
@takahirom takahirom released this 03 Nov 12:59
· 272 commits to main since this release
a278527

Roborazzi AI-Powered Image Assertion πŸ€– ✨

Roborazzi introduces an experimental AI-powered image assertion feature to simplify and scale the process of verifying screenshot test content. This feature helps automate tedious visual checks by comparing images based on customizable AI prompts, utilizing either the Gemini API or OpenAI API. It only activates when images differ, conserving resources. Additionally, manual AI assertion is available, allowing users to leverage local language models without external dependencies.
We don't include Gemini or OpenAI dependencies in the roborazzi module. To use these models, you can add either roborazzi-ai-gemini or roborazzi-ai-openai as dependencies.

  onView(ViewMatchers.isRoot())
    .captureRoboImage(
      roborazziOptions = provideRoborazziContext().options.addedAiAssertion(
        assertionPrompt = "The screen should have a PREVIOUS button",
      )
   )

For more information, please check out this documentation page:
https://takahirom.github.io/roborazzi/ai-powered-image-assertion.html

Roborazzi Compose Preview Support now supports the device parameter@Preview(device = "") πŸ“±

Roborazzi Compose Preview Support uses ComposablePreviewScanner and ComposablePreviewScanner now supports parsing device parameter. It is introduced to Compose Preview Support. Thank you, @sergio-sastre, for developing this adapter and integrating it with Roborazzi.
If you are using Roborazzi Compose Preview Support with device parameters, you need to update your ComposablePreviewScanner to version 0.4.0.

Remove Context Receiver from roborazzi-desktop ♻️

The Context Receiver in Kotlin is now deprecated, so we need to remove it. The context(DesktopComposeUiTest) requirement existed because the file compose/ui/ui-test/src/skikoMain/kotlin/androidx/compose/ui/test/SkikoImageHelpers.kt was previously unavailable, necessitating the use of DesktopComposeUiTest. Now that SkikoImageHelpers is available, we can eliminate the context(DesktopComposeUiTest) requirement.

This functionality was introduced in the Compose Multiplatform core repository (commit 1664fba: JetBrains/compose-multiplatform-core@1664fba) and has been supported since Compose Multiplatform version 1.5.12 (https://github.com/JetBrains/compose-multiplatform-core/releases/tag/v1.5.12).
Please note that this may be a breaking change if you are using Compose Multiplatform version 1.5.12 or earlier.

Changes from 1.30.0

  • Breaking changes to 1.30.0:
    Renamed parameter assertPrompt to assertionPrompt.

  • Use max_tokens instead of max_completion_tokens for the OpenAI API:
    Although max_tokens has been deprecated, we still need to use it in certain environments.

What's Changed

  • [Documentation] Add description how to configure Differ by @darekbx in #507
  • [Idea Plugin] Fix the issue with the Roborazzi Idea Plugin not being able to display images by @takahirom in #504
  • [CI] Update actions/checkout digest to eef6144 by @renovate in #509
  • [CI] Update actions/upload-artifact digest to b4b15b8 by @renovate in #510
  • [CI] Add dependency diff by @takahirom in #514
  • [CI] Fix dependency diff workflow by @takahirom in #516
  • [CI] Fix comment workflow diff path by @takahirom in #517
  • [Sample/Tests dependency. Not library dependency] Update dependency androidx.compose.ui:ui-test-junit4 to v1.7.4 by @renovate in #469
  • [CI] Pin dependencies by @renovate in #518
  • [CI] Update actions/checkout digest to 11bd719 by @renovate in #519
  • [BREAKING CHANGE in Roborazzi Plugin (I believe this library is not very popular, so I don't anticipate any issues, but please let me know if anything comes up.)] Update dependency org.webjars:webjars-locator-lite to v0.0.6 by @renovate in #425
  • [Sample/Tests dependency. Not library dependency] Update dependency androidx.compose.material3:material3 to v1.3.0 by @renovate in #521
  • [Sample/Tests dependency. Not library dependency] Update dependency androidx.compose.material:material to v1.7.5 by @renovate in #523
  • [Sample/Tests dependency. Not library dependency] Update dependency androidx.compose.material3:material3 to v1.3.1 by @renovate in #525
  • Try to remove context receiver of desktop by @takahirom in #533
  • Use RobolectricDeviceQualifierBuilder from ComposablePreviewScanner to support preview info "device" by @sergio-sastre in #530
  • Roborazzi AI-Powered Image Assertion by @takahirom in #491
  • Add roborazzi-ai-gemini roborazzi-ai-openai to dependency diff by @takahirom in #534
  • Fix the naming of assertPrompt to assertionPrompt by @takahirom in #535
  • Use max_tokens instead of max_completion_tokens for OpenAI API by @takahirom in #536

New Contributors

Full Changelog: 1.29.0...1.30.0
Full Changelog: 1.30.0...1.30.1