Skip to content
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

chore(deps): update test.roborazzi to v1.29.0 #829

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Aug 11, 2023

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
io.github.takahirom.roborazzi 1.3.0 -> 1.29.0 age adoption passing confidence
io.github.takahirom.roborazzi:roborazzi-compose 1.3.0 -> 1.29.0 age adoption passing confidence
io.github.takahirom.roborazzi:roborazzi-junit-rule 1.3.0 -> 1.29.0 age adoption passing confidence
io.github.takahirom.roborazzi:roborazzi 1.3.0 -> 1.29.0 age adoption passing confidence

Release Notes

takahirom/roborazzi (io.github.takahirom.roborazzi)

v1.29.0

Compare Source

Bug Fixes

We introduced an image diff percentage in the report. However, when the screenshot's image size changes, there was an issue causing Roborazzi to crash. We have added a test for image size changes and fixed this problem. Thank you for reporting this. @​Daiji256

Breaking Change

We are migrating our codebase to Kotlin Multiplatform (KMP). Roborazzi uses dropbox/differ to calculate image diffs. Thanks to @​eyedol 's contribution, differ now supports KMP for iOS, so we updated dropbox/differ. Some KMP migration is still needed for iOS support.

What's Changed

Full Changelog: takahirom/roborazzi@1.28.0...1.29.0

v1.28.0

Compare Source

Breaking changes

Now we are using gradlePropertiesPrefixedBy to support Gradle Isolated Projects in the Roborazzi Gradle Plugin. This API requires Gradle 8.0. Gradle 8.0 was released early last year, and most projects I know use 8.0 or higher, so Roborazzi is going to use this API. If anyone can't use this, please let me know.
@​trevjonez, thank you for telling me what we need to do to support this.
Currently, we aren't able to ensure compatibility with Gradle Isolated Projects, but this could bring some progress.

Adapting to the new ComposablePreviewScanner version

We are using ComposablePreviewScanner for Compose Preview Support. The ComposablePreviewScanner is now on Maven Central 🎉 and the group name of the libraries has changed. We have adapted to the new version and don't show errors when not using Jitpack and using the new packages.

What's Changed

Full Changelog: takahirom/roborazzi@1.27.0...1.28.0

v1.27.0

Compare Source

Bugfix for Compose Preview Support

As Compose Preview Support don't automatically add dependencies to maintain a single source of truth for user projects, they should show warnings when the required dependencies are missing. However, the warnings were not shown, so I fixed this issue. Thanks for reporting this! @​kktaro

Diff Percentage to Report File

@​vladcudoidem added the diff percentage to report files. You can use it in your CI workflow or project statistics.

The Roborazzi AI feature prototype is ongoing. 🤖

This version does not include it, but I've implemented a prototype for using AI for assertions. If you are interested, please check it out and leave feedback.
https://github.com/takahirom/roborazzi/pull/491

What's Changed
New Contributors

Full Changelog: takahirom/roborazzi@1.26.0...1.27.0

v1.26.0

Compare Source

Bugfix for iOS Compose Roborazzi

The iOS Compose Roborazzi has broken. The reason is that GitHub's macos-latest has switched to an ARM-based CPU, and our tests have been running X64Test. We couldn't check the status of iOS Roborazzi. We have fixed this bug that prevented us from writing the test result JSON. Special thanks to @​eyedol for the prompt fix!

What's Changed

Full Changelog: takahirom/roborazzi@1.25.0...1.26.0

v1.25.0

Compare Source

New Experimental Gradle Task: clear

The Roborazzi Gradle Plugin saves image caches in build/intermediates/roborazzi. When users remove images in build/outputs/roborazzi and rerun the tests, it doesn't work as expected. To address this, we've added a Gradle task clearRoborazziDebug to remove all images.

I'm gathering feedback about this task in #​452. Please let me know if this causes any issues in your workflow. I'm aware that there are many different ways to use Roborazzi, and I'd like to improve your project workflow.

What's Changed

