-
Notifications
You must be signed in to change notification settings - Fork 9
fix(deps): update test.roborazzi to v1.52.0 #829
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/test.roborazzi
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
71edbfc to
37679f0
Compare
d69422f to
767e6bc
Compare
91741b8 to
aea3340
Compare
47c80b8 to
6f0fb26
Compare
8ba7e81 to
7ae5a9c
Compare
1f0f766 to
ef8b1f5
Compare
69b04cb to
04f0f71
Compare
04f0f71 to
e3a9d1d
Compare
7b67227 to
8a586ac
Compare
8a586ac to
528fbc4
Compare
528fbc4 to
60983d2
Compare
60983d2 to
9ce6965
Compare
9ce6965 to
8e14b6e
Compare
8e14b6e to
d923990
Compare
d923990 to
19d312e
Compare
19d312e to
48bcc88
Compare
48bcc88 to
fcfdd0e
Compare
fcfdd0e to
93811d3
Compare
93811d3 to
6f4eb24
Compare
6f4eb24 to
5de058e
Compare
5de058e to
1bca0e7
Compare
1bca0e7 to
34c3674
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.3.0->1.52.01.3.0->1.52.01.3.0->1.52.01.3.0->1.52.0Release Notes
takahirom/roborazzi (io.github.takahirom.roborazzi)
v1.52.0Compare Source
Support for
com.android.kotlin.multiplatform.librarypluginEven though we can use
androidUnitTestin Kotlin Multiplatform Plugin, there is a way to add Android target to KMP and this might become mainstream. Roborazzi did not add the task for this plugin so we added tasks likerecordRoborazziAndroidHostTest. Thank you for reporting this issue @xVemu !Support for KMP testRuns API
When we add testRuns in build.gradle, that enables us to control dependencies for tests in KMP, Roborazzi used to fail with
Cannot add task 'clearRoborazziJvm' as a task with that name already exists.. Thank you for reporting this issue as well @xVemu !Fix preview tests plugin when using Bom dependencies
There are patterns that we cannot build with Roborazzi due to configuration cache issues. We addressed this issue using a new API for configuration cache. Thank you for reporting this @igokoro !
What's Changed
Full Changelog: takahirom/roborazzi@1.51.0...1.52.0
v1.51.0Compare Source
Add validation for Compose Preview Support users
includePrivatePreviews is an option we can set in Gradle DSL. However, there is a scenario where we cannot use it, and it appears to be a flaw. The reason why includePrivatePreviews is not utilized is that users can specify a custom tester in their code, and Roborazzi's default tester applies the option using parameters from the Gradle DSL. You can see the error message if you do not set options properly, as shown below. You can simply review and follow what the error message indicates. Thank you, @egorikftp, for reporting this issue! Thank you, @sergio-sastre, for your input on this issue!
https://redirect.github.com/takahirom/roborazzi/pull/740/files#diff-0ed97664cea9b889781317183ecffc5ab489f71f3c1ee34484ea1eeb392dd3a5R121-R167
What's Changed
08eba0bby @renovate[bot] in #743d3f86a1by @renovate[bot] in #74473f8f37by @renovate[bot] in #745Full Changelog: takahirom/roborazzi@1.50.0...1.51.0
v1.50.0Compare Source
Fixed: Resolved Gradle task dependency errors with Android Gradle Plugin 8.12+ where
GenerateComposePreviewRobolectricTestsTaskoutput was used by compilation tasks without explicit dependencies. Thank you @papo2608 for reporting this issue.What's Changed
Full Changelog: takahirom/roborazzi@1.49.0...1.50.0
v1.49.0Compare Source
ComposablePreviewScanner 0.7.0 Compatibility Update
Breaking Change - Compatibility Update Required
This release addresses a breaking compatibility issue with ComposablePreviewScanner 0.7.0 that affects users of Roborazzi's Preview support feature.
The Problem
When using ComposablePreviewScanner 0.7.0 with previous versions of Roborazzi, you'll encounter
NoSuchMethodErrorat runtime. This happens because:AndroidPreviewScreenshotIdBuilderto provide commonPreviewScreenshotIdBuildermethods for Glance and Compose MultiplatformThe Solution
This Roborazzi update replaces the old method calls and import statements with new ones compatible with ComposablePreviewScanner 0.7.0+. However, since these new method locations don't exist in ComposablePreviewScanner 0.6.x, you must update both libraries together.
If you use Roborazzi's Preview support, you must:
Both updates are required - updating only one will cause build or runtime errors.
Migration Steps
Improved Error Detection
We've added clear build-time error messages to help you identify when this compatibility issue occurs, so you'll know exactly what needs to be updated instead of encountering cryptic runtime errors.
Common Update Scenarios
Scenario 1: Update only ComposablePreviewScanner to 0.7.0
→
NoSuchMethodErrorwith old Roborazzi. Update Roborazzi to resolve.Scenario 2: Update only Roborazzi
→ Compile-time error with clear message to update ComposablePreviewScanner ✅
Acknowledgments
Thanks to @sergio-sastre for collaboration on resolving this compatibility challenge and maintaining the ComposablePreviewScanner library.
What's Changed
Full Changelog: takahirom/roborazzi@1.48.0...1.49.0
v1.48.0Compare Source
Fix Preview Size Retention Bug
Fixed issue where
@Previewannotation size attributes (heightDp/widthDp) incorrectly persisted between capturesProblem
Subsequent previews without explicit size would inherit dimensions from previous previews instead of using defaults.
Solution
Save and restore Robolectric qualifiers properly in captureRoboImage() to ensure preview size isolation.
Thanks to @smuldr for reporting this issue!
Breaking Changes: Update Libraries
You can see the changes at: https://github.com/takahirom/roborazzi/actions/runs/16952566040
Overall, we are now using Kotlin 2.0.21. We don't chase the latest versions, but we want to add tests using the latest Compose Multiplatform Previews. Thank you for letting me know about this! @sergio-sastre
What's Changed
Full Changelog: takahirom/roborazzi@1.47.0...1.48.0
v1.47.0Compare Source
Compose Preview Tester Customization
Added
Capturerinterface toAndroidComposePreviewTesterfor customizing capture behavior (#716). This allows setting customcomparison thresholds and other RoborazziOptions for generated Compose preview tests.
Fixes #703. Thanks @pavel163 for the issue report and @sergio-sastre for the review!
What's Changed
New Contributors
Full Changelog: takahirom/roborazzi@1.46.1...1.47.0
v1.46.1Compare Source
Bugfix: Fix screenshot sizing for RoborazziComposeSizeOption and Previews on Robolectric 4.15+
This release finally resolves a complex screenshot sizing issue that occurred after the Robolectric 4.15 update. Version 1.46.0 was never released as we discovered additional edge cases during the pre-release phase. This version, 1.46.1, addresses all known issues.
Initially, we migrated to using
RuntimeEnvironment.setQualifiers()to configure the screen size, following the recommended approach for recent Robolectric versions. However, this change introduced new problems, especially when awidthDpandheightDpwith different values were specified, or when used in combination with thedeviceparameter in@Preview.After extensive investigation and discussion, we've implemented a more robust solution. Roborazzi now automatically adds the correct orientation qualifier (
-landor-port) based on the provided dimensions and ensures the qualifiers are applied in the correct order to avoid conflicts with other configurations. This fixes sizing for all Compose screenshot tests, making them reliable and predictable again.Acknowledgements
A huge thank you to everyone who contributed to resolving this challenging issue! This fix would not have been possible without the collaborative effort of the community.
setQualifiersand orientation work were crucial in pointing us toward the correct and final solution.What's Changed
Full Changelog: takahirom/roborazzi@1.46.0...1.46.1
v1.45.1Compare Source
Please refer to https://github.com/takahirom/roborazzi/releases/tag/1.45.0
v1.45.0: (Publishing Failed)Compare Source
The attempt to publish version 1.45.0 to the Maven Central repository appears to have failed. The release status is showing as "FAILED," so I will publish version 1.45.1 instead.
(This issue has since been resolved by contacting Maven Central support. Please use 1.45.1)
Bug fixes
The dialog's background dimming is now visible, just as it would be on a real device. Thank you for investigating this. @jeppeman

