takahirom / roborazzi

Make JVM Android integration test visible 🤖📸
https://takahirom.github.io/roborazzi/
Apache License 2.0
651 stars 24 forks source link

chore(deps): update plugin io.github.takahirom.roborazzi to v1.16.1 #370

Closed renovate[bot] closed 1 month ago

renovate[bot] commented 1 month ago

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
io.github.takahirom.roborazzi 1.0.0 -> 1.16.1 age adoption passing confidence

[!WARNING] Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

takahirom/roborazzi (io.github.takahirom.roborazzi) ### [`v1.16.1`](https://togithub.com/takahirom/roborazzi/releases/tag/1.16.1) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.16.0...1.16.1) ##### Bugfix We removed the setting for the test task's input directory in 1.16.0, but it caused incorrect results in the compare tests. Therefore, I reverted the changes to the test input directory. This bug is now covered by Roborazzi's integration tests. ##### What's Changed - Fix issue where input images are overwritten and add test by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/364](https://togithub.com/takahirom/roborazzi/pull/364) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.16.0...1.16.1 ### [`v1.16.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.16.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.15.0...1.16.0) ##### Improvements - [@​lukas-mercari](https://togithub.com/lukas-mercari) informed me that we can optimize our build-cache strategy by eliminating outdated cache invalidation logic. With this adjustment, Roborazzi's integration test time was reduced from 10 minutes to 6 minutes by utilizing caches. Thanks for the excellent improvement suggestion. This might also help other users' projects. Roborazzi's integration tests cover several use cases, but if you encounter any issues related to caching, please let me know. - We have been supporting iOS since the previous version of Roborazzi and want to share code with the iOS sourceset as much as possible. Therefore, we migrated from Gson to Kotlinx.serialization 1.6.3. Thank you for your contribution, [@​sanao1006](https://togithub.com/sanao1006) - Roborazzi has been supporting accessibility dumps for Android, and we have now added the capability to check the disabled status within these dumps. Thank you for your contribution, [@​lukas-mercari](https://togithub.com/lukas-mercari) ! image ##### What's Changed * Remove unneeded cache invalidation by @​takahir[https://github.com/takahirom/roborazzi/pull/362](https://togithub.com/takahirom/roborazzi/pull/362)ll/362 * Include Disabled semantic property in accessibility explanation by @​lukas-merca[https://github.com/takahirom/roborazzi/pull/361](https://togithub.com/takahirom/roborazzi/pull/361)ll/361 * [Docs] Add "Why do my screenshot tests fail inconsistently across different operating systems" section by @​takahir[https://github.com/takahirom/roborazzi/pull/353](https://togithub.com/takahirom/roborazzi/pull/353)ll/353 * Migrate from Gson to KotlinX.Serialization by @​sanao10[https://github.com/takahirom/roborazzi/pull/350](https://togithub.com/takahirom/roborazzi/pull/350)ll/350 * [Sample] fix(deps): update androidx.navigation to v2.7.7 by @​renova[https://github.com/takahirom/roborazzi/pull/337](https://togithub.com/takahirom/roborazzi/pull/337)ll/337 * [Sample] fix(deps): update dependency androidx.compose.material3:material3 to v1.2.1 by @​renova[https://github.com/takahirom/roborazzi/pull/341](https://togithub.com/takahirom/roborazzi/pull/341)ll/341 * [CI] chore(deps): update gradle/gradle-build-action action to v2.12.0 by @​renova[https://github.com/takahirom/roborazzi/pull/356](https://togithub.com/takahirom/roborazzi/pull/356)ll/356 **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.15.0...1.16.0 ### [`v1.15.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.15.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.14.0...1.15.0) ##### Improvements - Resolved a Race Condition in Roborazzi Gradle Integration Tests: In version 1.14.0, we identified an intermittent issue where images from Roborazzi did not always appear in the output directory during certain test scenarios, particularly when test results were cached. Despite efforts to resolve this in 1.14.0, the issue persisted due to its elusive nature. In this release, we have successfully addressed this problem, ensuring that images are now consistently placed in the output directory under similar conditions. This improvement has been verified through our integration tests. This issue may occur in user projects, so we recommend updating to this version. We continue to refine our testing processes to prevent similar issues in future releases. ##### What's Changed - Update CompileSdk 34 by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/344](https://togithub.com/takahirom/roborazzi/pull/344) - Add debug code for flaky test by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/346](https://togithub.com/takahirom/roborazzi/pull/346) - Fix issue where finalizedTask is skipped unexpectedly by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/347](https://togithub.com/takahirom/roborazzi/pull/347) - Improve performance for race condition workaround by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/348](https://togithub.com/takahirom/roborazzi/pull/348) - Improve performance for race condition workaround2 by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/349](https://togithub.com/takahirom/roborazzi/pull/349) - \[CI]Pin dependencies by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/329](https://togithub.com/takahirom/roborazzi/pull/329) - \[CI]Update actions/checkout action to v3.6.0 by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/334](https://togithub.com/takahirom/roborazzi/pull/334) - \[CI]Update actions/setup-java action to v3.13.0 by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/335](https://togithub.com/takahirom/roborazzi/pull/335) - \[CI]Update dawidd6/action-download-artifact action to v2.28.0 by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/338](https://togithub.com/takahirom/roborazzi/pull/338) - \[Sample]Update dependency androidx.appcompat:appcompat to v1.6.1 by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/339](https://togithub.com/takahirom/roborazzi/pull/339) - \[Sample]Update dependency androidx.constraintlayout:constraintlayout to v2.1.4 by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/330](https://togithub.com/takahirom/roborazzi/pull/330) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.14.0...1.15.0 ### [`v1.14.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.14.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.13.0...1.14.0) ##### Bug fixes Cache-related Flakiness in Comparison Results: We've identified and resolved an intermittent issue where cached data could sometimes prevent users from seeing comparison results in Roborazzi. [https://github.com/takahirom/roborazzi/pull/323](https://togithub.com/takahirom/roborazzi/pull/323) ##### What's Changed - \[CI]Configure Renovate by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/317](https://togithub.com/takahirom/roborazzi/pull/317) - \[CI]Pin JetBrains/writerside-github-action action to [`5a6920d`](https://togithub.com/takahirom/roborazzi/commit/5a6920d) by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/318](https://togithub.com/takahirom/roborazzi/pull/318) - \[CI]Update actions/checkout digest to [`0ad4b8f`](https://togithub.com/takahirom/roborazzi/commit/0ad4b8f) by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/319](https://togithub.com/takahirom/roborazzi/pull/319) - Update composeMultiplatform to v1.6.2 by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/321](https://togithub.com/takahirom/roborazzi/pull/321) - \[Test]Update dependency com.ashampoo:kim to v0.17.7 by [@​renovate](https://togithub.com/renovate) in [https://github.com/takahirom/roborazzi/pull/322](https://togithub.com/takahirom/roborazzi/pull/322) - Fix issue where cache restoration fails by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/323](https://togithub.com/takahirom/roborazzi/pull/323) - \[Test]fix typo in RoborazziGradleProject.kt by [@​sanao1006](https://togithub.com/sanao1006) in [https://github.com/takahirom/roborazzi/pull/325](https://togithub.com/takahirom/roborazzi/pull/325) - \[CI]Remove renovate rule by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/328](https://togithub.com/takahirom/roborazzi/pull/328) ##### New Contributors - [@​renovate](https://togithub.com/renovate) made their first contribution in [https://github.com/takahirom/roborazzi/pull/317](https://togithub.com/takahirom/roborazzi/pull/317) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.13.0...1.14.0 ### [`v1.13.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.13.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.12.0...1.13.0) ##### Add experimental, minimal support for iOS in Compose Multiplatform Roborazzi has supported Compose Desktop, but we hadn't yet supported iOS, which could be a major use case for Compose Multiplatform. Therefore, I have added support for iOS. Now, you can record, compare, and verify just as you would with Android support. https://takahirom.github.io/roborazzi/compose-multiplatform.html#experimental-feature-ios-support ![ios_button_compare](https://togithub.com/takahirom/roborazzi/assets/1386930/2d7a8faf-f57f-4543-bade-b1aef82ed15a) However, Roborazzi is fundamentally based on the JVM. Currently, we offer only minimal features. If you are interested in helping to improve these features, please take a look at these issues: [https://github.com/takahirom/roborazzi/issues/302](https://togithub.com/takahirom/roborazzi/issues/302) [https://github.com/takahirom/roborazzi/issues/305](https://togithub.com/takahirom/roborazzi/issues/305) ##### Changes Affecting Existing Support To support iOS, we have made some dependency changes for Android and Compose Desktop. I believe these changes will not affect existing behavior. However, if you notice anything, please let me know. All Kotlin: 1.8.22 -> 1.9.21 dropbox/differ: 0.0.1 -> 0.0.2 ##### Desktop Compose Version Compose Multiplatform: 1.4.3 -> 1.6.1 ##### What's Changed - Add Minimal Compose Multiplatform iOS Support by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/301](https://togithub.com/takahirom/roborazzi/pull/301) - \[docs]Fix docs page by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/303](https://togithub.com/takahirom/roborazzi/pull/303) - \[docs]Fix docs by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/304](https://togithub.com/takahirom/roborazzi/pull/304) - Add roborazzi-painter ios file for building klib by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/306](https://togithub.com/takahirom/roborazzi/pull/306) - \[CI]Fix false positive diff in Roborazzi CI by using the same platform for store and compare by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/307](https://togithub.com/takahirom/roborazzi/pull/307) - Remove unneeded jvm form compose ios by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/308](https://togithub.com/takahirom/roborazzi/pull/308) - Fix task and fix ios recording by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/310](https://togithub.com/takahirom/roborazzi/pull/310) - Fix iOS recording path by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/311](https://togithub.com/takahirom/roborazzi/pull/311) - Fix iOS golden path and report time logic by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/312](https://togithub.com/takahirom/roborazzi/pull/312) - Fix iOS comparison logic by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/313](https://togithub.com/takahirom/roborazzi/pull/313) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.12.0...1.13.0 ### [`v1.12.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.12.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.11.0...1.12.0) ### Bug Fixes - Fixed an issue where recorded images with a transparent background and a scaling option (e.g., 0.5F) were always detected as changes. Thanks for reporting this, [@​yongsuk44](https://togithub.com/yongsuk44)! - Addressed a bug related to `robolectric.screenshot.hwrdr.native` introduced in [Robolectric 4.12](https://togithub.com/takahirom/roborazzi/issues/296#issuecomment-2049440301), which caused unwanted shadows when using Compose's `roboCaptureImage{}` with this new option. This has now been corrected by [@​lukas-mercari](https://togithub.com/lukas-mercari). Thanks for your contribution! #### What's Changed - Hide action bar to avoid shadow creeping into images captured using captureRoboImage by [@​lukas-mercari](https://togithub.com/lukas-mercari) in [https://github.com/takahirom/roborazzi/pull/283](https://togithub.com/takahirom/roborazzi/pull/283) - \[CI]Compare with base branch by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/284](https://togithub.com/takahirom/roborazzi/pull/284) - update robolectric version from 4.10.3 to 4.12.1 by [@​sanao1006](https://togithub.com/sanao1006) in [https://github.com/takahirom/roborazzi/pull/289](https://togithub.com/takahirom/roborazzi/pull/289) - Add roundTransparentResizeCompose test by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/297](https://togithub.com/takahirom/roborazzi/pull/297) - Fix false positive issue in verification of scaled transparent images by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/298](https://togithub.com/takahirom/roborazzi/pull/298) #### New Contributors - [@​lukas-mercari](https://togithub.com/lukas-mercari) made their first contribution in [https://github.com/takahirom/roborazzi/pull/283](https://togithub.com/takahirom/roborazzi/pull/283) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.11.0...1.12.0 ### [`v1.11.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.11.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.10.1...1.11.0) ##### New feature In Roborazzi, if you specify outputDir in the Gradle settings, you can use [the build cache](https://togithub.com/takahirom/roborazzi?tab=readme-ov-file#q-my-tests-are-being-skipped-or-conversely-are-being-run-when-they-should-be-skipped-how-can-i-handle-caching-to-address-this). Now, Roborazzi passes the setting into the test. build.gradle roborazzi { outputDir = "src/your/screenshot/folder" } [gradle.propeties](https://togithub.com/takahirom/roborazzi?tab=readme-ov-file#roborazzirecordfilepathstrategy) roborazzi.record.filePathStrategy=relativePathFromRoborazziContextOutputDirectory Test captureRoboImage() -> saved src/your/screenshot/folder/package.class.method.png captureRoboImage("test.png") -> saved src/your/screenshot/folder/test.png ##### What's Changed - Add helpful error message for class cast exception by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/267](https://togithub.com/takahirom/roborazzi/pull/267) - Use 'verify' task when specifying both 'compare' and 'verify' by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/269](https://togithub.com/takahirom/roborazzi/pull/269) - Respect gradle build dir for reports by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/270](https://togithub.com/takahirom/roborazzi/pull/270) - Add "The images taken from Roborazzi seem broken" FAQ by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/277](https://togithub.com/takahirom/roborazzi/pull/277) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.10.1...1.11.0 ### [`v1.10.1`](https://togithub.com/takahirom/roborazzi/releases/tag/1.10.1) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.10.0...1.10.1) ##### Changes from 1.10.0 This release includes a bug fix for a Javascript error that prevented the HTML report from being displayed. ##### Changes from 1.9.0 ##### New experimental feature ##### Custom context data for images and reports Custom context data enables the addition of information to images and reports in Roborazzi's tests, which I believe is very important. For example, it can include the test class name of a screenshot or whether it is in dark mode. You can now add custom context data using RoborazziOptions, and Roborazzi will add the test class name metadata if you use RoborazziRule. If you have any opinions about this feature, please let me know at [https://github.com/takahirom/roborazzi/issues/257](https://togithub.com/takahirom/roborazzi/issues/257). Furthermore, this opens up possibilities with AI. Given that AI now possesses multimodal capabilities, it has become feasible for AI to process images. This feature was made possible thanks to [@​sanao1006](https://togithub.com/sanao1006) 's contribution of migrating from org.json to gson. ```kotlin onView(ViewMatchers.isRoot()) .captureRoboImage( roborazziOptions = RoborazziOptions( contextData = mapOf( "context_data_key" to "context_data_value" ) ) ) } ``` image ##### Important bug fix Gradle attempts to load the test cache whenever possible, but there was an issue where Roborazzi couldn't restore images from the cache. This release includes a fix for this problem. Thank you, [@​francescocervone](https://togithub.com/francescocervone), for reporting this issue. ##### What's Changed - \[CI]Escape branch name by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/253](https://togithub.com/takahirom/roborazzi/pull/253) - refactor: migrating from the `org.json` Library to `Gson` by [@​sanao1006](https://togithub.com/sanao1006) in [https://github.com/takahirom/roborazzi/pull/248](https://togithub.com/takahirom/roborazzi/pull/248) - doc: Add build.gradle.kts examples by [@​sanao1006](https://togithub.com/sanao1006) in [https://github.com/takahirom/roborazzi/pull/256](https://togithub.com/takahirom/roborazzi/pull/256) - Enable adding metadata to image by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/259](https://togithub.com/takahirom/roborazzi/pull/259) - Add contextdata tabs to HTML report by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/260](https://togithub.com/takahirom/roborazzi/pull/260) - Fix Roborazzi output cache by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/262](https://togithub.com/takahirom/roborazzi/pull/262) ##### New Contributors - [@​sanao1006](https://togithub.com/sanao1006) made their first contribution in [https://github.com/takahirom/roborazzi/pull/248](https://togithub.com/takahirom/roborazzi/pull/248) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.9.0...1.10.0 ### [`v1.10.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.10.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.9.0...1.10.0) ##### New experimental feature ##### Custom context data for images and reports Custom context data enables the addition of information to images and reports in Roborazzi's tests, which I believe is very important. For example, it can include the test class name of a screenshot or whether it is in dark mode. You can now add custom context data using RoborazziOptions, and Roborazzi will add the test class name metadata if you use RoborazziRule. If you have any opinions about this feature, please let me know at [https://github.com/takahirom/roborazzi/issues/257](https://togithub.com/takahirom/roborazzi/issues/257). Furthermore, this opens up possibilities with AI. Given that AI now possesses multimodal capabilities, it has become feasible for AI to process images. This feature was made possible thanks to [@​sanao1006](https://togithub.com/sanao1006) 's contribution of migrating from org.json to gson. ```kotlin onView(ViewMatchers.isRoot()) .captureRoboImage( roborazziOptions = RoborazziOptions( contextData = mapOf( "context_data_key" to "context_data_value" ) ) ) } ``` image ##### Important bug fix Gradle attempts to load the test cache whenever possible, but there was an issue where Roborazzi couldn't restore images from the cache. This release includes a fix for this problem. Thank you, [@​francescocervone](https://togithub.com/francescocervone), for reporting this issue. ##### What's Changed - \[CI]Escape branch name by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/253](https://togithub.com/takahirom/roborazzi/pull/253) - refactor: migrating from the `org.json` Library to `Gson` by [@​sanao1006](https://togithub.com/sanao1006) in [https://github.com/takahirom/roborazzi/pull/248](https://togithub.com/takahirom/roborazzi/pull/248) - doc: Add build.gradle.kts examples by [@​sanao1006](https://togithub.com/sanao1006) in [https://github.com/takahirom/roborazzi/pull/256](https://togithub.com/takahirom/roborazzi/pull/256) - Enable adding metadata to image by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/259](https://togithub.com/takahirom/roborazzi/pull/259) - Add contextdata tabs to HTML report by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/260](https://togithub.com/takahirom/roborazzi/pull/260) - Fix Roborazzi output cache by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/262](https://togithub.com/takahirom/roborazzi/pull/262) ##### New Contributors - [@​sanao1006](https://togithub.com/sanao1006) made their first contribution in [https://github.com/takahirom/roborazzi/pull/248](https://togithub.com/takahirom/roborazzi/pull/248) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.9.0...1.10.0 ### [`v1.9.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.9.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.8.0...1.9.0) ##### Announcement: Simplified Release Strategy for Roborazzi We're making some changes to our release strategy to enhance your experience. Moving forward, we will be streamlining our versioning system. **Instead of maintaining separate `alpha/rc/stable` versions, we will integrate experimental features directly into stable releases, marked with clear experimental annotations**. This approach aims to simplify updates and improve clarity while ensuring you still have access to the latest features and improvements. We value your input and experience. If you have any thoughts or feedback on this change, please feel free to share them with us on [GitHub Issue #​243](https://togithub.com/takahirom/roborazzi/issues/243). ##### New Experimental Features - **Introduction of `captureScreenRoboImage()` Function:** This function executes screenshot tests that include dialogs on the screen, offering an alternative to the conventional use of Espresso's ViewInteraction or Compose Test's SemanticsNodeInteraction captureRoboImage(). Thank you, [@​nelletto](https://togithub.com/nelletto), for bringing this issue with dialog screenshots to our attention. *Before:* ```kotlin onRoot().captureRoboImage() onView(isRoot()).captureRoboImage() ``` *After:* ```kotlin captureScreenRoboImage() ``` image - **RoborazziTaskType Property:** I developed Roborazzi to facilitate layout viewing during UI tests, addressing the limitations in Robolectric's layout visibility. Initially, Roborazzi couldn't support just viewing layouts during the verification task (roborazziVerifyDebug). Hence, I've introduced a feature allowing task type alteration during test executions. ```kotlin onView(ViewMatchers.isRoot()) .captureRoboImage( roborazziOptions = RoborazziOptions( taskType = roborazziSystemPropertyTaskType().convertVerifyingToComparing() ) ) ``` ##### Behavior Changes - Adjustments for Upcoming Robolectric Shadow Rendering Support: While Robolectric is in the process of introducing technical support for shadow rendering, Roborazzi is adapting its screenshot capture method accordingly. We're shifting towards using the PixelCopy class more extensively instead of relying solely on the View draw method. If you notice any issues with this change, please report them to us. Thank you, [@​sergio-sastre](https://togithub.com/sergio-sastre), for highlighting the advantages of using PixelCopy. ##### Bug Fixes - **Fixed Potential Memory Leak:** Addressed a memory leak issue occurring when using `compose captureRoboImage{}` multiple times within a single test. (Thanks for reporting this [@​vetoketju](https://togithub.com/vetoketju) ) - **Resolved File Path Duplication:** Corrected an issue where not specifying a file path with `relativePathFromRoborazziContextOutputDirectory` resulted in duplicated file paths, like `build/output/roborazzi/build/output/roborazzi/xxxx.png`. - Fixed a bug in window ordering for screenshots: Windows are now accurately layered by type for more reliable and consistent screenshot results. - Fixed the issue where captureScreenRoboImage() failed to capture Material3 Compose dialogs and bottom sheets. [@​marianeum](https://togithub.com/marianeum) Thank you for reporting this issue! - Resolved the issue causing comparison images to enlarge when using the scale option. ##### Others - **Documentation Enhancement:** Added comprehensive documentation using Writerside, a documentation tool from JetBrains. [Roborazzi Documentation](https://takahirom.github.io/roborazzi) Thank you, [@​timothyfroehlich](https://togithub.com/timothyfroehlich), [@​sergio-sastre](https://togithub.com/sergio-sastre), and [@​ZacSweers](https://togithub.com/ZacSweers), for your suggestions regarding documentation tools. - Thanks to [@​itochan](https://togithub.com/itochan)'s contribution, Roborazzi has moved to a version catalog, reduced unwanted dependencies and organized - Enhanced performance. - Fix Bug Causing Comparison Image to Enlarge and Enhance Performance by Avoiding Creation of Unnecessary Canvases - Use ComposeTestRule interface instead of concrete AndroidComposeTestRule class by [@​GisoBartels](https://togithub.com/GisoBartels) in [https://github.com/takahirom/roborazzi/pull/241](https://togithub.com/takahirom/roborazzi/pull/241) - Pass the default output directory setting from Gradle ##### What's Changed - Fix the issue of the file path being duplicated by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/214](https://togithub.com/takahirom/roborazzi/pull/214) - \[docs]Add Roborazzi documentation using Writerside by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/216](https://togithub.com/takahirom/roborazzi/pull/216) - \[docs]Fix path of document by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/217](https://togithub.com/takahirom/roborazzi/pull/217) - \[docs]Fix writerside errors by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/218](https://togithub.com/takahirom/roborazzi/pull/218) - \[docs]Fix markdown issue by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/219](https://togithub.com/takahirom/roborazzi/pull/219) - \[docs]Fix docs ARTIFACT name by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/220](https://togithub.com/takahirom/roborazzi/pull/220) - \[docs]Add product-web-url to buildprofiles.xml by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/221](https://togithub.com/takahirom/roborazzi/pull/221) - \[docs]Tweak docs by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/222](https://togithub.com/takahirom/roborazzi/pull/222) - \[docs]Add template by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/223](https://togithub.com/takahirom/roborazzi/pull/223) - Add RoborazziTaskType property to RoborazziOptions by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/211](https://togithub.com/takahirom/roborazzi/pull/211) - Add captureScreenRoboImage for capturing screen images, including dialogs by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/225](https://togithub.com/takahirom/roborazzi/pull/225) - \[docs]Fix document tag by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/226](https://togithub.com/takahirom/roborazzi/pull/226) - Add activityScenario.close() to prevent activity leak by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/228](https://togithub.com/takahirom/roborazzi/pull/228) - Fix Window Stacking Order Issue by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/230](https://togithub.com/takahirom/roborazzi/pull/230) - Migrate to version catalog by [@​itochan](https://togithub.com/itochan) in [https://github.com/takahirom/roborazzi/pull/231](https://togithub.com/takahirom/roborazzi/pull/231) - Update dropbox differ and remove bom dependency and remove unneeded junit dependency by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/234](https://togithub.com/takahirom/roborazzi/pull/234) - Update the org.json library to patch the vulnerability by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/235](https://togithub.com/takahirom/roborazzi/pull/235) - Fix CaptureResultTest and Add plan test workflow by [@​momomomo111](https://togithub.com/momomomo111) in [https://github.com/takahirom/roborazzi/pull/238](https://togithub.com/takahirom/roborazzi/pull/238) - Use View draw method to capture for Compose Material3 by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/237](https://togithub.com/takahirom/roborazzi/pull/237) - Fix Bug Causing Comparison Image to Enlarge and Enhance Performance by Avoiding Creation of Unnecessary Canvases by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/239](https://togithub.com/takahirom/roborazzi/pull/239) - Use ComposeTestRule interface instead of concrete AndroidComposeTestRule class by [@​GisoBartels](https://togithub.com/GisoBartels) in [https://github.com/takahirom/roborazzi/pull/241](https://togithub.com/takahirom/roborazzi/pull/241) - Pass the default output directory setting from Gradle by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/249](https://togithub.com/takahirom/roborazzi/pull/249) ##### New Contributors - [@​itochan](https://togithub.com/itochan) made their first contribution in [https://github.com/takahirom/roborazzi/pull/231](https://togithub.com/takahirom/roborazzi/pull/231) - [@​momomomo111](https://togithub.com/momomomo111) made their first contribution in [https://github.com/takahirom/roborazzi/pull/238](https://togithub.com/takahirom/roborazzi/pull/238) - [@​GisoBartels](https://togithub.com/GisoBartels) made their first contribution in [https://github.com/takahirom/roborazzi/pull/241](https://togithub.com/takahirom/roborazzi/pull/241) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.8.0...1.9.0 ### [`v1.8.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.8.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.7.0...1.8.0) ##### Announcement: Simplified Release Strategy for Roborazzi We're making some changes to our release strategy to enhance your experience. Moving forward, we will be streamlining our versioning system. **Instead of maintaining separate `alpha/rc/stable` versions, we will integrate experimental features directly into stable releases, marked with clear experimental annotations**. This approach aims to simplify updates and improve clarity while ensuring you still have access to the latest features and improvements. We value your input and experience. If you have any thoughts or feedback on this change, please feel free to share them with us on [GitHub Issue #​243](https://togithub.com/takahirom/roborazzi/issues/243). ##### Fix from 1.8.0-rc-1 - Use ComposeTestRule interface instead of concrete AndroidComposeTestRule class. [@​GisoBartels](https://togithub.com/GisoBartels), Thank you for your code contribution! [https://github.com/takahirom/roborazzi/pull/241](https://togithub.com/takahirom/roborazzi/pull/241)/241 ##### New Feature from 1.7 ##### Introducing the experimental `roboOutputName()` function Streamline the customization of Roborazzi image file names. This utility is especially effective in parameterized tests, allowing for dynamic file naming based on test parameters. For an example of its usage, see the snippet below, which demonstrates generating screenshots before and after UI interactions. ```kotlin @​Test fun launchScreen() { // Generates a file named "org.your.pkg.TestClassName.launchScreen_before.png" onView(ViewMatchers.isRoot()).captureRoboImage("${roboOutputName()}_before.png") // Replace with specific actions, e.g., onView(xxx).performClick() // Generates a file named "org.your.pkg.TestClassName.launchScreen_after.png" onView(ViewMatchers.isRoot()).captureRoboImage("${roboOutputName()}_after.png") } ``` Tailor your file naming convention in `gradle.properties` for even more control, such as omitting the package name. Set `roborazzi.record.namingStrategy=testClassAndMethod` for a streamlined naming pattern. Learn more: [Roborazzi Documentation](https://togithub.com/takahirom/roborazzi#roborazzirecordnamingstrategy) ##### Enhanced Comparison with Grid and Labels 🚀 This update introduces a new grid and label feature, making visual comparisons more intuitive and effective. The grid layout provides a structured view, while labels offer clear identification, streamlining the testing process. You can use the old style by setting ComparisonStyle to ComparisonStyle.Simple in RoborazziOptions ```kotlin data class CompareOptions( ... val comparisonStyle: ComparisonStyle = ComparisonStyle.Grid(), ) { @​ExperimentalRoborazziApi sealed interface ComparisonStyle { @​ExperimentalRoborazziApi data class Grid( val bigLineSpaceDp: Int? = 16, val smallLineSpaceDp: Int? = 4, val hasLabel: Boolean = true ) : ComparisonStyle object Simple : ComparisonStyle } ``` ![image](https://togithub.com/takahirom/roborazzi/assets/1386930/a792a49e-b401-4200-800c-938d7525cf80) ##### Make Roborazzi's ImageComparator customizable. You can now modify the ImageComparator using CompareOptions.imageComparator. ##### Behavior changes 🔧 Set the default value of CompareOptions.changeThreshold to zero. This means it will detect even a single pixel change. ##### What's Changed - Make Roborazzi's ImageComparator customizable by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/182](https://togithub.com/takahirom/roborazzi/pull/182) - Set Default Value of CompareOptions.changeThreshold to Zero by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/183](https://togithub.com/takahirom/roborazzi/pull/183) - Fixed a bug where options set via RoborazziRule were ignored by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/187](https://togithub.com/takahirom/roborazzi/pull/187) - Fix the issue of keeping the previous test reports by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/189](https://togithub.com/takahirom/roborazzi/pull/189) - \[CI]Speed up integration tests by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/190](https://togithub.com/takahirom/roborazzi/pull/190) - Refactor processOutputImageAndReport by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/191](https://togithub.com/takahirom/roborazzi/pull/191) - Fix the bug where the test reports are not updated when the tests fail by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/194](https://togithub.com/takahirom/roborazzi/pull/194) - Add a document about experimental output parameter by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/195](https://togithub.com/takahirom/roborazzi/pull/195) - Migrate Robolectric to gradle version catalog by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/196](https://togithub.com/takahirom/roborazzi/pull/196) - Add default parameter for CompareOptions.resultValidator by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/203](https://togithub.com/takahirom/roborazzi/pull/203) - Enhance Flexibility with Custom File Naming in Roborazzi via roboOutputName() Function by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/205](https://togithub.com/takahirom/roborazzi/pull/205) - Fix the issue where errors are ignored and occur when changing the size during GIF recording. by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/210](https://togithub.com/takahirom/roborazzi/pull/210) - Add labels and grid lines for the comparison image by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/206](https://togithub.com/takahirom/roborazzi/pull/206) - Fix simple comparison image by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/213](https://togithub.com/takahirom/roborazzi/pull/213) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.7.0...1.8.0 ### [`v1.7.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.7.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.6.0...1.7.0) ##### New Features 🚀 - HTML Report You can now view the report, which includes images, when Roborazzi tasks are completed. The report is located at `build/reports/roborazzi/index.html`. image - Added `roborazzi.record.filePathStrategy` option to customize image output location when using `captureRoboImage()`. The image will be saved relative to `RoborazziRule`'s `outputDirectoryPath`. For example: ```properties roborazzi.record.filePathStrategy=relativePathFromRoborazziContextOutputDirectory ``` ![image](https://togithub.com/takahirom/roborazzi/assets/1386930/0bb37436-685d-4fea-8a3b-51479d63eb54) Special thanks to [@​timothyfroehlich](https://togithub.com/timothyfroehlich) for raising issues and providing valuable code reviews that significantly contributed to this release. ##### Breaking Changes ⚠️ - To support the new HTML report feature, we've modified some options related to the existing JSON report. Previously, the JSON report was solely for the `compare` task, but it now covers all Roborazzi tasks. Therefore, we've updated the option names accordingly. Example: Change from `ReportOptions.compareOptions.roborazziCompareReporter` to `RoborazziOptions.reportOptions.captureResultReporter`, and update the corresponding reporter classes. - Renamed classes associated with CaptureResultReporter for consistency, which were introduced with version 1.7.0-alpha-1. ##### What's Changed - Add DroidKaigi app as example in README by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/143](https://togithub.com/takahirom/roborazzi/pull/143) - Fix a typo in the readme by [@​timothyfroehlich](https://togithub.com/timothyfroehlich) in [https://github.com/takahirom/roborazzi/pull/144](https://togithub.com/takahirom/roborazzi/pull/144) - Add FAQ by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/145](https://togithub.com/takahirom/roborazzi/pull/145) - Add more detailed explanation for category filter by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/146](https://togithub.com/takahirom/roborazzi/pull/146) - Refactor results json by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/154](https://togithub.com/takahirom/roborazzi/pull/154) - Add HTML report by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/155](https://togithub.com/takahirom/roborazzi/pull/155) - Update json library to fix vulnerabilities by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/158](https://togithub.com/takahirom/roborazzi/pull/158) - Refactor reporter in RoborazziOptions by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/159](https://togithub.com/takahirom/roborazzi/pull/159) - Rename roborazziReporter with captureResultReporter by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/160](https://togithub.com/takahirom/roborazzi/pull/160) - Fix the test task that fails when there are no Roborazzi tests by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/162](https://togithub.com/takahirom/roborazzi/pull/162) - Add a document to clarify the output destination by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/163](https://togithub.com/takahirom/roborazzi/pull/163) - \[Proposal] Add anchors to html report by [@​jeprubio](https://togithub.com/jeprubio) in [https://github.com/takahirom/roborazzi/pull/168](https://togithub.com/takahirom/roborazzi/pull/168) - Update SDK Warning to API 28+ by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/165](https://togithub.com/takahirom/roborazzi/pull/165) - Show images in bottom sheet modal by [@​jeprubio](https://togithub.com/jeprubio) in [https://github.com/takahirom/roborazzi/pull/169](https://togithub.com/takahirom/roborazzi/pull/169) - Refactor around report by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/170](https://togithub.com/takahirom/roborazzi/pull/170) - Add roborazzi.record.filePathStrategy gradle.properties property for dynamic output path resolution by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/172](https://togithub.com/takahirom/roborazzi/pull/172) - Resolve the FileNotFoundException Issue with RoborazziPlugin by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/175](https://togithub.com/takahirom/roborazzi/pull/175) ##### New Contributors - [@​timothyfroehlich](https://togithub.com/timothyfroehlich) made their first contribution in [https://github.com/takahirom/roborazzi/pull/144](https://togithub.com/takahirom/roborazzi/pull/144) - [@​jeprubio](https://togithub.com/jeprubio) made their first contribution in [https://github.com/takahirom/roborazzi/pull/168](https://togithub.com/takahirom/roborazzi/pull/168) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.6.0...1.7.0-rc-1 ### [`v1.6.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.6.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.5.0...1.6.0) ##### Experimental feature: Compose Desktop support Roborazzi supports Compose Desktop. You can use Roborazzi with Compose Desktop as follows: Gradle settings ```kotlin plugins { kotlin("multiplatform") id("org.jetbrains.compose") id("io.github.takahirom.roborazzi") } kotlin { // You can use your source set name jvm("desktop") sourceSets { ... val desktopTest by getting { dependencies { implementation(project("io.github.takahirom.roborazzi:roborazzi-compose-desktop:[1.6.0-alpha-2 or higher]")) implementation(kotlin("test")) } } ... // Roborazzi Desktop support uses Context Receivers tasks.withType().configureEach { kotlinOptions { freeCompilerArgs += "-Xcontext-receivers" } } ``` Test target Composable function ```kotlin @​Composable fun App() { var text by remember { mutableStateOf("Hello, World!") } MaterialTheme { Button( modifier = Modifier.testTag("button"), onClick = { text = "Hello, Desktop!" }) { Text( style = MaterialTheme.typography.h2, text = text ) } } } ``` Test with Roborazzi ```kotlin class MainKmpTest { @​OptIn(ExperimentalTestApi::class) @​Test fun test() = runDesktopComposeUiTest { setContent { App() } val roborazziOptions = RoborazziOptions( recordOptions = RoborazziOptions.RecordOptions( resizeScale = 0.5 ), compareOptions = RoborazziOptions.CompareOptions( changeThreshold = 0F ) ) onRoot().captureRoboImage(roborazziOptions = roborazziOptions) onNodeWithTag("button").performClick() onRoot().captureRoboImage(roborazziOptions = roborazziOptions) } } ``` Then, you can run the Gradle tasks for Desktop Support, just like you do for Android Support. ./gradlew recordRoborazzi[SourceSet] ./gradlew recordRoborazziDesktop ./gradlew compareRoborazziDesktop ./gradlew verifyRoborazziDesktop ... If you use the Kotlin JVM plugin, the task will be `recordRoborazzi**Jvm**`. The sample image module/build/outputs/roborazzi/com.\[package].MainKmpTest.test.png ![MainJvmTest test](https://togithub.com/takahirom/roborazzi/assets/1386930/41287c29-26ae-4539-b387-de570ae3f2b3) module/build/outputs/roborazzi/com.\[package].MainKmpTest.test\_2.png ![MainJvmTest test\_2](https://togithub.com/takahirom/roborazzi/assets/1386930/2edc828c-6fd8-4a9a-8f3d-b0e7baa85f0d) ##### Update Library Versions We had to use [`targetHierarchy.custom`](https://kotlinlang.org/docs/multiplatform-hierarchy.html#adjust-the-resulting-hierarchy) to create common JVM source sets between Android and JVM. Therefore, Roborazzi has updated Kotlin from version 1.7.20 to 1.8.22. ##### What's Changed - Experimental desktop by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/137](https://togithub.com/takahirom/roborazzi/pull/137) - Supports KMP plugin by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/138](https://togithub.com/takahirom/roborazzi/pull/138) - Fix the issue where Roborazzi changes the timing of the configuration by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/141](https://togithub.com/takahirom/roborazzi/pull/141) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.5.0...1.6.0 ### [`v1.5.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.5.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.4.0...1.5.0) ##### Changes from 1.4.x ##### Breaking Change ⚠️ When specifying the file path for output, the baseline (golden or reference) images will be saved at the specified location. However, images such as \*\_compare.png will now be saved in a different directory, specifically under build/outputs/roborazzi. This update, spotted by [@​simonwalter](https://togithub.com/simonwalter), helps prevent accidental commits of \*\_compare.png images to GitHub by users who only wish to save the baseline images. Users have the ability to revert the changed path by utilizing the outputDirectoryPath setting in RoborazziOptions' CompareOptions.For more information, check out the summar[https://github.com/takahirom/roborazzi/issues/125#issuecomment-1646518770](https://togithub.com/takahirom/roborazzi/issues/125#issuecomment-1646518770)70 ##### Bug Fix 🛠 We have addressed an issue where tasks might unexpectedly be skipped. As a solution, we have implemented an experimental feature that utilizes Gradle's output. ##### What's Changed - Alter the default output directory for comparison images and incorporate outputDirectoryPath into the comparison options by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/128](https://togithub.com/takahirom/roborazzi/pull/128) - Add message in exception if image was not found by [@​blackbracken](https://togithub.com/blackbracken) in [https://github.com/takahirom/roborazzi/pull/129](https://togithub.com/takahirom/roborazzi/pull/129) - Fix unexpected task skip using `doNotCacheIf` by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/130](https://togithub.com/takahirom/roborazzi/pull/130) - Extract RoborazziOptions for readability by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/132](https://togithub.com/takahirom/roborazzi/pull/132) - Improve report message by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/133](https://togithub.com/takahirom/roborazzi/pull/133) - Fix crash when the component size is zero and improve performance by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/134](https://togithub.com/takahirom/roborazzi/pull/134) - Fix condition of bitmap crop by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/135](https://togithub.com/takahirom/roborazzi/pull/135) ##### New Contributors - [@​blackbracken](https://togithub.com/blackbracken) made their first contribution in [https://github.com/takahirom/roborazzi/pull/129](https://togithub.com/takahirom/roborazzi/pull/129) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.4.0-rc-1...1.5.0-rc-1 ### [`v1.4.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.4.0) [Compare Source](https://togithub.com/takahirom/roborazzi/compare/1.3.0...1.4.0) ⚠️ Breaking Changes from 1.3.x This release introduces several changes to RoborazziRule. - **Attention: CaptureType.None is now the default for RoborazziRule, disabling automatic captures. Use RoborazziRule with CaptureType.LastImage() to restore the previous automatic capture functionality.** For more details, please refer to this is[https://github.com/takahirom/roborazzi/issues/106](https://togithub.com/takahirom/roborazzi/issues/106)/106 - CaptureTypes has been converted into a class. As a result, you now need to call the constructor. Change `RoborazziRule.CaptureType.Gif` to `RoborazziRule.CaptureType.Gif()`. - Gradle tasks (such as recordRoborazziDebug) will now take precedence over system properties (such as roborazzi.test.record=true). I believe this behavior is more intuitive. 🆕 New Features - Set `RoborazziRule.Option.xxxx` as the default file strategy for the `captureRoboImage()` function. For example, `outputFileProvider` will now be used when invoking `captureRoboImage()`. If you haven't specified an outputFileProvider, the behavior remains unchanged from previous versions. ##### What's Changed - Add support for default file path setting by RoborazziRule and refactor RoborazziRule by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/105](https://togithub.com/takahirom/roborazzi/pull/105) - Update options in README by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/107](https://togithub.com/takahirom/roborazzi/pull/107) - RoborazziOption can now be set in RoborazziRule and used in captureRoboImage() by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/108](https://togithub.com/takahirom/roborazzi/pull/108) - Set RoborazziRule.Option.outputFileProvider as the default file strategy for captureRoboImage() by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/109](https://togithub.com/takahirom/roborazzi/pull/109) - Add integration test by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/110](https://togithub.com/takahirom/roborazzi/pull/110) - Use CaptureType.None as the default option for RoborazziRule by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/111](https://togithub.com/takahirom/roborazzi/pull/111) - Fix the bug that outputFileProvider isn't applied by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/112](https://togithub.com/takahirom/roborazzi/pull/112) - \[non api change]Rename folder to directory by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/113](https://togithub.com/takahirom/roborazzi/pull/113) - Add warning that the config under SDK 26 may not function properly and update Robolectric by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/115](https://togithub.com/takahirom/roborazzi/pull/115) - Fix issue test task is skippped unexpectedly by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/116](https://togithub.com/takahirom/roborazzi/pull/116) - Modernize AGP integration by [@​ZacSweers](https://togithub.com/ZacSweers) in [https://github.com/takahirom/roborazzi/pull/87](https://togithub.com/takahirom/roborazzi/pull/87) - Fix issue system properties take precedence over gradle task by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/118](https://togithub.com/takahirom/roborazzi/pull/118) - Generate compare report even if we use system property by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/119](https://togithub.com/takahirom/roborazzi/pull/119) - Fix the compare task with system property doesn't output the summary report by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/120](https://togithub.com/takahirom/roborazzi/pull/120) - Add document about default unit test by [@​takahirom](https://togithub.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/122](https://togithub.com/takahirom/roborazzi/pull/122) ##### New Contributors - [@​ZacSweers](https://togithub.com/ZacSweers) made their first co

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.

renovate[bot] commented 1 month ago

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (1.16.1). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.