Full Changelog: takahirom/roborazzi@1.24.0...1.25.0

v1.24.0

Compare Source

New feature: Support for includePrivatePreviews in Compose Preview Support

Compose Preview Support, initially released in version 1.22.0, now includes the includePrivatePreviews option. This feature allows you to include private previews in your Compose Preview Support setup. You can enable this by setting includePrivatePreviews in roborazzi.generateComposePreviewRobolectricTests.includePrivatePreviews. Thank you for submitting this feature request, @​yuchan2215 !

New feature: JUnit rule support in ComposePreviewTester

We've enhanced ComposePreviewTester to support JUnit rules. Previously, ComposePreviewTester lacked lifecycle hooks, which made certain scenarios challenging to handle. Now, you can pass your own Test rules, including your Compose Test Rule, and use them in tests. For a sample implementation, check out this integration test.

Breaking changes for users of the ComposePreviewTester interface

As we continue to improve Compose Preview Support, we've made some changes to the ComposePreviewTester interface. These changes introduce a breaking change for current users.

ComposePreviewTester is an interface for modifying the behavior of Compose Preview Support. Previously, the API was prone to breaking changes with each new option added. We've addressed this issue by introducing a new options() function. However, this necessitates a change in how you use the interface.

Old interface:

fun previews(vararg packages: String): List<ComposablePreview<T>>

New interface (Packages can now be accessed via options().scanOptions.packages):

fun previews(): List<ComposablePreview<T>>
Acknowledgments

We'd like to extend our sincere thanks to @​yschimke and @​sergio-sastre for their valuable design reviews and insightful feedback, which greatly contributed to the improvements in this release.

What's Changed

Full Changelog: takahirom/roborazzi@1.23.0...1.24.0

v1.23.0

Compare Source

Breaking Changes to roborazzi.generateComposePreviewRobolectricTests.customTestQualifiedClassName Gradle Extension

We released roborazzi.generateComposePreviewRobolectricTests.customTestQualifiedClassName in the previous release 1.22.0, allowing customization of preview test behavior. We have since discovered that the interface of RobolectricPreviewTest cannot adapt to Compose Multiplatform Preview because RobolectricPreviewTest uses AndroidPreviewInfo from ComposablePreviewScanner, which represents Android Compose Preview. To address this, we have added a generic parameter to handle the annotation and renamed RobolectricPreviewTest to ComposePreviewTester.

The Gradle extension property has been renamed:

roborazzi.generateComposePreviewRobolectricTests.customTestQualifiedClassName -> roborazzi.generateComposePreviewRobolectricTests.testerQualifiedClassName

Old interface:

interface RobolectricPreviewTest {
  fun previews(vararg packages: String): List<ComposablePreview<AndroidPreviewInfo>>

  fun test(
    preview: ComposablePreview<AndroidPreviewInfo>,
  )
}

New interface:

interface ComposePreviewTester<T : Any> {
  fun previews(vararg packages: String): List<ComposablePreview<T>>

  fun test(
    preview: ComposablePreview<T>,
  )
}
What's Changed

Full Changelog: takahirom/roborazzi@1.22.2...1.23.0

v1.22.2

Compare Source

Notice

RobolectricPreviewTest and roborazzi.generateComposePreviewRobolectricTests.customTestQualifiedClassName are used for customizing Experimental Compose Preview Support. However, the name and class signature of RobolectricPreviewTest will be changed in a future release(not in 1.22.2) to support the Compose Multiplatform Preview Annotation.

Bug fixes

We didn't have integration tests for Experimental Compose Preview Support, so we added them. In KMP projects, we used to check only testImplementation (androidUnitTest.dependencies.implementation is used for KMP Android Unit tests), and the verification for generateComposePreviewRobolectricTests{} was failing. Therefore, we have added integration tests and fixed the behavior for KMP projects.

What's Changed

Full Changelog: takahirom/roborazzi@1.22.1...1.22.2

v1.22.1

Compare Source

Bug fixes