There was a bug that caused Roborazzi to crash when using BoxWithConstraints with a Dialog. Thank you, @matsudamper, for the report and the sample code.
What's Changed
Full Changelog: takahirom/roborazzi@1.44.0...1.45.0
v1.44.0Compare Source
Please refer to https://github.com/takahirom/roborazzi/releases/tag/1.44.0-alpha01 to see the main changes in version 1.44.0. We are still seeking feedback on RoboComposePreviewOptions. RoboComposePreviewOptions is still experimental, and we may introduce breaking changes.
New feature: Added JUnit
@Categoryto auto-generated tests from Compose PreviewYou can now filter tests using JUnit4's
RoborazziComposePreviewTestCategory. Thanks to @hellohj for the suggestion.Bugfix: Subdirectory screenshots are now removed when
roborazzi.cleanupOldScreenshots=truePreviously, when
roborazzi.cleanupOldScreenshots=truewas used, subdirectory screenshots were not removed as intended. Thanks to @pacoalface-jt for reporting the bug.What's Changed
4d78a74by @renovate in #66095815c3by @renovate in #670ea165f8by @renovate in #672Full Changelog: takahirom/roborazzi@1.43.1...1.44.0
v1.43.1Compare Source
We added error handling for font availability checks in 1.43.0. However, it seems that the "font not available" error is an Error rather than an Exception, so we updated the code to handle Throwable.
What's Changed
Full Changelog: takahirom/roborazzi@1.43.0...1.43.1
v1.43.0Compare Source
Bugfix
Added error handling for font availability checks in headless environments, falling back to
Font.MONOSPACEDwhen preferred fonts are unavailable. Thanks for reporting this issue @pavel163What's Changed
Full Changelog: takahirom/roborazzi@1.42.0...1.43.0
v1.42.0Compare Source
Bug fixes
We are using the "Courier New" font for comparison image text and screenshot dumps. It appears that "Courier New" is not available in CentOS, although this may not be an issue for Mac, Ubuntu, and Windows users.
To address this problem, we have introduced two mechanisms. Thank you for reporting this issue, @LloydBlv.
roborazzi.theme.typography.font.name=Your Font NameWhat's Changed
Full Changelog: takahirom/roborazzi@1.41.1...1.42.0
v1.41.1Compare Source
In some cases, the new test result format breaks the report's HTML/JS. Thank for fixing this, @unni-dm!
What's Changed
New Contributors
Full Changelog: takahirom/roborazzi@1.41.0...1.41.1
v1.41.0Compare Source
HTML Report Improvements
Thanks to @mannodermaus's contribution, context and AI assertion results now display more intuitively instead of showing raw data class