We've released Experimental Compose Preview Support in 1.22.0. In this release, we are going to include a bug fix for it.
The strategy of generateComposePreviewRobolectricTests{} is not to modify settings automatically, but to verify that the user settings are correct. This allows our settings to be the single source of truth. However, the assertion had some bugs, so I fixed them.

What's Changed

Full Changelog: takahirom/roborazzi@1.22.0...1.22.1

v1.22.0

Compare Source

Experimental Compose Preview Support 🚀

We're excited to announce the experimental release of Compose Preview Support for Roborazzi, a powerful new feature that streamlines the process of generating screenshot tests for Jetpack Compose Previews.

Key Features
  • Automated Test Generation: Automatically generate screenshot tests for Composable Previews using the ComposablePreviewScanner library
  • Manual Integration Support: For those who prefer more control, we've added helper functions to manually integrate Compose Preview screenshot tests.
How to Use

To enable Compose Preview screenshot test generation, add the following to your build.gradle.kts:

roborazzi {
  generateComposePreviewRobolectricTests {
    enable = true
  }
}

After configuration, run the recordRoborazziDebug task to generate screenshots using the newly created tests.

Customization Options

Customize your setup with options like:

  • Specifying package names to scan
  • Defining a custom test class
  • Configuring Robolectric settings
Manual Integration

For manual integration, add the following dependency:

testImplementation("io.github.takahirom.roborazzi:roborazzi-compose-preview-scanner-support:[version]")

Then use the ComposablePreview<AndroidPreviewInfo>.captureRoboImage() function in your tests. Note that ComposablePreview is a class provided by the ComposablePreviewScanner library, which Roborazzi utilizes for this feature.
This approach allows for more fine-grained control over the screenshot capture process for Compose Previews.

Acknowledgements

Special thanks to @​yschimke for the initial proposal, and to @​sergio-sastre and @​yschimke for their valuable design and code reviews.

For more detailed information on setup and usage, please visit our documentation.

Enhanced Accessibility Text Capture

Thanks to @​lukas-mercari 's contribution, we've improved accessibility text dumping for merged Compose elements. Both content descriptions and text are now captured, providing more comprehensive accessibility information in tests.

image

What's Changed

Full Changelog: takahirom/roborazzi@1.21.0...1.22.0

v1.21.0

Compare Source

Android Studio, IntelliJ IDEA Plugin is coming

The Roborazzi Plugin has been released after the previous release. Please check it out. The Roborazzi plugin enhances your development workflow by automatically displaying screenshots related to Roborazzi's screenshot tests within IntelliJ IDEA. Easily view and verify visual outputs directly in your IDE, streamlining your testing and development process.

screencast.2024-06-07.10-08-00.mp4

https://plugins.jetbrains.com/plugin/24561-roborazzi

Now, test report assets are written in the same directory as the report HTML.

We are using Materialize for the HTML report generated in build/reports/roborazzi. This causes a Content Security Policy (CSP) problem when using iframes. As a result, we can't view the report correctly in some projects. To resolve this, we now save the assets like CSS and JS in the same directory as the report HTML. Thank you, @​eyedol, for tackling this difficult problem. Thank you, @​realdadfish, for reporting this!

Bug fix

In the Windows environment, the image path in the report file is not written correctly. I fixed the path separator to resolve this issue. Thank you for reporting this, @​ben-gooding-hub.

What's Changed

Full Changelog: takahirom/roborazzi@1.20.0...1.21.0

v1.20.0

Compare Source

Workflow Enhancement

We use images as inputs for tests, ensuring that the compare and verify tasks function correctly. However, while running record tasks, we do not need the input images. Despite this, these input images invalidate the record task and disable the cache. Therefore, we no longer use input images for record tasks. Thank you, @​lukas-mercari, for informing us and proposing this improvement.

What's Changed

Full Changelog: takahirom/roborazzi@1.19.0...1.20.0

v1.19.0

Compare Source

Bug Fix