toString()outputs.Bug Fixes
Automatic Retry Handling for 429 Errors
(Only relevant for arbigent-ai-openai users)
We've implemented automatic retry logic for HTTP 429 errors common with AI model rate limits, eliminating manual intervention.
Experimental Multi-Image AI Assertion
Originally developed for Arbigent, this feature now supports multi-image inputs for AI assertions - enabling detection of video playback or animated content through AI analysis.
What's Changed
Full Changelog: takahirom/roborazzi@1.40.1...1.41.0
v1.40.1Compare Source
New Feature: Add AiAssertionOptions.AssertionImageType to Support Actual Image Validation
We previously introduced AI Assertion which utilizes a comparison image for assertions. However, we noticed the current implementation struggled with optimal performance due to image size constraints, where sufficient context size is crucial for accurate AI analysis. To address this, we've introduced the
AssertionImageTypeparameter. You can now specify the image type viaAiAssertionOptions.Bug Fix: Improved AI Assertion OpenAI API Error Messaging
Previously, API error messages were unclear and unhelpful. We've revamped the error handling to provide meaningful feedback, including proper API status details.
Before:
After:
Changes from 1.40.0
We initially introduced
AssertionImageType.Referenceinstead ofAssertionImageType.Actualin version 1.40.0. This was a mistake, as it referred to old images, a feature we've determined to be unnecessary. We have corrected this in the current release by usingAssertionImageType.Actual.What's Changed
65c4c4aby @renovate in #619Full Changelog: takahirom/roborazzi@1.39.0...1.40.1
v1.40.0Compare Source
Please refer to https://github.com/takahirom/roborazzi/releases/tag/1.40.1
v1.39.0Compare Source
Bug Fixes
Diff screenshots are now as large as the largest of the two compared screenshots
Previously, when the size of a screenshot changed (e.g., became smaller), the image diff would not appear because it was based on the minimum size of each screenshot. This has been fixed so that the diff is now based on the largest of the two compared screenshots. Thank you for reporting this issue, @outadoc!
Report HTML's image order is now deterministic
The image order in the HTML report used to be random. Thanks to @mannodermaus, it is now sorted by name.
OpenAiAiAssertionModel is now Gemini compatible
Gemini has a compatibility mode with the OpenAI API (https://ai.google.dev/gemini-api/docs/openai). By using
https://generativelanguage.googleapis.com/v1beta/openai/as the base URL, we can essentially use Gemini. However, some properties are different, so we had to modify the OpenAiAiAssertionModel to be compatible with Gemini.I'm currently developing another library called Arbigent, an AI agent testing framework. I'm planning to add an AI image assertion feature using Roborazzi's AI-Powered Image Assertion, and I needed this compatibility for that. This isn't directly related to this project, but if you're interested in testing, check it out: https://github.com/takahirom/arbigent
What's Changed
b96c8e6by @renovate in #561Full Changelog: takahirom/roborazzi@1.38.0...1.39.0
v1.38.0Compare Source
Bugfix
Fix: Bug preventing the revival of deleted screenshot images
Thanks to @pedromfmachado's contribution, we've addressed a bug where deleted screenshot test images would be erroneously revived. Previously, when screenshot tests were removed and their corresponding images deleted from the output directory, running the
recordtask again would cause the Roborazzi Gradle task to recreate the removed images. While this could be temporarily resolved withroborazzi.cleanupOldScreenshots=true, that approach was undesirable as it would also remove images when test filters were used. This was a complex issue to solve, and we extend our gratitude to @pedromfmachado for the fix.Fix: Made screenshot dump deterministic
We have a dump feature that allows us to check the properties or hierarchy of views or composables in an image. We sorted the properties to ensure a deterministic output. Thanks to @siarhei-luskanau for this contribution.
New Feature
Feature: Added
RoborazziComposeActivityThemeOptionPreviously, changing the theme of
RoborazziTransparentActivitywas not possible. We have now deprecatedRoborazziTransparentActivityand renamed it toRoborazziActivity. Additionally, we addedRoborazziComposeActivityThemeOptionto enable changing the Activity's theme. Thank you again, @pedromfmachado, for this feature.You can now change the Activity theme like this:
What's Changed
New Contributors
Full Changelog: takahirom/roborazzi@1.37.0...1.38.0
v1.37.0Compare Source
Bug Fixes and Workarounds
Compose AlertDialog Support
Support for capturing Alert Dialogs has been fixed, ensuring correct screenshot display.
captureScreenRoboImage(), which merges all windows, is now used only when multiple windows are present. Thanks to @ashughes for reporting this and to @mhidaka and @hiroaki404 for bringing it to my attention at a Japan Android testing event.Workaround for Overlap Handling for SDK 35 Compose Screenshots
Problem
When updating to SDK 35 and using the default theme, the ActionBar is included in screenshots, leading to overlap when using
createComposeRule(). This occurs becausecreateComposeRule()uses the default theme by default. Thank you for letting me know about this, @keyboardsurfer!<img width=400 src=https://github.com/user-attachments/assets/ba5f29ae-24bb-48f9-aa27-f335f80b784f />
I have filed an issue for this: https://issuetracker.google.com/issues/383368165
Why this happens
SDK 35 enforces edge-to-edge display, which means it does not provide automatic padding for the ActionBar.
How Roborazzi currently workarounds this
Roborazzi now automatically hides the ActionBar when taking screenshots on SDK 35 and higher. This functions similarly to
view.getActivity()?.actionBar?.hide(). However, this workaround may cause performance issues and should not be relied upon. Roborazzi outputs warning logs with alternative suggestions. Thank you to @sergio-sastre for advising on this workaround!If you need to include the ActionBar in screenshots, Roborazzi provides a flag,
roborazzi.compose.actionbar.overlap.fix=false, that can be added to yourgradle.propertiesfile.What should we do?
A permanent solution will likely require changes from Google. In the meantime, adding
<application android:theme="@​style/android:Theme.Material.Light.NoActionBar" />to the module'ssrc/test/AndroidManifest.xmlfile changes the Activity's default theme and resolves the issue. Thank you to @mattinger for finding this!#598 (comment)
Stabilized Output for Dump Screenshots
Thanks to @siarhei-luskanau for contributing an improvement that reduces unnecessary diffs for the Roborazzi dump feature.
New Features
Add
inspectionMode()for Compose PreviewsThanks to @YusukeMoriJapan's contribution,
inspectionMode()is now available inRoborazziComposeOptions. This is particularly useful when working with libraries that have specific preview implementations. This mode is off by default to maintain high fidelity.Here's how to enable it:
captureRoboImage( roborazziComposeOptions = RoborazziComposeOptions { inspectionMode(true) } ) { ... }What's Changed
New Contributors
Full Changelog: takahirom/roborazzi@1.36.0...1.37.0
v1.36.0Compare Source
Behavior Changes to
roborazzi.outputDir.set(file("somedir"))inbuild.gradlePreviously, when modifying
roborazzi.outputDir, such as setting it tosrc/screenshots, this option also affected the paths for comparison images, likefoo_compare.png. This behavior often caused issues, such as unintentionally saving comparison images to version control systems (e.g., Git). To address this, we have discontinued this behavior. Comparison images are now saved inbuild/outputs/roborazziby default, while the behavior for reference images remains unchanged.For users who wish to customize the path for comparison images, we have introduced a new option:
roborazzi.compare.outputDir.While I don't believe there are strong use cases for this, if you want to save the comparison images in a custom directory as you did before, you can specify
roborazzi.compare.outputDiras follows:roborazzi { outputDir.set(file("src/screenshots")) compare { outputDir.set(file("src/screenshots")) } }I believe this adjustment will be highly beneficial for most use cases involving changes to
outputDir.What's Changed
Full Changelog: takahirom/roborazzi@1.35.0...1.36.0
v1.35.0Compare Source
Add support for heightDp, widthDp, showBackground, and backgroundColor of Compose Preview parameters
We have introduced Experimental Compose Preview Support in 1.22.0, but it does not yet support all parameters of the
@Previewannotation. Thanks to @sergio-sastre 's pull request, the Experimental Compose Preview Support now includes support for heightDp, widthDp, showBackground, and backgroundColor.Introduce RoborazziComposeOptions
To accommodate the changes in preview parameters, we’ve made the API more flexible.
We’ve added the
RoborazziComposeOptionsparameter toComposablePreview<AndroidPreviewInfo>.captureRoboImage()and the composable function version,captureRoboImage{}. Previously, the API was limited; for example, you couldn’t access the ActivityScenario or the composable function directly. Now, you have full control over these components. Thank you for your code review @sergio-sastreHere’s an example of a custom option:
captureRoboImage( roborazziComposeOptions = RoborazziComposeOptions { // We have several options to configure the test environment. fontScale(2f) // We can also configure the activity scenario and the composable content. addOption( object : RoborazziComposeComposableOption, RoborazziComposeActivityScenarioOption { override fun configureWithActivityScenario(scenario: ActivityScenario<out Activity>) { scenario.onActivity { it.window.decorView.setBackgroundColor(Color.BLUE) } } override fun configureWithComposable(content: @​Composable () -> Unit): @​Composable () -> Unit { return { Box(Modifier .padding(10.dp) .background(color = androidx.compose.ui.graphics.Color.Red) .padding(10.dp) ) { content() } } } } ) }, ) { Text("Hello Compose!") }Breaking Change:
fun ComposablePreview<AndroidPreviewInfo>.applyToRobolectricConfiguration()is now deprecated and marked as an errorAs part of our updates to how composables are configured, the
applyToRobolectricConfiguration()function is now deprecated and marked as an error. Instead, you can use one of the following alternatives:previewInfo.toRoborazziComposeOptions().apply(scenario, composeContent)ComposablePreview<AndroidPreviewInfo>.captureRoboImage(roborazziComposeOptions)We believe this feature is not widely used, and the migration should be straightforward. However, if you encounter any issues, please don’t hesitate to reach out.
Breaking Change: Composable
captureRoboImage{}Behavior ChangeWe intended to use a transparent background for the Compose
captureRoboImagefunction, but it was not applied due to Robolectric's resource merging mechanism. We have fixed this behavior; however, this change will result in altered screenshots. You can now specify the background in the newRoborazziComposeOptionsas we had previously.What's Changed
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) in timezone Asia/Seoul, 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.