I was informed that if you have multiple test suites, the RoborazziPlugin sometimes fails due to concurrent processes. This happens because the cleanup process runs multiple times. Therefore, I made the cleanup process run only once. Thank you for reporting this, @​lukas-mercari.

What's Changed

Full Changelog: takahirom/roborazzi@1.18.0...1.19.0

v1.18.0

Compare Source

Migrating from java.io.File to kotlinx-io

Note: We are not changing the API for users, so the captureRoboImage methods are still using the java.io.File class.
Roborazzi previously used java.io.File for saving and loading files. Although Roborazzi supports iOS, sharing much of the logic is challenging when using java.io.File. Therefore, we have migrated to kotlinx-io.
We are attentive to the Kotlin versions our users employ. We upgraded from version 1.9.21 to 1.9.22 due to a dependency on kotlinx-io. Since Kotlin 1.9.22 was released last year, it should be compatible with most projects.
Thank you, @​eyedol, for your outstanding contribution! Your efforts are greatly appreciated.

|    \--- org.jetbrains.kotlinx:kotlinx-io-core:0.3.3
|         +--- org.jetbrains.kotlinx:kotlinx-io-bytestring:0.3.3
|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 (*)
|         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 (*)
What's Changed
New Contributors

Full Changelog: takahirom/roborazzi@1.17.0...1.18.0

v1.17.0

Compare Source

Bug Fixes
  • There seemed to be a pattern where ActivityScenario's close was not being called when tests failed, causing leaks, so I used a use block to ensure it is closed properly. @​yschimke, thank you for pointing out this issue.
  • At companies that use Roborazzi on a large scale, there were issues with the output dir not being restored properly due to Configuration cache and other factors, so I simplified the design to make problems less likely to occur.
  • There were occasional errors reporting that a directory did not exist, and I've added code to address this issue. @​lukas-mercari, thank you for your contribution.
What's Changed
New Contributors

Full Changelog: takahirom/roborazzi@1.16.1...1.17.0

v1.16.1

Compare Source

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

Full Changelog: takahirom/roborazzi@1.16.0...1.16.1

v1.16.0

Compare Source

Improvements
  • @​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
  • 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 !
image
What's Changed

Full Changelog: takahirom/roborazzi@1.15.0...1.16.0

v1.15.0

Compare Source

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

Full Changelog: takahirom/roborazzi@1.14.0...1.15.0

v1.14.0

Compare Source

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

What's Changed
New Contributors

Full Changelog: takahirom/roborazzi@1.13.0...1.14.0

v1.13.0

Compare Source

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

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://github.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

Full Changelog: takahirom/roborazzi@1.12.0...1.13.0

v1.12.0

Compare Source

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!
  • Addressed a bug related to robolectric.screenshot.hwrdr.native introduced in Robolectric 4.12, which caused unwanted shadows when using Compose's roboCaptureImage{} with this new option. This has now been corrected by @​lukas-mercari. Thanks for your contribution!
What's Changed
New Contributors

Full Changelog: takahirom/roborazzi@1.11.0...1.12.0

v1.11.0

Compare Source

New feature

In Roborazzi, if you specify outputDir in the Gradle settings, you can use the build cache. Now, Roborazzi passes the setting into the test.

build.gradle

roborazzi {
    outputDir = "src/your/screenshot/folder"
}

gradle.propeties

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

Full Changelog: https


Configuration

📅 Schedule: Branch creation - "before 4am" 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from jisungbin as a code owner August 11, 2023 16:38
@renovate renovate bot enabled auto-merge (rebase) August 11, 2023 16:38
@renovate renovate bot force-pushed the renovate/test.roborazzi branch 2 times, most recently from 71edbfc to 37679f0 Compare August 17, 2023 19:45
@renovate renovate bot force-pushed the renovate/test.roborazzi branch 3 times, most recently from d69422f to 767e6bc Compare August 26, 2023 06:16
@renovate renovate bot force-pushed the renovate/test.roborazzi branch 6 times, most recently from 91741b8 to aea3340 Compare September 6, 2023 22:35
@jisungbin jisungbin removed their request for review September 7, 2023 00:47
@renovate renovate bot force-pushed the renovate/test.roborazzi branch 4 times, most recently from 47c80b8 to 6f0fb26 Compare September 14, 2023 18:12
@renovate renovate bot force-pushed the renovate/test.roborazzi branch 2 times, most recently from 8ba7e81 to 7ae5a9c Compare September 18, 2023 07:17
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.4.0 chore(deps): update test.roborazzi to v1.5.0 Sep 18, 2023
@renovate renovate bot force-pushed the renovate/test.roborazzi branch 3 times, most recently from 1f0f766 to ef8b1f5 Compare September 25, 2023 12:14
@renovate renovate bot force-pushed the renovate/test.roborazzi branch 3 times, most recently from 69b04cb to 04f0f71 Compare October 6, 2023 18:24
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.17.0 chore(deps): update test.roborazzi to v1.18.0 May 25, 2024
@renovate renovate bot force-pushed the renovate/test.roborazzi branch from a11ba92 to d531a23 Compare May 27, 2024 13:20
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.18.0 chore(deps): update test.roborazzi to v1.19.0 May 27, 2024
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.19.0 chore(deps): update test.roborazzi May 29, 2024
@renovate renovate bot force-pushed the renovate/test.roborazzi branch from d531a23 to 5f0938b Compare May 29, 2024 04:36
@renovate renovate bot changed the title chore(deps): update test.roborazzi chore(deps): update test.roborazzi to v1.20.0 May 29, 2024
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.20.0 chore(deps): update test.roborazzi Jul 2, 2024
@renovate renovate bot force-pushed the renovate/test.roborazzi branch from 5f0938b to 2f2e224 Compare July 2, 2024 19:42
@renovate renovate bot changed the title chore(deps): update test.roborazzi chore(deps): update test.roborazzi to v1.21.0 Jul 2, 2024
@renovate renovate bot force-pushed the renovate/test.roborazzi branch from 2f2e224 to 441bdae Compare July 14, 2024 04:15
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.21.0 chore(deps): update test.roborazzi to v1.22.0 Jul 14, 2024
@renovate renovate bot force-pushed the renovate/test.roborazzi branch from 441bdae to df70727 Compare July 14, 2024 11:20
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.22.0 chore(deps): update test.roborazzi to v1.22.1 Jul 14, 2024
@renovate renovate bot force-pushed the renovate/test.roborazzi branch from df70727 to fcc5f40 Compare July 15, 2024 08:08
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.22.1 chore(deps): update test.roborazzi to v1.22.2 Jul 15, 2024
@renovate renovate bot force-pushed the renovate/test.roborazzi branch from fcc5f40 to 1264661 Compare July 19, 2024 05:03
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.22.2 chore(deps): update test.roborazzi to v1.23.0 Jul 19, 2024
@renovate renovate bot force-pushed the renovate/test.roborazzi branch from 1264661 to a36ef20 Compare July 27, 2024 16:46
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.23.0 chore(deps): update test.roborazzi to v1.24.0 Jul 27, 2024
@renovate renovate bot force-pushed the renovate/test.roborazzi branch from a36ef20 to 5fb29d8 Compare July 29, 2024 07:56
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.24.0 chore(deps): update test.roborazzi to v1.25.0 Jul 29, 2024
@renovate renovate bot force-pushed the renovate/test.roborazzi branch from 5fb29d8 to d5a0d9d Compare August 6, 2024 04:49
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.25.0 chore(deps): update test.roborazzi to v1.26.0 Aug 6, 2024
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.26.0 chore(deps): update test.roborazzi to v1.27.0 Oct 2, 2024
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.27.0 chore(deps): update test.roborazzi to v1.28.0 Oct 6, 2024
@renovate renovate bot changed the title chore(deps): update test.roborazzi to v1.28.0 chore(deps): update test.roborazzi to v1.29.0 Oct 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants